JL (Java Livre) v0.1.8


データを新たに 2つ加えて JPの測定データ(Pitch)をJavaアプレットで表示します。

例えば 以下の様な測定データを...

...
56E.. Pitch:7.303 Inharmo.:1.185 (0.969)
52C.. Pitch:5.882 Inharmo.:0.883 (0.945)
49A.. Pitch:3.793 Inharmo.:0.7 (0.925)
44E.. Pitch:5.177 Inharmo.:0.419 (0.954)
40C.. Pitch:5.282 Inharmo.:0.272 (0.98)
52C.. Pitch:5.424 Inharmo.:0.859 (0.997)
...

...「awk」を使って...

% cat ccat
#!/usr/bin/awk -f
BEGIN { FS = " " }
{ $1 = substr($1, 1, 2)
  $2 = substr($2, 7)
  print $1 " " $2
}
% ccat jpdata > data0
...
56 7.303
52 5.882
49 3.793
44 5.177
40 5.282
52 5.424
...

...キーとセント値を取り出します。
キーが重複していて 順番も前後していますが そのまま読み込みます。

cent data

複数あるキーは 平均値を出します。

cent ave.

lsm(最小自乗法) 三次関数近似で 調律曲線の近似値を計算します。

cent lsm3

全て表示します。

cent all

Javaが表示されず利用出来なかった方は その画面だけでも御覧下さい。

jl

Source File ・ jl.zip (SIZE = 21963)
MD5 (jl.zip) = 7cba80ba021d3ee1eb2dc11db7a4e558

使い方:

調律曲線の大きさを 今回は C88-A49のセント差で表して見ました。

C(88)-A(49) : A49Inha. : Grade
------------------------------
29.947 : 0.6413 : 0.0973
10.341 : 0.6085 : 0.0811
21.933 : 0.5986 : 0.0833
25.866 : 0.6261 : 0.0892
19.646 : 0.5531 : 0.0844
20.292 : 0.5797 : 0.0881
30.782 : 0.6020 : 0.0892
36.782 : 0.6107 : 0.0829
13.771 : 0.5913 : 0.0820
26.496 : 0.6058 : 0.0888
23.937 : 0.5771 : 0.0808
54.475 : 0.4988 : 0.0775
26.429 : 0.4198 : 0.0756
28.719 : 0.5870 : 0.0831
22.202 : 0.6082 : 0.0897
11.89  : 0.6138 : 0.0837
23.274 : 0.6382 : 0.0931
29.582 : 0.5829 : 0.0912
31.152 : 0.6011 : 0.0870
15.417 : 0.5952 : 0.0885
21.115 : 0.6310 : 0.0921
17.897 : 0.6189 : 0.0866
35.171 : 0.5994 : 0.0887
29.697 : 0.6211 : 0.0894
32.726 : 0.6389 : 0.0910
34.293 : 0.6389 : 0.0910
------------------------
合計数 26

10段階のヒストグラムで表してみます。

histogram-10-1

14段階で表してみます。

histogram-14-1

A(49)のインハーモニシティ値と 傾き(Grade)のグラフです。

inha. and grade 1

傾き(Grade)と C(88)-A(49)セント差のグラフです。

grade and cent-diff 1

因みに相関係数は -0.0048822でした。

インハーモニシティ値と C(88)-A(49)セント差のグラフです。

inha. and cent-diff 1

相関係数は -0.20836でした。

ただし「HTML5版 三和音調律シミュレーション (HTML5 Triads Tuning Simulation)」などでは インハーモニシティ値と C(88)-A(49)セント差は 増加する傾向で 相関係数は 0.99999ですが...

inha. and cent-diff

傾き(Grade)とC(88)-A(49)セント差では 0.08で最高値を示して 相関係数は -0.33736となりました。

grade and cent-diff

相関係数はこれからも勉強して行きますが それでも測定値は あまりに変幻自在な様に見受けられます。


