問題タブ [music-notation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2021 参照

c# - 完全なデータを返さずに、WAV ファイルから振幅の配列を取得する

コード検出に関する論文に取り組んでいます。苦労した結果、私の問題の根本は、C# ベースのプログラムを使用して wav ファイルの振幅を取得することにあることがわかりました。

このコードを使用して振幅を取得しました。

コードは最初は問題なく動作しました。コード検出プログラムでもある Delphi ベースのプログラムと比較しました。しかし、私が気付かなかったのは、私のコードは実際には振幅の半分の配列しか取得していないということです。

例: Chord C の wav ファイルを C# プログラムにロードすると、次のような振幅の配列が得られます。

361043 番目の配列を開始すると、ゼロしか返されないことがわかります...これは、完全なストリーム サイズ (722128) の約半分です。

一方、誰かの Delphi プログラム (私はこれを参照として使用しました) では、そのコードは次のようになります。

次のような振幅の完全な配列 (同じ wav ファイル) を返します。

その Delphi プログラムでは、振幅の完全な配列が返され、次の計算で正しい値が得られます。

0 投票する
4 に答える
2509 参照

java - javaでシンプルだがよく構造化された楽譜クラス(楽譜)を作成するには?

非常に基本的なサウンド合成を使用して、ゲームのオーディオとエフェクトをオンザフライで作成しています。基本的に、周波数と振幅と持続時間を指定してサウンドを再生できるメソッドがいくつかあります。

短いフレーズとメロディーについては、簡単に書き直したり新しいメロディーをコードに追加したりできるように、基本的な記譜法を考案したいと思います (最終的にはファイルから読み取ることができるかもしれませんが、それはおそらくやり過ぎです)。

ただし、これを実装する方法がわかりません。

私は、MIDI # フィールドと周波数フィールドを持つ 88 の基本的なピアノの音符すべてを含む列挙型 EqualTemperamentTuning を作成することから始めました。これは少なくとも、周波数ではなく音名を扱うことができることを意味します。

次に、さらにオブジェクトを作成し始めました。最初は、EqualTemperamentTuning、振幅、および長さを保持する Note です。

最後に、演奏したいメロディーを定義するために、NotePhrase クラスを作成しました。

次に、オーディオ生成クラスに、ウェーブ ジェネレーターからサンプルを生成するループ (カウンター付き) があります。再生する新しいサンプルが必要になるたびに、上記の NotePhrase.getFrequency(int counter) メソッドに従ってウェーブの周波数を設定します。これは (実際にはまだテストしていません!) 周波数と振幅 (追加予定) に従って NotePhrase メロディーを再生するだけです。

問題は、あまりエレガントに見えないことです。具体的には、メロディーを読みやすい方法で「書く」のが非常に難しいことです。たくさんの新しい Note オブジェクトをコーディングしてから、それらの配列を使用して NotePhrase オブジェクトを作成する必要があります...これらのメロディーの束をハードコーディングして、後でそれらを簡単に切り替える方法は明らかではありません。

本当に私は、メロディーの列挙型などを作成したいと思います。ここでは、異なるメロディーごとに人間が判読できる構成を簡単にハードコーディングできます。次に、それらを使用したいときに、列挙型をオーディオプレーヤーに渡すだけです.. .

私が持っている最高のものは次のとおりです。

これを実行時に NotePhrase オブジェクトにロードします。異なる量の音符を持つメロディー用に新しいコンストラクターを作成する必要があるため、これはあまり良くありません。逆に、音符の配列で列挙型を作成すると、別の場所で 2 つの部分に分けてメロディーを「書いている」だけで、さらに混乱するように見えます...

だから私はこれを適切に構造化する方法について行き詰まっていますか? つまり、どのクラスを作成し、どの情報を保持する必要があるか...これを「正しく」取得したいのは、将来、表記法を拡張してエフェクト (エコーなど) を含めたいと思うかもしれません。適切なクラス、構造、および関係 (名前でさえも) によって、私のプログラムが非常に理解しやすくなったり、理解しにくくなったりする可能性があるという経験はほとんどありません。

エッセイで申し訳ありませんが、これは非常によく表現された (エヘム) 質問ではないかもしれませんが、Java と OOP の初心者として、ヒントは大歓迎です!

編集* *

回答と提案をありがとう、とても役に立ちました。このケースで与えられた答えを考えてみると、一般的なオーディオの実装を再考するきっかけになりましたが、これは現在かなり不安定です。ただし、誰を正しいとマークする必要があるかはわかりません。実際には、すべての推奨事項を取り入れて、そこから試してみるつもりです.

0 投票する
4 に答える
2628 参照

regex - 音楽コードを一致させるための正規表現

和音の文字列表現を解析する関数を作成しようとしています。

例: C メジャー コード -> Cmaj (これは解析したいものです)

わかりやすくするために、コードは 3 つの異なる部分で構成されています。

  • 音符 (C、D、E、F、G、A)
  • その音符の臨時記号 (#、##、b、bb)
  • コードネーム

音楽に詳しい方、スラッシュコードは考えていません(わざと)。

以下の機能はほぼ動作しています。ただし、次の場合はまだ機能しません。

  • "C#maj" # 一致し、すべきである
  • "C#maj7" # 一致し、すべきである
  • "C#maj2" #一致し、すべきではない

chords正規表現の最後に正規表現の部分を強制することができれば、うまくいったと思います。$この文字列の前後の両方を使用してみましたが、うまくいきませんでした。

何か案が?ありがとう。

0 投票する
3 に答える
1236 参照

regex - 音楽コードパート分割正規表現

これは、これに対するフォローアップの質問です: Regex for matching a music Chord、私に尋ねました。

Stringコードの表現が有効かどうかを知るための正規表現ができたので (前の質問)、コードの 3 つの異なる部分 (ルート ノート臨時記号、コード タイプ) を個別の変数に効果的に取得するにはどうすればよいでしょうか?

単純な文字列操作を行うこともできますが、前のコードに基づいて構築し、そのために正規表現を使用する方が簡単だと思いますか、それとも間違っていますか?

前述の質問から更新されたコードは次のとおりです。

ありがとう。

0 投票する
5 に答える
7271 参照

css - ギターコードと歌詞の値下げ

シンクロナイズドギターコードでプレーンテキストの音楽歌詞を保存できるようにするための良い方法を見つけようとしています。表示されたときに、対応する単語の上の「空白」行のコードでダブルスペースでレンダリングされた歌詞を表示したいと思います。これは私自身の個人的な歌詞の本のためのものなので、最終的にレンダリングは枯れ木と画面で最も一般的になりますが、これは最終的に変更される可能性があります。Markdownを試してみて、CSSと組み合わせて<a>タグを準上付き文字としてレンダリングすると、次の形式の「一種の」動作を実現できると思いました。含まれているコードの参照リンクをファイルの下部に置くことができるので、<a>タグの使用がどのように機能するかが好きです。

CSSと変換されたマークダウンはここにあります:http://jsfiddle.net/654ct/13/

私はここからCSSの多くを借りました: テキストを線の上に表示するようにスタイリングします(歌詞の上のコードの場合) これは主にマークダウンの助けを求めるものなので、新しいトピックを書いています。

これまでのところ、このフォーマットの良いところは、コードを歌詞と「インライン」で記述できるため、使用するフォントに関係なく、単語と音楽の同期が保たれることです。また、マークダウン自体がかなり読みやすいという追加の利点もあります。

唯一の問題は次のとおりです。

  1. 間に単語を入れずに演奏する必要のあるコードが2つある場合、コード文字はHTMLでレンダリングされるときに互いに「オーバーラップ」します。(これは幅:0が原因だと思いますが、コードが変更されたときに歌詞のギャップをなくすために私が知る限り、これは必要です。)
  2. 同じシナリオで、最後のコードを除くすべてのコードには、コード文字の後に[]を付ける必要があります。そうしないと、2番目のコードが最初のコードの説明として解釈されます。これにより、マークダウンは私が望むよりも少し忙しくなります。

CSSで、またはマークダウンを変更することによって、これらの問題のいずれかまたは両方を解決する良い方法はありますか?そうでない場合、誰かがこれのために私自身のギターコード固有のマークアップ言語を書く以外の完全に異なる代替案を知っていますか?(このために独自のマークアップ言語を作成したとしても、問題1のサポートが必要です。)タブ形式を認識しており、必要なのはいつのことを思い出させるだけなので、かなり複雑でないものを探しています。各コードは、私の指がどこにある必要があるかを明確に示したものではありません。

ありがとう!

0 投票する
4 に答える
420 参照

python - Pythonループインデックス

音階の音符を取得するためのプログラムを作成しようとしています。これは私が今までに得たものですが、とてつもなく複雑に思えます!! 私は何が欠けていますか?そんなはずじゃないの?

root_i各「ステップ」ごとにインクリメントしmajor、最後に到達したら再起動する必要がありnotesます...

ありがとう。

0 投票する
3 に答える
1742 参照

division - MusicXMLの分割と期間

いくつかのテストスイートからのMXLファイルがあり、最初のメジャーは除算が8(つまり、四分音符あたり8単位)であると示しています。

メジャー4は3/4時間で、残りは次のとおりです。

ここで見たいと思い<dot/>ます。24を8で割ると3になるので、このメモは点線である必要があると推測できますか?<dot/>これは、欠落しているがメモが明らかに点在しているはずの特別な場合のコードを作成する必要があることを意味しますか?

私はこの表現に混乱しています。自分で属性を必須にしたいと思いtypeます...点線と連符の長さがどのように表されるかを誰かが説明できれば幸いです。

0 投票する
1 に答える
437 参照

android - AndroidSDKでギターコード画像を生成する

Android SDKでギターコードの画像を生成する方法はありますか、それともすべてのコードに対してPhotoshopなどで画像を作成する必要がありますか?

0 投票する
2 に答える
407 参照

python - MusicXMLでのキー変更のメジャー番号の抽出

私はMusicXMLファイルを頻繁に使用しており、いくつかの部分に重要な変更があるバーのリストをコンパイルしようとしています。Pythonを使用して、最初にXMLファイルのどこにタグが存在するかを特定し、次に上記のタグ<key>から番号を抽出するためのサポートが必要です。<measure number ='*'>これが私が取り組んでいる対策の例です:

どうすれば'30'ビットを抽出できますか?music21でこれを行うための迅速で簡単な方法はありますか?

0 投票する
2 に答える
624 参照

c# - コードを同時発音させる

音楽のイヤー トレーニング プログラムを作成したいと考えています。mp3 または wav ファイルにピアノの音符のサンプルがあり、それらを同時に再生して和音を作成したいと考えています。

サウンドを一緒に演奏する最も簡単な、または最も成功する方法は何ですか?

ありがとう :-)