すのものの「純正律について」(その2)

※ 検索エンジンから直接このページに来られたかたには、まず 『すのものの「純正律について」』 をお読みになることをおすすめします。

すのものの「純正律について」(その1)』 で示した表のうち、最も大きいものについて、 最初にとった C の音からみた周波数比とセントで示した音程を計算して表にした。

表の左上のほうの分子、右下のほうの分母では下のケタに多くの 0 が並んでいるが、 これで正しい。(近似値ではない。)

上から5行めの Cis は最初にとった C より低い、などがわかる。

一番 1 に近いのは、10 行めの His の 32805/32768, 1.953721 セントと、 それと対になる、 12 行めの Deses の 65536/32805, 1198.046279 セントである。 前者の 32805/32768, 1.953721 セントは、 ピタゴラス・コンマ 531441/524288 = 312/219, 23.460010... セントと シントニック・コンマ 81/80 = 34/(24×5), 21.506289... セントとの差に等しい。 (312/219) / (34/(24×5)) = 38×5/215 = 32805/32768 である。

平均律の音はセントで表すと 100 の整数倍になる。 ブラウザの検索機能で「00.」や「99.」をさがすと、 それに近い音がいくつかみつかる。

############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# #############
  Hisis
20000000000/10460353203
1122.082120
 
Gisis
16000000000/10460353203
735.768407
Disis
4000000000/3486784401
237.723407
Aisis
2000000000/1162261467
939.678408
Eisis
500000000/387420489
441.633409
Hisis
250000000/129140163
1143.588410
 
  His
6400000000/3486784401
1051.409694
Fisis
1600000000/1162261467
553.364694
Cisis
400000000/387420489
55.319695
Gisis
200000000/129140163
757.274696
Disis
50000000/43046721
259.229697
Aisis
25000000/14348907
961.184698
Eisis
6250000/4782969
463.139699
Hisis
3125000/1594323
1165.094700
 
Gis
5120000000/3486784401
665.095980
Dis
1280000000/1162261467
167.050981
Ais
640000000/387420489
869.005981
Eis
160000000/129140163
370.960982
His
80000000/43046721
1072.915983
Fisis
20000000/14348907
574.870984
Cisis
5000000/4782969
76.825985
Gisis
2500000/1594323
778.780986
Disis
625000/531441
280.735987
Aisis
312500/177147
982.690988
Eisis
78125/59049
484.645988
Hisis
78125/39366
1186.600989
 
  H
2048000000/1162261467
980.737267
Fis
512000000/387420489
482.692268
Cis
256000000/129140163
1184.647268
Gis
64000000/43046721
686.602269
Dis
16000000/14348907
188.557270
Ais
8000000/4782969
890.512271
Eis
2000000/1594323
392.467272
His
1000000/531441
1094.422273
Fisis
250000/177147
596.377274
Cisis
62500/59049
98.332275
Gisis
31250/19683
800.287275
Disis
15625/13122
302.242276
Aisis
15625/8748
1004.197277
Eisis
15625/11664
506.152278
Hisis
15625/15552
8.107279
 
G
1638400000/1162261467
594.423553
D
409600000/387420489
96.378554
A
204800000/129140163
798.333555
E
51200000/43046721
300.288555
H
25600000/14348907
1002.243556
Fis
6400000/4782969
504.198557
Cis
1600000/1594323
6.153558
Gis
800000/531441
708.108559
Dis
200000/177147
210.063560
Ais
100000/59049
912.018561
Eis
25000/19683
413.973562
His
12500/6561
1115.928562
Fisis
3125/2187
617.883563
Cisis
3125/2916
119.838564
Gisis
3125/1944
821.793565
Disis
3125/2592
323.748566
Aisis
3125/1728
1025.703567
Eisis
3125/2304
527.658568
Hisis
3125/3072
29.613568
 
  B
