マイナースケール上の和音
このワークシートはMath by Codeの一部です。
アプレット、背景、実装の順に見ていきましょう。

1.背景
長調は明るくていいですが、アルファベット的にはAをスタートにするスケールの方が
わかりやすいかもしれません。
そんな期待?をもちながら、マイナースケールとコードを探っていきましょう。
メジャースケールのときと同じように、
音程の特徴に目をつけることで、スケール(音の階段)とコード(和音)をつなげてみよう。
<白鍵だけで長調と短調ができる>
音と音の間隔の基本は全音と半音でした。
主音(スタート)を1として「ラ」(A)から
白鍵だけを1,2,3,4,5,6,7と数えます。
ラシドレミファソラ(イロハニホヘト=ABCDEFG)
イロハもABCも1番目からになっているのでわかりやすいね。
この音のスケールをマイナー(短調)といいました。
だから、このラシドレミファソラの音階をイ短調(Aマイナー)スケールと言えますね。
黒鍵のありなしで21221222で、全半全全半全全全になっています。
Aを1にするとマイナーですが、教会モードをここからはじめてみよう。
A=1はエオリアン(マイナー)全半全全 半全全
B=1はロクリアン 半全全半 全全全
C=1はイオニアン(メジャー)全全半全 全全半
D=1はドリアン 全半全全 全半全
E =1はフリジアン 半全全全 半全全
F =1はリディアン 全全全半 全全半
G=1はミクソ・リディアン 全全半全 全半全
完全5度(全3半1)が大半なこと、
完全4度(全2半1)が大半なこと
この2つは変わりませんね。
<ナチュラルマイナースケール上の3和音>
問題は、和音のカラーを決める3度です。
2、4を飛ばして、白鍵の1番と3番と5番を同時に押してみます。
A=1はエオリアン(マイナー)全半全全半全全
B=1はロクリアン 半全全半全全全
C=1はイオニアン(メジャー)全全半全全全半
D=1はドリアン 全半全全全半全
E =1はフリジアン 半全全全半全全
F =1はリディアン 全全全半全全半
G=1はミクソ・リディアン 全全半全全半全
全全というのは長3度(メジャー3)、全半か半全が短3度(マイナー3)です。
A=1の1,3,5はA-3、つまり、Am
B=1の1,3,5はB-3・-5、つまり、Bm-5
C=1の1,3,5はC3、つまり、C
D=1の1,3,5はD-3、つまり、Dm
E=1の1,3,5はE-3、つまり、Em
F=1の1,3,5はF3、つまり、F
G=1の1,3,5はG3、つまり、G
ここで、絶対的にスケールの1(A)に合わせた、度数で再表示してみましょう。
そして、7を超えた分は7をひき、小さい度数(番号)順に表示します。(つまり、疑似mod7)
1,3,5はAm
2,4,6はBm-5
3,5,7はC
1,4,6はDm
2,5,7はEm
1,3,6はF
2,5,7はG
ダイアトニックスケールコードは7つありますが、1つおきに見ると、
白鍵の番号が2つずれるだけなので、2音ずつ共通音があります。
Amから見るとCとFは2音共通なので類似度が高いですね。
Dmから見るとBm-5は近いです。
Emから見るとGは近いです。
<ナチュラルマイナースケール上の4和音>
2,4,6を飛ばして、白鍵の1番と3番と5番と7番を同時に押してみます。
A=1はエオリアン(メジャー)全半全全半全全
B=1はロクリアン 半全全半全全全
C=1はイオニアン(メジャー)全全半全全全半
D=1はドリアン 全半全全全半全
E =1はフリジアン 半全全全半全全
F =1はリディアン 全全全半全全半
G=1はミクソ・リディアン 全全半全全半全
1番から7番までの音程は全5半1か全4半2のどちらかです。
半1というのは長7度(メジャー7)、半2が短7度(マイナー7)ですが、
マイナー7が普通なのでマイナーをつけずにただの7度といいます。
1つとばしで、白鍵の奇数番号、1,3,5を同時に引いたのが3和音です。
A=1の1,3,5、7はA-3・-7、Am7
B=1の1,3,5、7はB-3・-5・-7、つまり、Bm7-5
C=1の1,3,5、7はC3・7、つまり、Cmaj7
D=1の1,3,5、7はDー3・ー7、つまり、Dm7
E=1の1,3,5、7はEー3・ー7、つまり、Em7
F=1の1,3,5、7はF3・7、つまり、Fmaj7
G=1の1,3,5、7はG3・ー7、つまり、G7
ここで、絶対的にスケールの1(A)に合わせた、度数で再表示してみましょう。
そして、7を超えた分は7をひき、小さい度数(番号)順に表示します。(つまり、疑似mod7)
1,3,5、7はAm7
1,2,4,6はBm7-5
2,3,5、7はCmaj7
1、3,4,6はDm7
2、4,5,7はEm7
1,3、5,6はFmaj7
2,4、6,7はG7
ダイアトニックスケールコードは7つありますが、1つおきに見ると、
白鍵の番号が2つずれるだけなので、3音ずつ共通音があります。
コード名を音の集合ととらえると、積集合の要素が3個ということです。
(例)Am7 ∩ C={1,3,5}
1度のトニックAm={1,3,5,7}からみてCmaj7(3maj7)が近いです。
5度のドミナントEm7={2,4,5,7}は、Am7と共通点が{5,7}で、Am7の5度上なのに不安定さが少ないそのため、ドミナントの役割としてはE7を使うことが多い。
4度のサブドミナントDm7={1,3,4,6}とは、Bm7-5(2m7-5)が{1,4,6}共通,
Fmaj7(6maj7)は{1,3,6}共通、G7(7番7)は{6}だけ共通ですが、この音は
トニックにもドミナントにもないので、サブドミナントの代理になれます。
す。
トニック1m7の代理は3m7
ドミナント5m7の代理はスケールコードにはない。5番7にして代理。
サブドミナント4m7の代理は6番音をもつ、2m7-5、6maj7、7番7。
これが標準的な考え方になるようです。
2、実装
質問:12個の主音に対するナチュラルマイナースケール上の7つのコードを表示するアプレットを作るにはどうしたらよいでしょう。
クロマチック音名を文字列にします。
NameS={"B","C","C#","D","D#","E","F","F#","G","G#","A","A#"} //音名の#系です。
C4={"m7","m7-5","maj7","m7","m7","maj7","7"} //4和音の順番がメジャーより6スライドします。
C3={"m","m-5","","m","m","",""} //3和音の順番がメジャーより6スライドします。
名前リストを2オクターブ分とります。
NS2=join(NameS,NameS)
インデックスはgeogebraなら1から24番になります。
これは、白鍵の番号ではなく、クロマチックな音階なので、区別しよう。
たとえば、Bを主音にしたときにナチュラルマイナースケールのインデックスは
全半全全半全全から、M={1,3,4、6、8,9,11}です。これがメジャーとのちがいです。
k=NameS2(n)を主音にするスケールのドレミファソラシド名は
doremi=sequence(NS2(k-1+M(i)), i, 1,7)
doremi+C3で3和音、
doremi+C4で4和音の和音名になります。
キーを選ぶスライダーをn(1以上12以下)とすると、
選んだキーはNameS(n)のテキストになります。
質問:スケールの音程とコードの音程が視覚化できるアプレットはどうやって作りますか?
12種類の音名があるので、12角形の点にします。
たとえば、e^(i 2π/k) k=1...12として、12個の複素数z1からz12を設定しましょう。
12音名のリストNameS={"B", "C",......., "A#"}にたいして、
NameS(1), NameS(2),....,NameS(12)を1つ1つのテキストオブジェクトとして、
txt1, txt2,.....txt12と名前をつけなおします。
そうして、それぞれのテキストオブジェクトtxt kの「設定」の「位置」のリストから対応するzk
を選ぶべば、12個の頂点に、音名を表示できるようになるでしょう。
1つ1つの複素数の他に、複素数のリストpt=sequence(e^(i 2π/k), k, 1, 12)を設定しておけば、
pt(x)のxを適当に選ぶことで、スケールに関係のある点を強調できます。
(そして、選ばれた番号の頂点kに対して、mod(k-1,12)+1をすることで、12のときに12にする
変則mod12を作ることで、kの変化に対して、1,2、…、12、1,2、…。12と返します。)
選ばれたスケールの番号M={1,3,4、6、8,9,11}です。これがメジャーとの違いです。
キーをn=2としたばあい、M+n-1={2, 4, 5, 7, 9,10,12}と、リストをシフトして、MNという名前をつけます。そして、Sequence(Mod(MN(k)-1, 12)+1,k,1,7)として複素数の番号を12個に納めます。
ここで、zip(pt(k),k,MN2)とするとMN2番目の頂点、つまりキーが2のスケール音名を強調できますね。
最後に和音がサイクリックな音名の関係、つまり円環構造なので、
スケール上の3和音、4和音の点を多角形の頂点として選びだしましょう。
3和音ならば、その和音がキーのi 番目なら、Cp3={MN2(i),MN2(i+2),MN2(i+4)}と番号リストを作ります。すると、12等分の点からpolygon(pt(Cp3(1)),pt(Cp3(2)),pt(Cp3(3)))
とするだけで三角形が指定できます。
4和音場合は、スケール上の位置MN2で、さらに偶数番増やせばよいですね。
くわしくは、かくれた「数式」を広げて、グラフィックビューを一時的にせまくして、観察しましょう。