音楽のコードを移調するための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
。どのコードがコードを転置しますか?
例:
var chord = 'F#sus7/C#';
var transpose = 3; // remember this value also may be negative, like "-4"
... code here ...
var result; // expected result = 'Asus7/E';