655360000/387420489
910.064840
F
163840000/129140163
412.019841
C
81920000/43046721
1113.974842
G
20480000/14348907
615.929842
D
5120000/4782969
117.884843
A
2560000/1594323
819.839844
E
640000/531441
321.794845
H
320000/177147
1023.749846
Fis
80000/59049
525.704847
Cis
20000/19683
27.659848
Gis
10000/6561
729.614849
Dis
2500/2187
231.569849
Ais
1250/729
933.524850
Eis
625/486
435.479851
His
625/324
1137.434852
Fisis
625/432
639.389853
Cisis
625/576
141.344854
Gisis
625/384
843.299855
Disis
625/512
345.254855
Aisis
1875/1024
1047.209856
Eisis
5625/4096
549.164857
Hisis
16875/16384
51.119858
 
Ges
524288000/387420489
523.751126
Des
131072000/129140163
25.706127
As
65536000/43046721
727.661128
Es
16384000/14348907
229.616129
B
8192000/4782969
931.571129
F
2048000/1594323
433.526130
C
1024000/531441
1135.481131
G
256000/177147
637.436132
D
64000/59049
139.391133
A
32000/19683
841.346134
E
8000/6561
343.301135
H
4000/2187
1045.256136
Fis
1000/729
547.211136
Cis
250/243
49.166137
Gis
125/81
751.121138
Dis
125/108
253.076139
Ais
125/72
955.031140
Eis
125/96
456.986141
His
125/64
1158.941142
Fisis
375/256
660.896142
Cisis
1125/1024
162.851143
Gisis
3375/2048
864.806144
Disis
10125/8192
366.761145
Aisis
30375/16384
1068.716146
Eisis
91125/65536
570.671147
Hisis
273375/262144
72.626148
 
  Bes
209715200/129140163
839.392413
Fes
52428800/43046721
341.347414
Ces
26214400/14348907
1043.302415
Ges
6553600/4782969
545.257416
Des
1638400/1594323
47.212416
As
819200/531441
749.167417
Es
204800/177147
251.122418
B
102400/59049
953.077419
F
25600/19683
455.032420
C
12800/6561
1156.987421
G
3200/2187
658.942422
D
800/729
160.897423
A
400/243
862.852423
E
100/81
364.807424
H
50/27
1066.762425
Fis
25/18
568.717426
Cis
25/24
70.672427
Gis
25/16
772.627428
Dis
75/64
274.582429
Ais
225/128
976.537429
Eis
675/512
478.492430
His
2025/1024
1180.447431
Fisis
6075/4096
682.402432
Cisis
18225/16384
184.357433
Gisis
54675/32768
886.312434
Disis
164025/131072
388.267435
Aisis
492075/262144
1090.222436
Eisis
1476225/1048576
592.177436
Hisis
4428675/4194304
94.132437
 
Geses
167772160/129140163
453.078699
Deses
83886080/43046721
1155.033700
Ases
20971520/14348907
656.988701
Eses
5242880/4782969
158.943702
Bes
2621440/1594323
860.898703
Fes
655360/531441
362.853703
Ces
327680/177147
1064.808704
Ges
81920/59049
566.763705
Des
20480/19683
68.718706
As
10240/6561
770.673707
Es
2560/2187
272.628708
B
1280/729
974.583709
F
320/243
476.538710
C
160/81
1178.493710
G
40/27
680.448711
D
10/9
182.403712
A
5/3
884.358713
E
5/4
386.313714
H
15/8
1088.268715
Fis
45/32
590.223716
Cis
135/128
92.178716
Gis
405/256
794.133717
Dis
1215/1024
296.088718
Ais
3645/2048
998.043719
Eis
10935/8192
499.998720
His
32805/32768
1.953721
Fisis
98415/65536
703.908722
Cisis
295245/262144
205.863723
Gisis
885735/524288
907.818723
Disis
2657205/2097152
409.773724
Aisis
7971615/4194304
1111.728725
Eisis
23914845/16777216
613.683726
Hisis
71744535/67108864
115.638727
 
  Beses
