メジャースケール上の和音

[b]このワークシートは[url=https://www.geogebra.org/m/twxxx3yq]Math by Code[/url]の一部です。[br][br]アプレット、背景、実装の順に見ていきましょう。[br][/b]
1.背景
[size=150][size=100][color=#0000ff]音楽の背景は数学というよりも、[br]算数でたいていのことは十分わかります。[br][br]ただし、自然数すら0スタートで数える数学とはちがって、[br]1個目が1という素朴な数え方なので、かえって違和感があるかもしれません。[br]肩の力をぬいて、気楽に調べましょう。[br][/color][/size][b][br]<白鍵だけで長調と短調ができる>[/b][/size][br]音と音の間隔の基本は全音と半音です。[br]楽器の鍵盤を用意します。キーボードアプリでも、写真でもなんでもいいです。[br]白鍵が下にあり、黒鍵が挟まるところと白鍵が続くところがあります。[br]白鍵がとなりあう方がレアですね。[br]白鍵と白鍵の間に1つ黒鍵が入る音程(音の隔たり、インターバル)を[b]全音[/b]、隣り合う鍵盤の音程を[b]半音[/b][br]といいました。[br][br]主音(スタート)を1として「ド」(C)から[br][u]白鍵だけを1、2、3、4、5、6、7、8と数えます[/u]。[br]これを[b]ドレミファソラシド (ハニホヘトイロハ=C,D,E,F,G,A,B,C)[/b]と呼びますね。[br]この音の階段、音階(スケール)を[b]メジャー[/b](長調)といいました。[br]だから、このドレミファソラシドの音階はハ長調(Cメジャー)スケールと言えますね。[br]だから、黒鍵のありを2、なしを1とすると、2212221の音程ですから、[b]全全半全全全半です。[/b][br][br]主音(スタート)を1として「ラ」(A)から[br][u]白鍵だけを1,2,3,4,5,6,7,8と数えます。[/u][br]これを[b]ラシドレミファソラ(イロハニホヘト=ABCDEFGA)[/b]と呼びますね。[br]この音のスケールを[b]マイナー[/b](短調)といいました。[br]だから、このラシドレミファソラの音階をイ短調(Aマイナー)スケールと言えますね。[br]黒鍵のありなしで21221222で、全半全全半全全全になっています。[br][br]数字だけ見ると、とても不規則で嫌な感じがする人もいるでしょう。[br][br]たとえば、ヤマハのPSS-A50は1周期12鍵盤×3+1=37鍵盤あります。[br]鍵盤の最低の音ド(C2)から、最高の音ド(C5)まであります。[br]番号が12増えると音程が1オクターブ上がり、音名は変わらないですね。[br][br][b][size=150]<白鍵だけでスケールが増やせる>[/size][/b][br]白鍵だけひくときに、Cを1にするとメジャー、Aを1にするとマイナーでした。[br]では、他の白鍵をスタートの1にすると音程と音階はどうなるでしょう。[br][br]実は大昔からわかっていて、教会モードという音階名まで1つ1つついています。[br]C=1はイオニアン(メジャー)[b][color=#0000ff]全全半[/color]全 [/b]全全半[br]D=1はドリアン       [b][color=#0000ff]全半全[/color]全 [/b]全半全[br]E =1はフリジアン      [b][color=#0000ff]半全全[/color]全 [/b]半全全[br]F =1はリディアン      [b][color=#ff0000]全全全[/color]半 [/b]全全半[br]G=1はミクソ・リディアン  [b][color=#0000ff]全全半[/color]全 [/b]全半全[br]A=1はエオリアン      [b][color=#0000ff]全半全[/color]全 [/b]半全全[br]B=1はロクリアン      [b][color=#9900ff]半全全半 [/color][/b]全全全[br][br]名前の由来と使い方とかは今は、気にしないことにします。[br][br]音程を「[b]ただの文字列[/b]」として観察してみましょう。[br][br][b][color=#9900ff][u][size=150]質問:7つの教会モードのスケールの共通点とちがいを探ろう。[br][/size][/u][/color][/b][br]音階の1個目の白鍵を、ただ、C,D,E,F,G,A,Bと1つ右にずらしていっただけでした。[br]だから、音程の[b]全全半全全全半[/b]も1こずつ進んでいますね。[br][b]「全全半全全全半」を文字列としてみると、始まりが違うだけで、並びの周期は同じです。[br][/b]さらに、面白いのは、最初の4文字はB=1のロクリアンを除いて、全3個と半1個があります。[br]だから、[b][color=#0000ff]1番と5番の音程は全×3+半[/color][/b]で共通になっています。これを[b][color=#0000ff]完全5度[/color][/b]といいます。[br][b][color=#0000ff][size=150][size=200]完全5度はすごいですね。[br]CならG、DならA、EならB、[br]FならC、GならD、AならE[br][/size][/size][/color][/b]これらはほぼほぼどんなスケールでも綺麗に聞こえるということです。[br]完全5度は、また、和音(コード)を時間とともにつないでいく、コード進行の上でも大切です。[br]キーボードでいうと、白黒が交互に並ぶのに[b]1つだけ白白をはさむ5番目[/b]です。[br][br]([b]ロクリアンモード[/b]だけは半全全半だから、1つの全が半になっていて音程が短いね。[br]だから、このレアな5度を減5度(-5)といいます。)[br][br][size=150][b]<他の完全は?>[/b][br][/size][br]完全5度が1つの例外を除いて、普遍的にみられることがわかりました。[br]では、他の完全な音程を探してみましょう。[br][br]あります。[br]1番から8番までいくと、かならず1オクターブ上がるので完全8度という名前がついています。[br]当たりまえでつまらないです。[br][br]あります。[br]1番から4番までいくと、[b]全全半、全半全、半全全[/b]のどれかになる。(例外は[b]リディアン[/b]の全全全)[br]この全+全+半のことを、[b][color=#0000ff]完全4度[/color][/b]といます。[br]キーボードでは[b]白鍵の4番目までに白白が1つはさむ音程[/b]です。[br][color=#0000ff][size=150][size=200][b]CならF、DならG、EならA、[br]GならC、AならD、BならE[/b][br][/size][/size][/color]完全4度の音を選ぶと、綺麗に聞こえるということですね。[br]また、完全4度は、コード進行でも大切です。
[b][size=150]<ダイアトニック3和音>[br][/size][/b]2,3,4をとばして、白鍵の1番と5番を同時に押してみます。[br]完全5度を重ねておけば、メジャーもマナー区別のない2和音ができます。[br][br]では3度を重なるとどうなるでしょうか。[br]2、4を飛ばして、白鍵の1番と3番と5番を同時に押してみます。[br][br]C=1はイオニアン(メジャー)[color=#38761d][b]全全[/b][/color]半全全全半 [br]D=1はドリアン       [color=#0000ff][b]全半[/b][/color]全全全半全[br]E =1はフリジアン      [color=#0000ff][b]半全[/b][/color]全全半全全[br]F =1はリディアン      [b][color=#38761d]全全[/color][/b]全半全全半[br]G=1はミクソ・リディアン  [color=#38761d][b]全全[/b][/color]半全全半全[br]A=1はエオリアン      [color=#0000ff][b]全半[/b]全[/color]全半全全[br]B=1はロクリアン      [b]半全[/b]全半全全全[br][br]半半というのはありえないので、全全か全半か半全です。[br][b][color=#38761d]全全[/color][/b]というのは[b]長3度(メジャー[/b]3)、[b][color=#0000ff]全半か半全[/color][/b]が[b]短3度(マイナー[/b]3)です。[br]1つとばしで、白鍵の奇数番号、1,3,5を同時に引いたのが3和音です。[br]C=1の1,3,5はC3、つまり、C[br]D=1の1,3,5はD-3、つまり、Dm[br]E=1の1,3,5はE-3、つまり、Em[br]F=1の1,3,5はF3、つまり、F[br]G=1の1,3,5はG3、つまり、G[br]A=1の1,3,5はA-3、つまり、Am[br]B=1の1,3,5はB-3・-5、つまり、Bm-5[br][br]この和音は、Cメジャースケールの音だけを使った和音なので、[br]特別な名前、ダイヤトニックスケールコードという名前がついてます。[br]もし、Cメジャースケール(C,D,E,F,G,A,B)ならコードは、[br]1,4,5番(度)のC,F,Gはメジャーです。[br]のこり、1,4番(度)の間D,Eと5、8番(度)の間A,Bはマイナーです。特に7番(度)は[br]m-7という独特に不安定な響きのコードになります。[br][br]ここで、絶対的にスケールの1に合わせた、度数で再表示してみましょう。[br]そして、7を超えた分は7をひき、小さい度数(番号)順に表示します。(つまり、疑似mod7)[br][u]1,3[/u],5はC[br][color=#9900ff]2,[/color][u][color=#9900ff]4[/color],6[/u]はDm[br]3,[b][color=#0000ff]5,7[/color][/b]はEm[br]1,[u]4,6[/u]はF[br]2,[color=#0000ff][b]5,7[/b][/color]はG[br][u]1,3[/u],6はAm[br][color=#9900ff]2,4[/color],7はBm-5[br][br]ダイアトニックスケールコードは7つありますが、1つおきに見ると、[br]白鍵の番号が2つずれるだけなので、2音ずつ共通音があります。コード名を音の集合ととらえると、[br]積集合の要素が2個ということです。[br][b]C∩Em={3,5}[br][/b][u]Dm∩F={4,6}[br][/u]Em∩G={5,7}[br][u]F∩Am={1,6}[/u][br]G∩Bm-5={2,7}[br][b]Am∩C={1,3}[br][/b]Bm-5∩Dm={2,4}[br][br]Cから見るとEmとAmは2音共通なので類似度が高いですね。[br]Fから見るとDmとAmは近いです。[br]Gから見るとEmとBm-5は近いです。
[b][size=150]<ダイアトニック4和音>[br][/size][/b]2,4,6を飛ばして、白鍵の1番と3番と5番と7番を同時に押してみます。[br][br]C=1はイオニアン(メジャー)[b][color=#38761d][u]全全半全全全[/u][/color][/b]半 [br]D=1はドリアン       [b][color=#0000ff]全半全全全半[/color][/b]全[br]E =1はフリジアン      [color=#0000ff][b]半全全全半全[/b][/color]全[br]F =1はリディアン      [b][color=#38761d][u]全全全半全全[/u][/color][/b]半[br]G=1はミクソ・リディアン  [color=#0000ff][b]全全半全全半[/b][/color]全[br]A=1はエオリアン      [color=#0000ff][b]全半全全半全[/b][/color]全[br]B=1はロクリアン      [color=#0000ff][b]半全全半全全[/b][/color]全[br][br]1番から7番までの音程は全5[b]半1[/b]か全4[b]半2[/b]のどちらかです。[br][color=#38761d][b]半1[/b][/color]というのは[b]長7度(メジャー7[/b])、[b][color=#0000ff]半2[/color][/b]が[b]短7度(マイナー7[/b])ですが、[br][b][color=#0000ff]マイナー7が普通なのでマイナーをつけずにただの7度[/color][/b]といいます。[br]1つとばしで、白鍵の奇数番号、1,3,5を同時に引いたのが3和音です。[br]C=1の1,3,5、7はC3・7、つまり、Cmaj7[br]D=1の1,3,5、7はDー3・ー7、つまり、Dm7[br]E=1の1,3,5、7はEー3・ー7、つまり、Em7[br]F=1の1,3,5、7はF3・7、つまり、Fmaj7[br]G=1の1,3,5、7はG3・ー7、つまり、G7[br]A=1の1,3,5、7はA-3・-7、Am7[br]B=1の1,3,5、7はB-3・-5・-7、つまり、Bm7-5[br][br]ここで、絶対的にスケールの1に合わせた、度数で再表示してみましょう。[br]そして、7を超えた分は7をひき、小さい度数(番号)順に表示します。(つまり、疑似mod7)[br]1,3,5、7はCmaj7[br]1、2,4,6はDm7[br]2、[u]3,5[/u],7はEm7[br]1,3、4,6はFmaj7[br]2,4、5,7はG7[br][u]1,3,5[/u]、6はAm7[br]2,4,6、7はBm7-5[br][br]ダイアトニックスケールコードは7つありますが、1つおきに見ると、[br]白鍵の番号が2つずれるだけなので、3音ずつ共通音があります。[br]コード名を音の集合ととらえると、積集合の要素が3個ということです。[br](例)Am7 ∩ C={1,3,5}[br]C={1,3,5}(1番とする)からみてEm7(3番m7)、Am7(6番m7)が近いです。[br]F={4,6,1}(4番)からみてDm7(2番m7)、Am7が近いです。[br]G={2,5,7}(5番)からみてEm7、Bm7-5(7番m7-5)が近いです。[br]ただし、キーとなる1番目の和音をトニックといい、主たる響きになります。[br]だから、1つおきの類似性という視点から見たら、1つおきに代理コードとして使えそうですが、[br]瞬間瞬間の響きの共通点だけではなく、通したときの視点からみると、トニックの代理が最優先になります。[br]1番の代理は3m7、6m7の2個 覚え方1±2=3m、-1m≡3m7、6m7[br]4番の代理は2m7の1個 覚え方4-2=2m[br]5番の代理は7m7-5の1個 覚え方5+2=7m7-5[br]が標準的な考え方になるようです。[br][br][b][size=150]<楽器演奏の場面では>[/size][/b][br]たとえば、ピアノでは、左手でベース音(コードの1の音)を鳴らしたり、[br]合奏では、ベース担当の人がいたりします。[br]だから、セブンスの音を出すときは、[br]・ベース音を半音下げたのがmaj7[br]・ベース音を全音下げたのが7[br]という解釈をすることが多いです。それは、ギター演奏でもそうです。[br]ベースランニングという奏法まであるくらいです。[br]そもそも、ベース音とセブンス音は順に押さえると開きすきて大変。[br]オクターブを上げ下げすると、ベースとセブンスは音が近くて衝突しやすい。[br]だから、ベースをぬいてしまうのですね。
2、実装
[color=#9900ff][u][b][size=150]質問:12個の主音に対するメジャースケール上の7つのコードを表示するアプレットを作るにはどうしたらよいでしょう。[br][/size][/b][/u][/color][br]クロマチック音名を文字列にします。[br]NameS={"B","C","C#","D","D#","E","F","F#","G","G#","A","A#"} //音名の#系です。[br]C4={"maj7","m7","m7","maj7","7","m7","m7-5"} //4和音[br]C3={"","m","m","","","m","m-5"} //3和音[br]名前リストを2オクターブ分とります。[br]NS2=join(NameS,NameS)[br]インデックスはgeogebraなら1から24番になります。[br]たとえば、Bを主音にしたときにメジャースケールのインデックスは[br]M={1,3,5、6、8,10,12}ですから、[br]k=NameS2(n)を主音にするメジャースケールのドレミファソラシド名は[br]doremi=sequence(NS2(k-1+M(i)), i, 1,7)[br]doremi+C3で3和音、[br]doremi+C4で4和音の和音名になります。[br]キーを選ぶスライダーをn(1以上12以下)とすると、[br]選んだキーはNameS(n)のテキストになります。[br][br](コードやキーの名前を♭にした表示も考えましたが、内部バグらしく、表示がちがってました。)[br]このアプレットは、キーを指定すると、[br]そのキーのスケールでの和音名が出るのは便利ですが、コードの音程の理由は確認できません。[br][br][color=#9900ff][u][b][size=150]質問:スケールの音程とコードの音程が視覚化できるアプレットはどうやって作りますか?[br][/size][/b][/u][/color][br]12種類の音名があるので、12角形の点にします。[br][b]たとえば、e^(i 2π/k) k=1...12として、12個の複素数z1からz12を設定[/b]しましょう。[br]12音名のリストNameS={"B", "C",......., "A#"}にたいして、[br]NameS(1), NameS(2),....,NameS(12)を1つ1つのテキストオブジェクトとして、[br][b]txt1, txt2,.....txt12[/b]と名前をつけなおします。[br]そうして、それぞれのテキストオブジェクト[b]txt kの「設定」の「位置」のリストから対応するzk[/b][br]を選ぶべば、12個の頂点に、音名を表示できるようになるでしょう。[br][br]1つ1つの複素数の他に、複素数のリスト[b]pt=sequence(e^(i 2π/k), k, 1, 12)を設定[/b]しておけば、[br]pt(x)のxを適当に選ぶことで、スケールに関係のある点を強調できます。[br](そして、選ばれた番号の頂点kに対して、mod(k-1,12)+1をすることで、12のときに12にする[br]変則mod12を作ることで、kの変化に対して、1,2、…、12、1,2、…。12と返します。)[br][br]選ばれたスケールの番号[b]M={1,3,5、6、8,10,12}[/b][br]キーをn=2としたばあい、[b]M+n-1[/b]={2, 4, 6, 7, 9,11,13}と、リストをシフトして、[b]MN[/b]という名前をつけます。そして、[b]Sequence(Mod(MN(k)-1, 12)+1,k,1,7)[/b]とすると、12をこえたら12けずれます。[br]それを[b]MN2[/b]とすると={ 2, 4, 6, 7, 9,11,1}となり、複素数の番号をはずしてた分を、12個に納めます。[br][br]ここで、zip(pt(k),k,MN2)とするとMN2番目の頂点、つまりキーが2の[b]スケール音名を強調[/b]できますね。[br][br]最後に和音がサイクリックな音名の関係、つまり円環構造なので、[br][b]スケール上の3和音、4和音の点を多角形の頂点[/b]として選びだしましょう。[br]3和音ならば、その和音がキーのi 番目なら、[b]Cp3={MN2(i),MN2(i+2),MN2(i+4)}と番号リスト[/b]を作ります。すると、12等分の点から[b]polygon(pt(Cp3(1)),pt(Cp3(2)),pt(Cp3(3)))[/b][br]とするだけで三角形が指定できます。[br]4和音場合は、スケール上の位置MN2で、さらに偶数番増やせばよいですね。[br][br]くわしくは、かくれた「数式」を広げて、グラフィックビューを一時的にせまくして、観察しましょう。[br][br]

Information: メジャースケール上の和音