(v0.1.3)相関係数を他のキー間隔で調べて見ました。
3オクターブのセント差の場合です。

A(49)~A(85): -0.021267
A(37)~A(73): -0.18065
A(25)~A(61): -0.35731
A(13)~A(49): -0.22256
A(1)~A(37) : -0.041908

測定位置に依って 相関係数は変化します。
2オクターブです。

A(61)~A(85):  0.012131
A(49)~A(73): -0.10148
A(37)~A(61): -0.31353
A(25)~A(49): -0.32830
A(13)~A(37): -0.13859
A(1)~A(25) : -0.00035414

1オクターブです。

A(73)~:  0.037181
A(61)~: -0.037306
A(49)~: -0.22102
A(37)~: -0.3489
A(25)~: -0.25378
A(13)~: -0.062684
A(1)~ :  0.030873

3オクターブの A(25)の前後のキーを見てみます。

E(20)~:   -0.33388
F(21)~:   -0.34356
Fis(22)~: -0.35091
G(23)~:   -0.35576
Gis(24)~: -0.35793
A(25)~:   -0.35731
B(26)~:   -0.35382
H(27)~:   -0.34745
C(28)~:   -0.33827

2オクターブの A(25)の後を見てみます。

A(25)~:   -0.32830
B(26)~:   -0.33721
H(27)~:   -0.34446
C(28)~:   -0.35003
Cis(29)~: -0.35388
D(30)~:   -0.35595
Es(31)~:  -0.35617
E(32)~:   -0.35444
F(33)~:   -0.35065
Fis(34)~: -0.34471

オクターブの A(37)の前後です。

F(33)~:   -0.33868
Fis(34)~: -0.34319
G(35)~:   -0.34642
Gis(36)~: -0.34834
A(37)~:   -0.34890
B(38)~:   -0.34801
H(39)~:   -0.34556
C(40)~:   -0.34141
Cis(41)~: -0.33541

A(25)3オクターブの 相関係数 -0.35731となった セント差と傾き(Grade)の グラフです。

a25 3octave

割り振りの範囲(F(33)~F(45))を含むと 相関係数が上昇する様に見えます。と言う事は
傾き(Grade)と調律曲線の大きさには 相関関係があると考えられます。

では近似値の調律曲線からではなく 測定したデータから lsm(最小自乗法)で傾きを計算して そのセント差と傾き(Grade)を 相関係数で見てみます。
3オクターブです。

A(1)~:  -0.070118
A(13)~: -0.24812
A(25)~: -0.40303
A(37)~: -0.18078
A(49)~: -0.063804

2オクターブです。

A(1)~:  -0.14290
A(13)~: -0.016198
A(25)~: -0.34022
A(37)~: -0.32356
A(49)~:  0.11472
A(61)~:  0.027625

1オクターブです。

A(13)~: (測定出来ず)
A(25)~:  0.24343
A(37)~: -0.23069
A(49)~:  0.075114
A(61)~: (測定出来ず)

データの有り無しの間隔に左右されますが 相関係数はほぼ同じ傾向にあります。
では相関係数の高い値の前後です。

3オクターブです。

G(23)~:   -0.28718
Gis(24)~: -0.40325
A(25)~:   -0.40303
B(26)~:   -0.36903

2オクターブです。

D(30)~:   -0.28066
Es(31)~:  -0.41590
E(32)~:   -0.46783
F(33)~:   -0.46463
Fis(34)~: -0.46463
G(35)~:   -0.46463
Gis(36)~: -0.45802
A(37)~:   -0.32356

1オクターブです。

Gis(24)~: 0.23879
A(25)~:   0.24343
B(26)~:   0.23167
...
Fis(34)~: -0.24028
G(35)~:   -0.25288
Gis(36)~: -0.25641
A(37)~:   -0.23069

1オクターブではデータの変化が大き過ぎて相関係数は小さく 2オクターブではデータの有り無しの影響がありますが 高い相関関係を示しています。
2オクターブのE(32)の 相関係数 -0.46783のグラフです。