67108864/43046721
768.719986
Feses
16777216/14348907
270.674987
Ceses
8388608/4782969
972.629988
Geses
2097152/1594323
474.584989
Deses
1048576/531441
1176.539990
Ases
262144/177147
678.494990
Eses
65536/59049
180.449991
Bes
32768/19683
882.404992
Fes
8192/6561
384.359993
Ces
4096/2187
1086.314994
Ges
1024/729
588.269995
Des
256/243
90.224996
As
128/81
792.179997
Es
32/27
294.134997
B
16/9
996.089998
F
4/3
498.044999
C
1/1
0.000000
G
3/2
701.955001
D
9/8
203.910002
A
27/16
905.865003
E
81/64
407.820003
H
243/128
1109.775004
Fis
729/512
611.730005
Cis
2187/2048
113.685006
Gis
6561/4096
815.640007
Dis
19683/16384
317.595008
Ais
59049/32768
1019.550009
Eis
177147/131072
521.505010
His
531441/524288
23.460010
Fisis
1594323/1048576
725.415011
Cisis
4782969/4194304
227.370012
Gisis
14348907/8388608
929.325013
Disis
43046721/33554432
431.280014
Aisis
129140163/67108864
1133.235015
Eisis
387420489/268435456
635.190016
Hisis
1162261467/1073741824
137.145016
 
  Beses
4194304/2657205
790.226276
Feses
1048576/885735
292.181277
Ceses
524288/295245
994.136277
Geses
131072/98415
496.091278
Deses
65536/32805
1198.046279
Ases
16384/10935
700.001280
Eses
4096/3645
201.956281
Bes
2048/1215
903.911282
Fes
512/405
405.866283
Ces
256/135
1107.821284
Ges
64/45
609.776284
Des
16/15
111.731285
As
8/5
813.686286
Es
6/5
315.641287
B
9/5
1017.596288
F
27/20
519.551289
C
81/80
21.506290
G
243/160
723.461290
D
729/640
225.416291
A
2187/1280
927.371292
E
6561/5120
429.326293
H
19683/10240
1131.281294
Fis
59049/40960
633.236295
Cis
177147/163840
135.191296
Gis
531441/327680
837.146297
Dis
1594323/1310720
339.101297
Ais
4782969/2621440
1041.056298
Eis
14348907/10485760
543.011299
His
43046721/41943040
44.966300
Fisis
129140163/83886080
746.921301
Cisis
387420489/335544320
248.876302
Gisis
1162261467/671088640
950.831303
Disis
3486784401/2684354560
452.786303
  Beses
262144/164025
811.732565
Feses
65536/54675
313.687566
Ceses
32768/18225
1015.642567
Geses
8192/6075
517.597568
Deses
2048/2025
19.552569
Ases
1024/675
721.507570
Eses
256/225
223.462571
Bes
128/75
925.417571
Fes
32/25
427.372572
Ces
48/25
1129.327573
Ges
36/25
631.282574
Des
27/25
133.237575
As
81/50
835.192576
Es
243/200
337.147577
B
729/400
1039.102577
F
2187/1600
541.057578
C
6561/6400
43.012579
G
19683/12800
744.967580
D
59049/51200
246.922581
A
177147/102400
948.877582
E
531441/409600
450.832583
H
1594323/819200
1152.787584
Fis
4782969/3276800
654.742584
Cis
14348907/13107200
156.697585
Gis
43046721/26214400
858.652586
Dis
129140163/104857600
360.607587
Ais
387420489/209715200
1062.562588
Eis
1162261467/838860800
564.517589
His
3486784401/3355443200
66.472590
 
  Beses
16384/10125
833.238855
Feses
4096/3375
335.193856
Ceses
2048/1125
1037.148857
Geses
512/375
539.103858
Deses
128/125
41.058858
Ases
192/125
743.013859
Eses
144/125
244.968860
Bes
216/125
946.923861
Fes
162/125
448.878862
Ces
243/125
1150.833863
Ges
729/500
652.788864
Des
2187/2000
154.743864
As
6561/4000
856.698865
Es
19683/16000
358.653866
B
59049/32000
1060.608867
F
177147/128000
562.563868
C
531441/512000
64.518869
G
1594323/1024000
766.473870
D
4782969/4096000
268.428871
A
14348907/8192000
970.383871
E
43046721/32768000
472.338872
H
129140163/65536000
1174.293873
Fis
387420489/262144000
676.248874
Cis
1162261467/1048576000
178.203875
Gis
3486784401/2097152000
880.158876
Dis
10460353203/8388608000
382.113877
  Beses
