2023年5月2日火曜日

音律計算と行列計算1

音律計算で行列計算を有効活用できることを示してみた。(その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)

BCDEFGHI
2二倍音三倍音五倍音七倍音
3二倍音の数1000
4三倍音の数0100
5五倍音の数0010

7周波数比2357
8
9二倍音
の数
三倍音
の数
五倍音
の数
七倍音
の数
周波数比
(分数)
周波数比
(小数)
周波数比の
対数(セント)
10同度00001/11.0000000.000000
11スキスマ-1581032805/327681.0011291.953721
12クライスマ-6-56015625/155521.0046948.107279
13ディアスキスマ11-4-202048/20251.01135819.552569
14シントニックコンマ-44-1081/801.01250021.506290
15ピタゴラスコンマ-191200531441/5242881.01364323.460010
16小ディエシス70-30128/1251.02400041.058858
17大ディエシス34-40648/6251.03680062.565148
18小半音-3-12025/241.04166770.672427
19ピタゴラスリンマ8-500256/2431.05349890.224996
20大半音-7310135/1281.05468892.178716
21ディアトニック半音4-1-1016/151.066667111.731285
22ピタゴラスのアポトメー-117002187/20481.067871113.685006
23大リンマ03-2027/251.080000133.237575
24小全音1-21010/91.111111182.403712
25大全音-32009/81.125000203.910002
26ピタゴラス短三度5-30032/271.185185294.134997
27純正短三度11-106/51.200000315.641287
28ピタゴラスの減四度13-8008192/65611.248590384.359993
29純正長三度-20105/41.250000386.313714
30ピタゴラスの長三度-640081/641.265625407.820003
31ミーントーンウルフ長三度50-2032/251.280000427.372572
32純正完全四度2-1004/31.333333498.044999
33スキスマ五度14-7-1016384/109351.498308700.001280
34純正完全五度-11003/21.500000701.955001
35小減六度10-3-201024/6751.517037721.507570
36大減六度61-30192/1251.536000743.013859
37ピタゴラス短六度7-400128/811.580247792.179997
38純正短六度30-108/51.600000813.686286
39純正長六度0-1105/31.666667884.358713
40ピタゴラス長六度-430027/161.687500905.865003
41ピタゴラス短七度4-20016/91.777778996.089998
42純正短七度02-109/51.8000001017.596288
43純正長七度-311015/81.8750001088.268715
44ピタゴラス長七度-7500243/1281.8984381109.775004
45オクターブ(二倍音)10002/12.0000001200.000000
46三倍音01003/13.0000001901.955001
47五倍音0015/15.0000002786.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

LMNOPQRSTUVW
2オクターブ純正完全五度S.C.七倍音
3二倍音の数1-1-40
4三倍音の数0140
5五倍音の数00-10

0
7周波数比21.51.01257
8
9オクターブ
の数
純正完全五度
の数
S.C.
の数
七倍音
の数
幹音Id嬰数音名
(英語風)
度数増数音程
(拡張版)
10同度000000C^010完全1度^0
11スキスマ-712-1061B#^-171増7度^-1
12クライスマ-1119-6062B##^-672重増7度^-6
13ディアスキスマ7-12201-2Dbb^22-1減2度^2
14シントニックコンマ001000C^110完全1度^1
15ピタゴラスコンマ-7120061B#^071増7度^0
16小ディエシス7-12301-2Dbb^32-1減2度^3
17大ディエシス7-12401-2Dbb^42-1減2度^4
18小半音-47-2001C#^-211増1度^-2
19ピタゴラスリンマ3-5001-1Db^02-0.5短2度^0
20大半音-47-1001C#^-111増1度^-1
21ディアトニック半音3-5101-1Db^12-0.5短2度^1
22ピタゴラスのアポトメー-470001C#^011増1度^0
23大リンマ3-5201-1Db^22-0.5短2度^2
24小全音-12-1010D^-120.5長2度^-1
25大全音-120010D^020.5長2度^0
26ピタゴラス短三度2-3002-1Eb^03-0.5短3度^0
27純正短三度2-3102-1Eb^13-0.5短3度^1
28ピタゴラスの減四度5-8003-1Fb^04-1減4度^0
29純正長三度-24-1020E^-130.5長3度^-1
30ピタゴラスの長三度-240020E^030.5長3度^0
31ミーントーンウルフ長三度5-8203-1Fb^24-1減4度^2
32純正完全四度1-10030F^040完全4度^0
33スキスマ五度7-11105-2Abb^16-1減6度^1
34純正完全五度010040G^050完全5度^0
35小減六度7-11205-2Abb^26-1減6度^2
36大減六度7-11305-2Abb^36-1減6度^3
37ピタゴラス短六度3-4005-1Ab^06-0.5短6度^0
38純正短六度3-4105-1Ab^16-0.5短6度^1
39純正長六度-13-1050A^-160.5長6度^-1
40ピタゴラス長六度-130050A^060.5長6度^0
41ピタゴラス短七度2-2006-1Bb^07-0.5短7度^0
42純正短七度2-2106-1Bb^17-0.5短7度^1
43純正長七度-25-1060B^-170.5長7度^-1
44ピタゴラス長七度-250060B^070.5長7度^0
45オクターブ(二倍音)100000C^010完全1度^0
46三倍音110040G^050完全5度^0
47五倍音04-1020E^-130.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 件のコメント:

コメントを投稿