e32 2octave

(v0.1.4)別の曲を使って見ます。
シューマンの「子供の情景」を (v0.1.7)11->12例です。

A(49)Inha. : Grade
------------------
0.5325 0.0750
0.6077 0.0767
0.6752 0.1107
0.6027 0.0973
0.5974 0.0952
0.6101 0.0957
0.6385 0.0962
0.6724 0.1087
0.6235 0.1050
0.6241 0.0930
0.6600 0.0993
0.6351 0.0927
-------------
      合計 12

そのグラフを追加しました。(v0.1.7)

kinder ig

単音で B(26)ぐらいから G(71)ぐらいまでありますが その両端の音は測定が難しくデータに取り上げられない場合があります。

datac0 hor. datac0 izu. datac0 ewa.

出来ても範囲が十分ではなく 最小自乗法(lsm)3次関数では 正常な調律曲線は再現出来ませんでした。

しかし相関関係を 2オクターブ(直線最小自乗法)で見ると

2oct hor. 2oct izu. 2oct ewa.
A(61)~: (測定出来ず)
A(49)~:  0.097928
A(37)~: -0.51543
A(25)~: -0.54771
A(13)~: (測定出来ず)

A(25)前後を見てみます。

Gis(36)~: -0.56531
G(35)~:   -0.56531
Fis(34)~: -0.53283
F(33)~:   -0.53283
E(32)~:   -0.53233
Es(31)~:  -0.64699
D(30)~:   -0.79884
Cis(29)~: -0.80188
C(28)~:   -0.76857
H(27)~:   -0.70101
B(26)~:   -0.58242
A(25)~:   -0.54771
Gis(24)~: -0.40787

Cis(29)の2オクターブで 相関係数 -0.80188と言う 音程差と傾き(Grade)の関係を見る事が出来ます。

29 2oct 12

(v0.1.6)Tuningのシミュレーションの場合です。
0.05から0.1まで 0.005づつ 傾き(Grade)を変えて 作った調律曲線をデータにして 相関係数を測定しました。

「TuneTriads(三和音)」2オクターブでの 音程差と傾き(Grade)の相関係数です。

A(61)~:  0.015514
A(49)~: -0.94494
A(37)~: -0.99833
A(25)~: -0.98946
A(13)~: -0.98769
A(1)~ : -0.98997

37(A)から2オクターブの相関係数 -0.99833のグラフです。

tune3 37 2oct

49(A)以下ではほとんど変化しません。 それをグラフにして見てみます。

tune3 all r

他のTuningシミュレーションで見てみます。
「NonZero」と「Octave」の場合です。

tuneNZ all r tuneOct all r

「Curve」の場合は低音で異なりますが他は殆んど同じです。

curve all r

因みに「前奏曲集 1」と「子供の情景」 2オクターブでの相関係数のグラフです。

jl all r kinder all r 12

49(A)以下で 2オクターブ以上の範囲のデータが ある程度集まれば 相関係数は 測定出来ると思われます。


(v0.1.7)例に ショパンの「4つのバラード」(CD16種類)で D(30)ぐらいから C(52)前後までを検出して 見てみます。

#. A(49)インハーモニシティ値 : 傾き(Grade)
------------------------------------------
 1. 0.6117 : 0.0910
 2. 0.6199 : 0.0954
 3. 0.5980 : 0.0907
 4. 0.5983 : 0.0932
 5. 0.6108 : 0.0925
 6. 0.5853 : 0.0915
 7. 0.5857 : 0.0891
 8. 0.5893 : 0.0935
 9. 0.6265 : 0.0902
10. 0.6202 : 0.0950
11. 0.6525 : 0.0964
12. 0.6413 : 0.0958
13. 0.6434 : 0.0953
14. 0.6211 : 0.0950
15. 0.6379 : 0.0959
16. 0.6388 : 0.0871
-------------------

