Académique Documents
Professionnel Documents
Culture Documents
SONS PURS
Le principe de ce calcul est le suivant.
- Pour deux sons d'amplitude égale à l'unité, la dissonance est donnée par la
formule 118*x*x*exp(-8*x), où x est calculé à partir des fréquences, via la bande
critique. Cette dissonance "unitaire", ou "dureté propre", dp, n'est appréciable que
dans la bande critique. CECI EST IMPORTANT. LA DISSONANCE SERA DE
TOUTE MANIÈRE NÉGLIGEABLE, SI LES DEUX SONS PURS SONT
DISTANTS DE PLUS D'UNE BANDE CRITIQUE. ENSUITE, MÊME EN
COMPOSITION AVEC UN AUTRE COUPLE DISSONANT, ILS
N'INTERVIENDRONT PAS.
- Si les amplitudes ne sont pas égales à l'unité, je suppose que les sons produisent
une intensité psychologique des battements (IBpsy) selon une formule semblable à
celle qui relie l'intensité sonore psychologique (en sones) à l'intensité physique d'un
son (en phone); cette formule, on le sait, est approximativement y = 0,0625
(I/I0)^0,3. Or Helmholtz montre que l'énergie des battements est proportionnelle
au produit des amplitudes des deux sons purs battants (p. 308 de mon article).
L'intensité sonore dans le cas d'un seul son, le "I" de la formule (en watt par mêtre
carré), peut donc avec une certaine vraisemblance être remplacée par le produit des
amplitudes dans le cas du battement de deux sons battants. D'où la formule IBpsy =
0,0625 (A1*A2/I0)^0,3. I0 n'est défini qu'a une constante pres.
- La dissonance de deux sons d'amplitudes égales mais non unitaires est égale au
produit de l'intensité psychologique des battements par la dureté propre : IBpsy*dp.
> x:=abs(F2*n-F1*m)/(0.2022*sqrt(1408969+F1*m*F2*n)-
150):dp:=118*x^2*exp(-8*x);
REMARQUE.
Autour de la fréquence f, la bande critique est définie par la fonction
bc:=f->0.2022*sqrt(1408969+f^2)-150;
et la variable x, pour deux sons de fréquence fA et fB, est :
x:=(fA,fB)->abs(fB-fA)/bc((fA+fB)/2);
c'est-à-dire que dans x, c'est la bande critique de la moyenne arithmetique des fréquences qui intervient.
En revanche, dans le x choisi ci-dessus, au lieu du carré de la moyenne arithmétique, on a mis le produit des
fréquences; cela veut donc dire que c'est la bande critique de la moyenne géométrique qui intervient. La
différence est sans grande importance.
J'introduis maintenant l'intensité psychologique, proportionnelle à la puissance 0.3 de l'intensité physique des
battements. Le calcul de cette dernière par Helmholtz paraît bon, c'est-à-dire qu'il est justifié de prendre cette
intensité proportionnelle au produit des amplitudes. Ces amplitudes sont A/m et B/n, A et B étant celles de
partiels fondamentaux.
Remarque : dans la feuille VERSION2, je prends à tort l'intensité psycho comme la combinaison, dans la bande
critique, des intensités ordinaires physiques des deux sons, c'est-à-dire que je prends (A/m^2+B/n^2)^0.3 (dans
la version 2.2, je prends seulement min(A/m^2,B/n^2)^0.3 ). Mais ces solutions sont fausses, car l'energie des
battements se distingue de l'energie proprement dite des sons.
> IBpsy:=0.0625*(A/m*B/n/I0)^0.3;
> DIS:=IBpsy*dp;
CAS DE DEUX SONS DENTS DE SCIE DONT LES PARTIELS ONT MÊME
INTENSITÉ
Il faut sommer deux fois 10 termes. La sommation fonctionne et donne bien 100
termes. Je ne les affiche pas, cela prendrait plusieurs pages (utilisation de ":" au lieu
de ";").
Cette sommation suppose donc que les dissonances sont indépendantes et s'ajoutent
arithmétiquement. Cela n'est pas vrai si les sons qui les produisent sont dans une
même bande critique. L'addition est alors moins efficace. Un calcul plus précis
devra être fait ensuite.
> DIStotale:=sum(sum(DIS,m=1..10),n=1..10):
Et maintenant le graphique, puisque Maple a l'air de bien vouloir avaler tous ces
calculs.
Je fais le graphique de la dissonance totale pour la fréquence du second son variant
de l'unisson jusqu'à l'octave, donc pour k de 1 à 2.
> plot(DIStotale,k=1..2,color=black);
Par "curiosité", je calcule la courbe qui ne tient compte que des 6 premiers partiels,
c'est-à-dire ceux pour lesquels l'atténuation reste faible.
> DISunquatre:=sum(sum(DIS,m=1..6),n=1..6):
> plot(DISunquatre,k=1..2, color=black);
CALCUL NON SIMPLIFIÉ
c'est-à-dire tenant compte des chevauchements de bandes
critiques
> fmoy:=sqrt(F1*m*F2*n);bc:=0.2022*sqrt(1408969+fmoy^2)-150;
> bcinf:=fmoy-bc/2;bcsup:=fmoy+bc/2;
> Digits:=4:# Pour supprimer les décimales dans l'affichage du nombre à 4 chiffres
des limites de bandes critiques
Commençons par le calcul pour une valeur de k donnée, par exemple 1,48 (un peu
en dessous de la quinte).
> restart;
> k:=1.48;
> dp:=x->118*x^2*exp(-8*x);
> evalf(i-1);
Il n'y a que 12 couples (sur 100) donnant une dissonance non nulle (j'en trouvais 15
avec bc:=f->f/5).
> for j from 1 to i-1
> do
> evalf([j,M[j],N[j],FMOY[j],BC[j],DIS[j]])
> od;
Qui plus est, le tableau produit est exactement le même, avec les couples exactement dans le même ordre!
Dans le cas de cet exemple (k:=1.48), quelle dissonance le calcul doit-il donner?
C'est le problème essentiel.
C'est bien la valeur qu'on peut lire sur le diagramme obtenu ci-dessus.
Cette application se justifie par le fait que la fonction de dissonance propre prend,
de toutes manières, de très faibles valeurs en dehors de la bande critique.
> restart;
> bc:=f->0.2022*(1408969+f^2)^.5-150;# Ne pas mettre la fonction sqrt au lieu de
^.5. Maple refuse de calculer.
> dp:=x->118*x^2*exp(-8*x);
> IBpsy:=(m,n)->(1/m/n)^0.3;
Pour comparaison, je redonne d'abord la dissonance sans aucune atténuation, que
j'appelle "simplissime".
> DIS_simplissime:=(k,m,n)->IBpsy(m,n)*dp(x(440*m,440*k*n));# Aucune
atténuation pour les rangs supérieurs
>
Dissonance_simplissime:=[seq([h,add(add(DIS_simplissime(h/100,m,n),m=1..10),
n=1..10)],h=100..200)]:
>
Dissonance_simple:=[seq([h,add(add(DIS_simple(h/100,m,n),m=1..10),n=1..10)],h
=100..200)]:
> Dissonance:=[seq([h,add(add(DIS(h/100,m,n),m=1..10),n=1..10)],h=100..200)]:
> plot([Dissonance_simplissime,Dissonance_simple,Dissonance],100..200);
Conclusion
- rouge : fonction "simplissime", dans laquelle les dissonances des partiels de rang
élevé ne sont pas atténuées;
- verte : fonction "simple", dans laquelle la dissonance n'est pas annulée en dehors
des bandes critiques, mais où les partiels de rang élevé sont atténués;
- jaune : fonction dans laquelle la dissonance est annulée en dehors des bandes
critiques et où les partiels de rang élevé sont atténués.
Comme on pouvait s'y attendre, l'annulation en dehors des bandes critiques a peu
d'importance, car dans ces régions la fonction de dissonance propre est, de toutes
manières, très faible.
La courbe verte paraît ainsi la plus vraisemblable.
Il est intéressant de connaître la contribution des derniers partiels, ceux qui sont
susceptibles d'atténuation, c'est-à-dire de rang supérieur ou égal à 5. Je les donne
d'abord sans atténuation, ensuite avec, sur la même figure.
>
Dissonance_simplissime_finale:=[seq([h,add(add(DIS_simplissime(h/100,m,n),m=
5..10),n=5..10)],h=100..200)]:
>
Dissonance_simple_finale:=[seq([h,add(add(DIS_simple(h/100,m,n),m=5..10),n=5.
.10)],h=100..200)]:
> plot([Dissonance_simplissime_finale,Dissonance_simple_finale],100..200);
Même chose pour les partiels de rangs 5 et 6, de telle sorte à ne pas dépasser les
partiels en jeu dans les consonances "classiques".
>
Dissonance_simplissime_5_6:=[seq([h,add(add(DIS_simplissime(h/100,m,n),m=5..
6),n=5..6)],h=100..200)]:
>
Dissonance_simple_5_6:=[seq([h,add(add(DIS_simple(h/100,m,n),m=5..6),n=5..6)
],h=100..200)]:
> plot([Dissonance_simplissime_5_6,Dissonance_simple_5_6],100..200);
Conclusion intéressante : ce ne sont pas ces contributions qui produisent de la
dissonance à la quinte (valeur 150), ni à la tierce mineure (120). Mais elles en
apportent à la quarte (133) et à la tierce majeure (125), ce qui est tout à fait
cohérent.
Cela incite à examiner les dissonances produites par les tout derniers partiels, de
rangs 7 à 10.
>
Dissonance_simplissime_7_10:=[seq([h,add(add(DIS_simplissime(h/100,m,n),m=7
..10),n=7..10)],h=100..200)]:
>
Dissonance_simple_7_10:=[seq([h,add(add(DIS_simple(h/100,m,n),m=7..10),n=7..
10)],h=100..200)]:
> plot([Dissonance_simplissime_7_10,Dissonance_simple_7_10],100..200);
La contribution des partiels de 5 à 10 peut aussi se visualiser par la différence entre
la dissonance totale et la dissonance des partiels de 1 à 4 (laquelle est égale à la
"simple" ou la "simplissime", puisque etc.).
>
Contribution_5_10:=Dissonance-[seq([h,add(add(DIS_simplissime(h/100,m,n),m=
1..4),n=1..4)],h=100..200)]:
> plot(Contribution_5_10,100..200);# NE DONNE RIEN !
Essayons un calcul détaillé direct.
> Contribution_5_10:=[seq([h,add(add(DIS(h/100,m,n),m=1..10),n=1..10)-
add(add(DIS_simplissime(h/100,m,n),m=1..4),n=1..4)],h=100..200)]:
> plot(Contribution_5_10,100..200);
C'est bien cette fonction qui est la bonne, et non pas celle que je calculais plus haut.
Car la précédente ne prenait pas en compte les dissonances produites par les
interférences entre les partiels 5-10 et les partiels 1-4.