Avrei messo anche il CHAS ma non mi è chiaro come si generano le frequenze materialmente; se qualcuno me lo spiega brevemente ce lo aggiungo.
Codice: Seleziona tutto
n=12*7+3; #numero di tasti su un pianoforte
#matrice e termine noto con i vincoli sulle ottave
A=-eye(n)+diag(ones(n-12,1),12);
A=A(1:n-12,:);
a=log(2)*ones(n-12,1);
#matrice e termine noto con i vincoli sulle quinte
B=-eye(n)+diag(ones(n-7,1),7);
B=B(1:n-7,:);
b=log(3/2)*ones(n-7,1);
#tutto insieme
M=[A;B]; m=[a;b];
#una "buona" accordatura è una che rende M*log(acc)-m piccolo
fph=exp(pinv(M)*m);
equabile=(2^(1/12)).^(1:n)';
#normalizziamo in modo che il LA di mezzo sia a 440
fph=fph/fph(49)*440;
equabile=equabile/equabile(49)*440;
#stampa le frequenze una a fianco all'altra
disp(sprintf('frequenze: fph | equabile '));
format long;
[fph equabile]
Codice: Seleziona tutto
2.74417004e+01 2.75000000e+01
2.90736624e+01 2.91352351e+01
3.08085753e+01 3.08677063e+01
3.26391465e+01 3.27031957e+01
3.45837835e+01 3.46478289e+01
3.66343679e+01 3.67080960e+01
3.88143631e+01 3.88908730e+01
4.11401716e+01 4.12034446e+01
4.35861753e+01 4.36535289e+01
4.61855202e+01 4.62493028e+01
4.89290334e+01 4.89994295e+01
5.18432825e+01 5.19130872e+01
5.49132558e+01 5.50000000e+01
5.81797674e+01 5.82704702e+01
6.16536292e+01 6.17354127e+01
6.53178988e+01 6.54063913e+01
6.92107842e+01 6.92956577e+01
7.33198327e+01 7.34161920e+01
7.76844692e+01 7.77817459e+01
8.23111417e+01 8.24068892e+01
8.72055911e+01 8.73070579e+01
9.24064163e+01 9.24986057e+01
9.78970591e+01 9.79988590e+01
1.03729137e+02 1.03826174e+02
1.09888041e+02 1.10000000e+02
1.16426377e+02 1.16540940e+02
1.23365790e+02 1.23470825e+02
1.30698807e+02 1.30812783e+02
1.38489222e+02 1.38591315e+02
1.46716884e+02 1.46832384e+02
1.55453488e+02 1.55563492e+02
1.64701088e+02 1.64813778e+02
1.74495791e+02 1.74614116e+02
1.84896228e+02 1.84997211e+02
1.95884308e+02 1.95997718e+02
2.07556491e+02 2.07652349e+02
2.19890563e+02 2.20000000e+02
2.32977723e+02 2.33081881e+02
2.46850295e+02 2.46941651e+02
2.61523252e+02 2.61625565e+02
2.77109670e+02 2.77182631e+02
2.93577436e+02 2.93664768e+02
3.11065984e+02 3.11126984e+02
3.29566578e+02 3.29627557e+02
3.49167492e+02 3.49228231e+02
3.69967567e+02 3.69994423e+02
3.91953589e+02 3.91995436e+02
4.15313472e+02 4.15304698e+02
4.40000000e+02 4.40000000e+02
4.66199635e+02 4.66163762e+02
4.93946299e+02 4.93883301e+02
5.23299123e+02 5.23251131e+02
5.54481014e+02 5.54365262e+02
5.87432912e+02 5.87329536e+02
6.22445555e+02 6.22253967e+02
6.59462128e+02 6.59255114e+02
6.98692136e+02 6.98456463e+02
7.40297415e+02 7.39988845e+02
7.84278576e+02 7.83990872e+02
8.31026176e+02 8.30609395e+02
8.80423413e+02 8.80000000e+02
9.32899676e+02 9.32327523e+02
9.88407193e+02 9.87766603e+02
1.04709374e+03 1.04650226e+03
1.10947285e+03 1.10873052e+03
1.17539597e+03 1.17465907e+03
1.24549502e+03 1.24450793e+03
1.31955562e+03 1.31851023e+03
1.39814471e+03 1.39691293e+03
1.48137449e+03 1.47997769e+03
1.56932378e+03 1.56798174e+03
1.66285400e+03 1.66121879e+03
1.76168266e+03 1.76000000e+03
1.86687116e+03 1.86465505e+03
1.97792187e+03 1.97553321e+03
2.09504731e+03 2.09300452e+03
2.21982987e+03 2.21746105e+03
2.35169225e+03 2.34931814e+03
2.49193991e+03 2.48901587e+03
2.64009909e+03 2.63702046e+03
2.79829736e+03 2.79382585e+03
2.96481517e+03 2.95995538e+03
3.14060865e+03 3.13596349e+03
3.32772579e+03 3.32243758e+03
3.52545123e+03 3.52000000e+03
3.73582550e+03 3.72931009e+03
3.95799560e+03 3.95106641e+03