1024/625
854.745145
Feses
768/625
356.700145
Ceses
1152/625
1058.655146
Geses
864/625
560.610147
Deses
648/625
62.565148
Ases
972/625
764.520149
Eses
729/625
266.475150
Bes
2187/1250
968.430151
Fes
6561/5000
470.385151
Ces
19683/10000
1172.340152
Ges
59049/40000
674.295153
Des
177147/160000
176.250154
As
531441/320000
878.205155
Es
1594323/1280000
380.160156
B
4782969/2560000
1082.115157
F
14348907/10240000
584.070158
C
43046721/40960000
86.025158
G
129140163/81920000
787.980159
D
387420489/327680000
289.935160
A
1162261467/655360000
991.890161
E
3486784401/2621440000
493.845162
H
10460353203/5242880000
1195.800163
 
  Beses
5184/3125
876.251434
Feses
3888/3125
378.206435
Ceses
5832/3125
1080.161436
Geses
4374/3125
582.116437
Deses
6561/6250
84.071438
Ases
19683/12500
786.026438
Eses
59049/50000
287.981439
Bes
177147/100000
989.936440
Fes
531441/400000
491.891441
Ces
1594323/800000
1193.846442
Ges
4782969/3200000
695.801443
Des
14348907/12800000
197.756444
As
43046721/25600000
899.711445
Es
129140163/102400000
401.666445
B
387420489/204800000
1103.621446
F
1162261467/819200000
605.576447
C
3486784401/3276800000
107.531448
G
10460353203/6553600000
809.486449
D
31381059609/26214400000
311.441450
  Beses
26244/15625
897.757724
Feses
19683/15625
399.712725
Ceses
59049/31250
1101.667725
Geses
177147/125000
603.622726
Deses
531441/500000
105.577727
Ases
1594323/1000000
807.532728
Eses
4782969/4000000
309.487729
Bes
14348907/8000000
1011.442730
Fes
43046721/32000000
513.397731
Ces
129140163/128000000
15.352732
Ges
387420489/256000000
717.307732
Des
1162261467/1024000000
219.262733
As
3486784401/2048000000
921.217734
Es
10460353203/8192000000
423.172735
B
31381059609/16384000000
1125.127736
 
  Beses
531441/312500
919.264013
Feses
1594323/1250000
421.219014
Ceses
4782969/2500000
1123.174015
Geses
14348907/10000000
625.129016
Deses
43046721/40000000
127.084017
Ases
129140163/80000000
829.039018
Eses
387420489/320000000
330.994019
Bes
1162261467/640000000
1032.949019
Fes
3486784401/2560000000
534.904020
Ces
10460353203/10240000000
36.859021
Ges
31381059609/20480000000
738.814022
Des
94143178827/81920000000
240.769023
  Beses
43046721/25000000
940.770303
Feses
129140163/100000000
442.725304
Ceses
387420489/200000000
1144.680305
Geses
1162261467/800000000
646.635306
Deses
3486784401/3200000000
148.590306
Ases
10460353203/6400000000
850.545307
Eses
31381059609/25600000000
352.500308
Bes
94143178827/51200000000
1054.455309
 
  Beses
3486784401/2000000000
962.276593
Feses
10460353203/8000000000
464.231593
Ceses
31381059609/16000000000
1166.186594
Geses
94143178827/64000000000
668.141595
Deses
282429536481/256000000000
170.096596
  Beses
282429536481/160000000000
983.782882
 

上の表は、 C言語による次のプログラムに出力させたものである。 html の table として出力される。 周波数比は有理数であるが、 その分母・分子はそれぞれ double 型に格納した。 int 型が 32 ビットであっても値を格納しきれないからである。 double 型の規格は知らないので、 このプログラムが、 ANSI C 準拠のすべてのコンパイラによって、 上と同じ表を出力する実行ファイルを生みだすかどうかは、 私にはわからない。 (十進で 12 ケタの整数が扱える必要がある。)

どの音の周波数を 1 にとるかは、 プログラム冒頭の #define 文を手直しすれば変更できる。 本来なら、表全体の行の数・列の数も #define 文で変えられることが望ましいが、それはできなかった。

表の地の色は、最初のほうの #define 文で変更できる。 このページのソースファイルを元に、 エディタの機能を使って置換するほうが楽かもしれない。