そのグラフです。

ballades ig 16

2オクターヴでの相関係数のグラフです。

ballades R 16

A(37)キーでの音程差と傾き(Grade)の相関係数 -0.76942です。

ballades diff R 16

そのデータを集めていた途中での事です。

ballades R 15 ballades diff R 15

傾き(?)が 2つある様に見えます。そこでデータを 2つに分けて見ました。

ballades diff R A ballades diff R B

その相関係数は -0.90137と -0.95698です。

ballades R A ballades R B

(v0.1.8)「前奏曲集 1」のデータを厳密に見直して
新しく 1つ (1と2からの選集で「アナカプリの丘」が無いのですが これまでから 高音キーのデータは無くてもいいので) 加えました。 (26 -> 27)
インハーモニシティ値と傾き(Grade)のグラフです。

jl ig plot 0

極端に異なった左下のデータを 1つ削除して結局 (27 -> )26に戻りました。

# : A(49)インハーモニシティ値 : 傾き(Grade)
-------------------------------------------
01: 0.6444 : 0.0889
02: 0.6048 : 0.0876
03: 0.5934 : 0.0867
04: 0.6255 : 0.0892
05: 0.6537 : 0.0960
06: 0.5431 : 0.0823
07: 0.5838 : 0.0867
08: 0.5892 : 0.0857
09: 0.6090 : 0.0820
10: 0.6047 : 0.0879
11: 0.6043 : 0.0914
12: 0.5766 : 0.0826
13: 0.5059 : 0.0904
14: 0.5786 : 0.0815
15: 0.5995 : 0.0896
16: 0.6071 : 0.0894
17: 0.6444 : 0.0835
18: 0.5865 : 0.0892
19: 0.5978 : 0.0896
20: 0.6037 : 0.0865
21: 0.6302 : 0.0899
22: 0.6393 : 0.0900
23: 0.6488 : 0.0921
24: 0.6134 : 0.0851
25: 0.5997 : 0.0895
26: 0.6132 : 0.0953
-------------------

そのグラフです

jl ig plot 1

2オクターヴでの相関係数のグラフです。

jl 1

B(26)キーでの音程差と傾き(Grade)の相関係数は -0.62495です。

jl1 26

データの数が多くても これぐらいまでになりました。

実際の調律と傾き(Grade)の関係を見てみようと ずいぶん遠回りをしてしまいました。
まだまだ分からない事はありますが ある程度は描けた様に思いますが いかがでしょうか。


(v0.1.8)jcor.javaアプレットで これまでのデータと相関係数を見てみます。

jlデータ内の極端な測定値を 2〜3箇所削除しましたが 他は殆んど前と同じです。

jcor jl1

Source File ・ jcor.zip (SIZE = 52574)
MD5 (jcor.zip) = 9da3a7ac6ddc9eada93db585298ea7c1

使い方:

最初の「前奏曲集 1」です。

jcor corr. jl0

「子供の情景」です。

jcor corr. kinder

「TuneTriads(三和音)」でのTuningシミュレーションです。

jcor corr. tun3

「4つのバラード」です。

jcor corr. ballades

参考までに JPのキャリブレーション用に 楽譜作成プログラム(LilyPond)で作成したMIDIファイルを...

lilypond

...MIDI再生プログラム(Timidity++)で Wave信号に変換して見てみます。

wave midi

最小自乗法です。

lsm3-0 midi

低音が上がっていますので削除して再計算しました。

lsm3 midi

数値計算プログラム(Octave)で Wave信号を 合成して見てみます。
インハーモニシティ値です。

osc inha.

三和音式で Tuningを行います。

osc cent

キー毎に Wave信号を作って見てみます。

osc wave

最小自乗法です。

lsm3 osc

「da-mid」「da-osc」としてセレクタに加えました。


Dobashi.M
Last modified: 1月 03日 火 14:36:41 2023 JST