音律計算で行列計算を有効活用できることを示してみた。(その1)
調律計算用各種音程
「チェンバロの保守と調律」補遺編 東京コレギウム 野村満男著より
b45 オクターブ(二倍音) c45:e45 =ArrayFormula({1,0,0})
b46 三倍音 c46:e46 =ArrayFormula({0,1,0})
b47 五倍音 c47:e47 =ArrayFormula({0,0,1})
c3:c5 =ArrayFormula(transpose($C45:$E45))
d3:d5 =ArrayFormula(transpose($C46:$E46))
e3:e5 =ArrayFormula(transpose($C47:$E47))
c7:e7 =ArrayFormula({2,3,5})
g10 =ArrayFormula(product(C$7:F$7^(if(C10:F10>0,C10:F10,0))))&"/"&arrayformula(product(C$7:F$7^(if(C10:F10<0,-C10:F10,0))))
h10 =ArrayFormula(product(C$7:F$7^C10:F10))
i10 =1200/ln(2)*ln(H10)
| B | C | D | E | F | G | H | I |
2 | | 二倍音 | 三倍音 | 五倍音 | 七倍音 | | | |
3 | 二倍音の数 | 1 | 0 | 0 | 0 | | |
|
4 | 三倍音の数 | 0 | 1 | 0 | 0 | | |
|
5 | 五倍音の数 | 0 | 0 | 1 | 0 | | |
|
| | | | | | | | |
7 | 周波数比 | 2 | 3 | 5 | 7 | | |
|
8 | | | | | | | | |
9 | | 二倍音 の数 | 三倍音 の数 | 五倍音 の数 | 七倍音 の数 | 周波数比 (分数) | 周波数比 (小数) | 周波数比の 対数(セント) |
10 | 同度 | 0 | 0 | 0 | 0 | 1/1 | 1.000000 | 0.000000 |
11 | スキスマ | -15 | 8 | 1 | 0 | 32805/32768 | 1.001129 | 1.953721 |
12 | クライスマ | -6 | -5 | 6 | 0 | 15625/15552 | 1.004694 | 8.107279 |
13 | ディアスキスマ | 11 | -4 | -2 | 0 | 2048/2025 | 1.011358 | 19.552569 |
14 | シントニックコンマ | -4 | 4 | -1 | 0 | 81/80 | 1.012500 | 21.506290 |
15 | ピタゴラスコンマ | -19 | 12 | 0 | 0 | 531441/524288 | 1.013643 | 23.460010 |
16 | 小ディエシス | 7 | 0 | -3 | 0 | 128/125 | 1.024000 | 41.058858 |
17 | 大ディエシス | 3 | 4 | -4 | 0 | 648/625 | 1.036800 | 62.565148 |
18 | 小半音 | -3 | -1 | 2 | 0 | 25/24 | 1.041667 | 70.672427 |
19 | ピタゴラスリンマ | 8 | -5 | 0 | 0 | 256/243 | 1.053498 | 90.224996 |
20 | 大半音 | -7 | 3 | 1 | 0 | 135/128 | 1.054688 | 92.178716 |
21 | ディアトニック半音 | 4 | -1 | -1 | 0 | 16/15 | 1.066667 | 111.731285 |
22 | ピタゴラスのアポトメー | -11 | 7 | 0 | 0 | 2187/2048 | 1.067871 | 113.685006 |
23 | 大リンマ | 0 | 3 | -2 | 0 | 27/25 | 1.080000 | 133.237575 |
24 | 小全音 | 1 | -2 | 1 | 0 | 10/9 | 1.111111 | 182.403712 |
25 | 大全音 | -3 | 2 | 0 | 0 | 9/8 | 1.125000 | 203.910002 |
26 | ピタゴラス短三度 | 5 | -3 | 0 | 0 | 32/27 | 1.185185 | 294.134997 |
27 | 純正短三度 | 1 | 1 | -1 | 0 | 6/5 | 1.200000 | 315.641287 |
28 | ピタゴラスの減四度 | 13 | -8 | 0 | 0 | 8192/6561 | 1.248590 | 384.359993 |
29 | 純正長三度 | -2 | 0 | 1 | 0 | 5/4 | 1.250000 | 386.313714 |
30 | ピタゴラスの長三度 | -6 | 4 | 0 | 0 | 81/64 | 1.265625 | 407.820003 |
31 | ミーントーンウルフ長三度 | 5 | 0 | -2 | 0 | 32/25 | 1.280000 | 427.372572 |
32 | 純正完全四度 | 2 | -1 | 0 | 0 | 4/3 | 1.333333 | 498.044999 |
33 | スキスマ五度 | 14 | -7 | -1 | 0 | 16384/10935 | 1.498308 | 700.001280 |
34 | 純正完全五度 | -1 | 1 | 0 | 0 | 3/2 | 1.500000 | 701.955001 |
35 | 小減六度 | 10 | -3 | -2 | 0 | 1024/675 | 1.517037 | 721.507570 |
36 | 大減六度 | 6 | 1 | -3 | 0 | 192/125 | 1.536000 | 743.013859 |
37 | ピタゴラス短六度 | 7 | -4 | 0 | 0 | 128/81 | 1.580247 | 792.179997 |
38 | 純正短六度 | 3 | 0 | -1 | 0 | 8/5 | 1.600000 | 813.686286 |
39 | 純正長六度 | 0 | -1 | 1 | 0 | 5/3 | 1.666667 | 884.358713 |
40 | ピタゴラス長六度 | -4 | 3 | 0 | 0 | 27/16 | 1.687500 | 905.865003 |
41 | ピタゴラス短七度 | 4 | -2 | 0 | 0 | 16/9 | 1.777778 | 996.089998 |
42 | 純正短七度 | 0 | 2 | -1 | 0 | 9/5 | 1.800000 | 1017.596288 |
43 | 純正長七度 | -3 | 1 | 1 | 0 | 15/8 | 1.875000 | 1088.268715 |
44 | ピタゴラス長七度 | -7 | 5 | 0 | 0 | 243/128 | 1.898438 | 1109.775004 |
45 | オクターブ(二倍音) | 1 | 0 | 0 | 0 | 2/1 | 2.000000 | 1200.000000 |
46 | 三倍音 | 0 | 1 | 0 | 0 | 3/1 | 3.000000 | 1901.955001 |
47 | 五倍音 | 0 | 0 | 1 | | 5/1 | 5.000000 | 2786.313714 |
分母が1でも「/1」となってしまうのはご愛敬。
m3:m5 =ArrayFormula(transpose($C45:$E45))
n3:n5 =ArrayFormula(transpose($C34:$E34))
o3:o5 =ArrayFormula(transpose($C14:$E14))
m7:o7 =ArrayFormula(2^mmult(ln(C7:E7)/ln(2),M3:O5))
m10:o10 =ArrayFormula(mmult(C10:E10,minverse(transpose(M$3:O$5))))
※逆行列によりベクトルの座標変換。厳密にはベクトルではないと思う。
純正完全五度の数=五度圏idとs.c.の数で英語風音名と拡張版音程を求めている。
t10 =index({"C","D","E","F","G","A","B"},mod(N10*4,7)+1)&rept(if(int((N10+1)/7)>0,"#","b"),abs(int((N10+1)/7)))&"^"&O10
w10 =IF(N10^2>19^2,abs(rounddown(round(2*N10/7,0)/2)),"")&IF(N10^2>12^2,"重","")&IF(N10^2<2,"完全",IF(N10<-5,"減",IF(N10<-1,"短",IF(N10<6,"長","増"))))&round(mod(N10*4,7))+1&"度"&"^"&O10
| L | M | N | O | P | Q | R | S | T | U | V | W |
2 | | オクターブ | 純正完全五度 | S.C. | 七倍音 | | | | | | | |
3 | 二倍音の数 | 1 | -1 | -4 | 0 | | | | | | | |
4 | 三倍音の数 | 0 | 1 | 4 | 0 | | | | | | | |
5 | 五倍音の数 | 0 | 0 | -1 | 0 | | | | | | | |
| | | | | 0 | | | | | | | |
7 | 周波数比 | 2 | 1.5 | 1.0125 | 7 | | | | | | | |
8 | | | | | | | | | | | | |
9 | | オクターブ の数 | 純正完全五度 の数 | S.C. の数 | 七倍音 の数 | | 幹音Id | 嬰数 | 音名 (英語風) | 度数 | 増数 | 音程 (拡張版) |
10 | 同度 | 0 | 0 | 0 | 0 | | 0 | 0 | C^0 | 1 | 0 | 完全1度^0 |
11 | スキスマ | -7 | 12 | -1 | 0 | | 6 | 1 | B#^-1 | 7 | 1 | 増7度^-1 |
12 | クライスマ | -11 | 19 | -6 | 0 | | 6 | 2 | B##^-6 | 7 | 2 | 重増7度^-6 |
13 | ディアスキスマ | 7 | -12 | 2 | 0 | | 1 | -2 | Dbb^2 | 2 | -1 | 減2度^2 |
14 | シントニックコンマ | 0 | 0 | 1 | 0 | | 0 | 0 | C^1 | 1 | 0 | 完全1度^1 |
15 | ピタゴラスコンマ | -7 | 12 | 0 | 0 | | 6 | 1 | B#^0 | 7 | 1 | 増7度^0 |
16 | 小ディエシス | 7 | -12 | 3 | 0 | | 1 | -2 | Dbb^3 | 2 | -1 | 減2度^3 |
17 | 大ディエシス | 7 | -12 | 4 | 0 | | 1 | -2 | Dbb^4 | 2 | -1 | 減2度^4 |
18 | 小半音 | -4 | 7 | -2 | 0 | | 0 | 1 | C#^-2 | 1 | 1 | 増1度^-2 |
19 | ピタゴラスリンマ | 3 | -5 | 0 | 0 | | 1 | -1 | Db^0 | 2 | -0.5 | 短2度^0 |
20 | 大半音 | -4 | 7 | -1 | 0 | | 0 | 1 | C#^-1 | 1 | 1 | 増1度^-1 |
21 | ディアトニック半音 | 3 | -5 | 1 | 0 | | 1 | -1 | Db^1 | 2 | -0.5 | 短2度^1 |
22 | ピタゴラスのアポトメー | -4 | 7 | 0 | 0 | | 0 | 1 | C#^0 | 1 | 1 | 増1度^0 |
23 | 大リンマ | 3 | -5 | 2 | 0 | | 1 | -1 | Db^2 | 2 | -0.5 | 短2度^2 |
24 | 小全音 | -1 | 2 | -1 | 0 | | 1 | 0 | D^-1 | 2 | 0.5 | 長2度^-1 |
25 | 大全音 | -1 | 2 | 0 | 0 | | 1 | 0 | D^0 | 2 | 0.5 | 長2度^0 |
26 | ピタゴラス短三度 | 2 | -3 | 0 | 0 | | 2 | -1 | Eb^0 | 3 | -0.5 | 短3度^0 |
27 | 純正短三度 | 2 | -3 | 1 | 0 | | 2 | -1 | Eb^1 | 3 | -0.5 | 短3度^1 |
28 | ピタゴラスの減四度 | 5 | -8 | 0 | 0 | | 3 | -1 | Fb^0 | 4 | -1 | 減4度^0 |
29 | 純正長三度 | -2 | 4 | -1 | 0 | | 2 | 0 | E^-1 | 3 | 0.5 | 長3度^-1 |
30 | ピタゴラスの長三度 | -2 | 4 | 0 | 0 | | 2 | 0 | E^0 | 3 | 0.5 | 長3度^0 |
31 | ミーントーンウルフ長三度 | 5 | -8 | 2 | 0 | | 3 | -1 | Fb^2 | 4 | -1 | 減4度^2 |
32 | 純正完全四度 | 1 | -1 | 0 | 0 | | 3 | 0 | F^0 | 4 | 0 | 完全4度^0 |
33 | スキスマ五度 | 7 | -11 | 1 | 0 | | 5 | -2 | Abb^1 | 6 | -1 | 減6度^1 |
34 | 純正完全五度 | 0 | 1 | 0 | 0 | | 4 | 0 | G^0 | 5 | 0 | 完全5度^0 |
35 | 小減六度 | 7 | -11 | 2 | 0 | | 5 | -2 | Abb^2 | 6 | -1 | 減6度^2 |
36 | 大減六度 | 7 | -11 | 3 | 0 | | 5 | -2 | Abb^3 | 6 | -1 | 減6度^3 |
37 | ピタゴラス短六度 | 3 | -4 | 0 | 0 | | 5 | -1 | Ab^0 | 6 | -0.5 | 短6度^0 |
38 | 純正短六度 | 3 | -4 | 1 | 0 | | 5 | -1 | Ab^1 | 6 | -0.5 | 短6度^1 |
39 | 純正長六度 | -1 | 3 | -1 | 0 | | 5 | 0 | A^-1 | 6 | 0.5 | 長6度^-1 |
40 | ピタゴラス長六度 | -1 | 3 | 0 | 0 | | 5 | 0 | A^0 | 6 | 0.5 | 長6度^0 |
41 | ピタゴラス短七度 | 2 | -2 | 0 | 0 | | 6 | -1 | Bb^0 | 7 | -0.5 | 短7度^0 |
42 | 純正短七度 | 2 | -2 | 1 | 0 | | 6 | -1 | Bb^1 | 7 | -0.5 | 短7度^1 |
43 | 純正長七度 | -2 | 5 | -1 | 0 | | 6 | 0 | B^-1 | 7 | 0.5 | 長7度^-1 |
44 | ピタゴラス長七度 | -2 | 5 | 0 | 0 | | 6 | 0 | B^0 | 7 | 0.5 | 長7度^0 |
45 | オクターブ(二倍音) | 1 | 0 | 0 | 0 | | 0 | 0 | C^0 | 1 | 0 | 完全1度^0 |
46 | 三倍音 | 1 | 1 | 0 | 0 | | 4 | 0 | G^0 | 5 | 0 | 完全5度^0 |
47 | 五倍音 | 0 | 4 | -1 | 0 | | 2 | 0 | E^-1 | 3 | 0.5 | 長3度^-1 |
スキスマ五度が理論的には減六度なのが分かる。もちろん実用上五度とするのは問題ない。
幹音id=度数-1
嬰数は#の数。b(ここではフラットはBの小文字で表示)は-1として計算。
増数は増の数。重増は2、減は-1として計算。短=-0.5、完全=0、長=0.5とした。
1以上の場合は嬰数=増数だが1未満では差がある。
拡張版音程は音程をオクターブ調整したもの。もし音程であれば負になって「存在しない」になってしまうものも存在し(この表にはないが)、完全8度は完全1度になっている。
w10の最後の方のroundは無駄。行削除で度数に小数点の数が出てしまった時の対処の名残り。
余談1
グーグルドライブの表を貼り付けた場合、非表示にした行や列も貼り付けられてしまう。htmlの仕組み上、行を消すのは難しくないが列を消すのは簡単ではない。幅を狭くしたり一時的に削除したりして対応した。
後々7リミット以上の音律計算にも対応するため7倍音の列と行も用意して計算できるようにしてあるが、今は5リミットだけで満足しているw
2023.05.02 00:53公開 単純ミスなどは適宜修正済&修正予定
0 件のコメント:
コメントを投稿