付)以下のプログラムは、LICO の値を変えてコンパイルすると正しい結果が得られなかったバグを、 2010-06-21 (2) に修正したものである。

#include <stdio.h>
#include <math.h>   /* log10, floor */

#define LIN 21  /* 行の数(変えるとプログラム自体にも手直しが必要) */
#define COL 74  /* 列の数(変えるとプログラム自体にも手直しが必要) */
#define LI  10  /* 周波数 1 を何行めにおくか(変えてよい) */
#define CO  33  /* 周波数 1 を何列めにおくか(変えてよい) */

double val[2];  /* 分子、分母 */

char* name[] = {"Beses",
                "Feses", "Ceses", "Geses", "Deses", "Ases", "Eses", "Bes", \
                "Fes", "Ces", "Ges", "Des", "As", "Es", "B", \
                "F", "C", "G", "D", "A", "E", "H", \
                "Fis", "Cis", "Gis", "Dis", "Ais", "Eis", "His", \
                "Fisis", "Cisis", "Gisis", "Disis", "Aisis", "Eisis", "Hisis" };

char* color[] = { "ffffdd", "eeddff", "ddffdd", "ffddee", "ddffff", "ffeedd", \
                  "ddddff", "eeffdd", "ffddff", "ddffee", "ffdddd", "ddeeff" };
        /* (平均律で)As, Es, B, F, C, G; D, A, E, H, Fis, Cis の地の色(変えてよい) */

void standardize(double* a);
double power(double base, int n);

main() {
    int i, j, n;

    printf("<html><body>\n<table border=\"1\">\n");
    printf("<tr>\n");
    for (j = 0; j < COL; j++) {
        printf("\t<td><font color=\"white\">#############</font></td>\n");
    }
    printf("</tr>\n");
    for (i = 0; i < LIN; i++) {
        printf("<tr align=\"center\">\n");
        if (i <= LIN / 2) {
            if (i % 2 == 0) {
                printf("\t<td>&nbsp;</td>\n"); j = 1;
            } else {
                j = 0;
            }
        } else {
            printf("\t<td colspan=\"%d\">&nbsp;</td>\n", 7*i - COL + 5); j = 7*i - COL + 5;
        }

        for (   ; j < 7*i + 2 && j < COL - 1; j += 2) {
            if (i <= LI) {
                val[0] = power(5, LI - i); val[1] = 1;
            } else {
                val[0] = 1; val[1] = power(5, i - LI);
            }
            if (i + j < LI + CO) {
                val[1] *= power(3, ((LI + CO) - (i + j) + 1)/2);
            } else {
                val[0] *= power(3, ((i + j) - (LI + CO))/2);
            }
            n = 35 - (7*i+1)/2 + j/2;           /* この値で音名が決まる */
            standardize(val);
            printf("\t<td colspan=\"2\" bgcolor=\"#%s\">", color[n%12]);
            printf("%s<br>%.0f/%.0f<br>", name[n], val[0], val[1]);
            printf("%f</td>\n", log10(val[0]/val[1])/log10(2)*1200);
        }
        if (j <= COL-1) {
            if (COL-1-j > 1) {
                printf("\t<td colspan=\"%d\">&nbsp;</td>\n", COL-j);
            } else {
                printf("\t<td>&nbsp;</td>\n");
            }
        }
        printf("</tr>\n");
    }
    printf("</table>\n");
}


/* a[] を分数とみたとき、1 以上 2 未満に規格化する */
void standardize(double* a) {
    while (a[0] < a[1]) {
        if (floor(a[1] / 2) == a[1] / 2) {
            a[1] /= 2;
        } else {
            a[0] *= 2;
        }
    }
    while (a[0] / 2 >= a[1]) {
        if (floor(a[0] / 2) == a[0] / 2) {
            a[0] /= 2;
        } else {
            a[1] *= 2;
        }
    }
}


/* base の n 乗を返す。K&R2 にあるのとほぼ同じ */
double power(double base, int n) {
    int i;
    double p;

    p = 1;
    for (i = 0; i < n; i++) {
        p *= base;
    }
    return p;
}


すのもの Sunomono