問題タブ [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.
lilypond - Lilypond のすべての色を変更する
Lilypond では、1 つのタイプのオブジェクトの色を次のような線で変更できます
\override Staff.Clef #'color = #(rgb-color 0.4 0.5 0.6)
すべてを同じ (デフォルト以外の) 色にしたいのですが、色付けできるすべてのオブジェクトのリストも、すべての色を一度に変更するコマンドも見つかりませんでした。誰か私にどちらかを教えてもらえますか?
python - 楽譜ライブラリ
私は楽譜アプリを作成しようとしているPythonハッカーです。私は楽譜を読んだり理解したりすることに慣れています(長年ピアノを弾いていました)。これが私の完全な初心者の質問です。
ノートをデジタルで表現するための基準はありますか?車輪を作り直したくありません。
一連の音符と長さを考えると、これらを楽譜形式で表示するためのライブラリはありますか?
基本的に私は始める場所を探しています。私はグラフィックスにあまり興味がないので、既存のオープンソースライブラリは素晴らしいでしょう。Pythonに何も存在しない場合、私はJava / Javascript/Cでも能力があります。
ありがとう
audio - ギターコード検出
ここでの他の質問のほとんどは、どの音符が和音を構成するかを知る方法を決定することに関するものですが、私は少し異なる点について質問しています.
演奏された音が単音なのか和音なのかをどのように判断できますか? いくつかの論文を検索してみましたが、これまでのところ、生成された音が単音か和音かを区別するのではなく、和音の音を検出する方法に取り組んでいる論文しか見たことがありません。
ありがとう!
.net - WPF でギター コード エディターを作成する (RichTextBox から?)
私が WPF で取り組んでいるアプリケーションの主な目的は、歌の歌詞を編集し、その上にギター コードを重ねて印刷できるようにすることです。
楽器を演奏しなくても、おそらくコードを見たことがあるでしょう。アイデアを与えるために、次のようになります。
しかし、この醜い等幅フォントの代わりにTimes New Roman
、歌詞とコード (太字フォントのコード) の両方にカーニングを適用したフォントが必要です。そして、ユーザーがこれを編集できるようにしたい。
これは、 でサポートされているシナリオではないようですRichTextBox
。これらは、解決方法がわからない問題の一部です。
- コードの位置は、歌詞テキスト (またはより一般的に
TextPointer
は歌詞行) の特定の文字に固定されています。ユーザーが歌詞を編集するとき、コードが正しい文字の上に留まるようにします。例:
.
- 行の折り返し: 2 行 (1 行目は和音、2 行目は歌詞) は、折り返しに関しては論理的に 1 行です。単語が次の行に折り返されるとき、その上にあるすべてのコードも折り返されます。また、chord が単語をラップすると、それもラップします。例:
.
- コード同士が近すぎる場合でも、コードは正しい文字の上にとどまる必要があります。この場合、歌詞行に余分なスペースが自動的に挿入されます。例:
.
- 歌詞の行
Ta VA
と和音があるとしA
ます。のように見えない歌詞にしたい
。
V
2 番目の画像は と の間でカーニングされませんA
。オレンジ色の線は、効果を視覚化するためだけにあります (ただし、コードが配置される x オフセットを示します)。最初のサンプルを生成するために使用されるコードは<TextBlock FontFamily="Times New Roman" FontSize="60">Ta VA</TextBlock>
、2 番目のサンプルの と<TextBlock FontFamily="Times New Roman" FontSize="60"><Span>Ta V<Floater />A</Span></TextBlock>
です。
これを行う方法についてのアイデアはRichTextBox
ありますか? または、WPFでそれを行うより良い方法はありますか? サブクラス化Inline
またはRun
ヘルプしますか? アイデア、ハック、TextPointer
マジック、コード、または関連トピックへのリンクは大歓迎です。
編集:
この問題を解決するために2つの主要な方向性を探っていますが、どちらも別の問題につながるため、新しい質問をします:
RichTextBox
コードエディタに変えようとしています - How can I create subclass of class Inline? を見てください。.HB answerで提案されているように、
Panel
s es などの個別のコンポーネントから新しいエディターを構築します。これには多くのコーディングが必要であり、次の (未解決の) 問題も発生します。TextBox
- コンポーネントは、レイアウト位置に応じて幅/高さを変更します(行頭の空白の削除など)。
- カーニングは、コンポーネントの境界に手動で挿入する必要があります。
- RichTextBox を TextBlock のように見せる方法は? (エレガントなハックではありません/回避策は知られていません)
編集#2
Markus Hütter の質の高い回答RichTextBox
は、自分のニーズに合わせて微調整しようとしていたときに期待していたよりも多くのことができることを示しています。答えを詳細に調べる時間は今しかありません。Markus はRichTextBox
マジシャンかもしれませんが、私はこれを手伝う必要がありますが、彼の解決策には未解決の問題もいくつかあります。
- このアプリケーションは、「美しく」印刷された歌詞に関するものです。主な目標は、タイポグラフィの観点からテキストが完璧に見えるようにすることです。和音同士が近すぎたり重なったりする場合、Markus は、距離が十分になるまで、その位置の前に繰り返しスペースを追加することを提案しています。実際には、ユーザーが 2 つのコード間の最小距離を設定できるという要件があります。その最小距離は尊重されるべきであり、必要になるまで超えてはなりません。スペースの粒度が十分ではありません.必要な最後のスペースを追加すると、おそらく必要以上にギャップを広げるでしょう. カスタム width のスペースを挿入する必要があります。
- コードのない行 (テキストのみ) や、テキストのない行 (コードのみ) が存在する可能性があります。
LineHeight
ドキュメント全体に対して が または他の固定値に設定されている場合25
、和音のない行の上に「空の行」が表示されます。和音だけでテキストがない場合、それらのためのスペースはありません。
他にも小さな問題はありますが、解決できると思うか、重要ではないと考えています。とにかく、マーカスの答えは本当に価値があると思います-可能な方法を示すだけでなく、装飾者を使用RichTextBox
する一般的なパターンのデモンストレーションとしても。
audio - 和音と単音の見分け方は?
生成された音が和音なのか単音なのかを区別しようとするアルゴリズムが見つからないように見えるので、ここで少し立ち往生しています。私はギター楽器に取り組んでいます。
現在、私が実験しているのは、振幅が最大の上位 5 つの周波数を取得しようとしており、それらが基本波 (振幅が最大のもの) の高調波であるかどうかを判断することです。単音には和音よりも多くのハーモニクスが含まれているという理論に取り組んでいますが、これが当てはまるかどうかはわかりません.
私が検討しているもう 1 つのことは、ハーモニクスのさまざまな振幅値を追加しようとすることと、「想定される和音」を構成する音符を FFT の結果と比較することです。
ここで私を助けてもらえますか?本当にありがたいです。現在、私は最初にメジャーコードとマイナーコードのみに取り組んでいます。
どうもありがとうございました!
android - Android EditTextで2つの文字を互いにオーバーラップさせるにはどうすればよいですか
学校のプロジェクトの 1 つとして、Android 用の楽譜作成アプリを作成しています。
- このアプリには、楽譜のレンダリング メカニズムはありません。代わりに、楽譜の線が配置されたさまざまな高さのすべての異なる音符を持つフォントを使用します。このように、必要なことは、文字を EditText ビューに挿入することだけです。
- 最近、この方法では同時に 2 つのノートを演奏できないことがわかりました。
高さの異なる 2 つのメモを同じ列に表示できるように、EditText ビューで 2 つの文字を重ね合わせる方法があるかどうかを知りたいです。
または、Android で音楽をレンダリングするためのライブラリを知っている人がいる場合は、その知識を私と共有してください。
javascript - JavaScriptを使用して音楽コードを転置するにはどうすればよいですか?
音楽のコードを移調するためのJavaScript関数をどのように作成するのだろうかと思っていました。
ここでは誰もがミュージシャンになるとは思っていないので、音楽理論でどのように機能するかを説明しようと思います。私は何かを忘れないことを願っています。はいの場合、ミュージシャン、訂正してください。
1)シンプルなコード
シンプルなコードはアルファベットとほぼ同じくらいシンプルで、次のようになります。
C、C#、D、D#、E、F、F#、G、G#、A、A#B
BからCに再びループします。したがって、元のコードがE
であり、+ 1を転置したい場合、結果のコードはF
です。+4を転置すると、結果のコードは。になりG#
ます。
2)拡張されたコード
これらは単純なコードとほとんど同じように機能しますが、移調時に無視しても問題ない文字がいくつか含まれています。例えば:
Cmi、C#7、Dsus7、Emi、Fsus4、F#mi、G..。
繰り返しますが、単純なコードの場合と同様に、Dsus7
+3=を転置するとFsus7
3)非ルートベーストーン
低音が和音のルート音とは異なる音を演奏する場合、問題が発生します。これはコードの後にスラッシュでマークされており、移調する必要もあります。例:
C / G、Dmi / A、F#sus7 / A#
例1と2と同様に、すべてが同じですが、スラッシュの後の部分も転置する必要があります。したがって、次のようになります。
C/G
+ 5 =F/C
F#sus7/A#
+ 1 =Gsus7/B
何か忘れない限り、これで全部だと思います。
したがって、基本的に、と呼ばれるjavascript変数とchord
転置値があると想像してくださいtranspose
。どのコードがコードを転置しますか?
例:
php - PHPで画像を作成して、ギターのコードを表示します
ギターのコード/タブをテキスト形式で表示するサイトがあります。現在表示しているものは次のとおりです。
Em:
GDがこのための動的なイメージを作成できることを学びました。しかし、私はPHPを初めて使用するため、何をすべきかわかりません。
PHPでそのようなものを作成して画像を表示するのは簡単ですか?
ありがとう
c# - 波信号をフレームに分割する方法
コード認識に関するプロジェクトに取り組んでいます。どなたかの日記を参考にしていますが、DSPの分野についてはまだほとんど把握できていません。彼女の参考文献では、最初に wav ファイルからの信号をフレーム数に分割する必要があります。私の場合、フレームごとに 2866 サンプルで、各フレームを 65 ミリ秒に分割する必要があります。
信号をフレームに分割する方法を検索しましたが、理解できるほど明確ではありません。これまでのところ、これらは WavProcessing クラスの私のコードの一部です:
C# で信号をフレームごとに 65 ミリ秒に分割する方法がまだわかりません。FileStream を分割してフレームに分割し、配列に保存する必要がありますか? それとも何か?
fft - オーディオ サンプルから個々のギター コードを認識する
コード検出アルゴリズムに関しては、すでにかなりの数の質問があることを認識しています。ただし、これらのほとんどは、曲をコードのセットまたはコードの転写に解釈することに関連しているようです。私の問題は、ギターコードの単一のストラムを録音し、これを分析して演奏されたコードを返すことにのみ関心があるため、はるかに単純なはずです。また、これが難しすぎると判明した場合は、特定のコードが正しく演奏されているかどうかを簡単に判断できれば、ある程度は十分です。アプリケーションは、正しいコードを演奏したかどうかを教えてくれます (記憶ゲームのようなものです)。アプリケーションは期待するコードをすでに知っているため、この 2 番目のオプションの方が簡単だと思います。
同じアプリケーションの一部として、ギター チューナーに FFT とハーモニック プロダクト スペクトルを既に使用しています。FFT が出力する周波数スペクトルを分析してギターのコードを認識する方法について、アドバイスをお願いします。また、この件に関する他の提案にもオープンであり、私が得ることができるどんな助けにも本当に感謝しています.
ありがとう