FREQUENCES NOTES DE MUSIQUE

cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015 - 1 juil. 2007 à 09:55
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015 - 4 juil. 2007 à 09:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43197-frequences-notes-de-musique

cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
4 juil. 2007 à 09:50
Merci alpha5.

Si tu veux la formule actualisée, incluse dans la source (lien ci-dessus) à partir de do :
rn = 0 pour do, rn=1 pour do#... rn=11 pour si oct, c'est l'octave, comme au dessus :

Frequence = 16.3516 * 2 ^ (oct + (rn / 12))

la réciproque :

r = Log(Frequence / 16.3516) / Log(2)
oct = CInt(Int(r)) 'octave
n = CInt((CDbl(r) - oct) * 12)

on trouve l'octave oct et la note n=0 pour do à n=11 pour si

A toutes fins utiles :

notes(octave) / Hz (attention, valeur cInt() donc dans les fréquences basses, on n'est pas pile dessus et en-dessous de 200 Hz, un demi hertz, ça s'entend... Bref...)

A=la B=si... G=sol (notation anglaise)

guitare
--------------------------------
note(octave) Frequence Hz
E(3) 165
A(3) 220
D(4) 294
G(4) 392
B(4) 494
E(5) 659

basse (valeur entière cInt())
--------------------------------
note(octave) Frequence Hz
B(1) 062 pour les 5 cordes
----
E(2) 082
A(2) 110
D(3) 147
G(3) 196
----
B(3) 247 pour les basses 6 cordes


Gamme
--------------------------------
C(4) 262
C(4)# 277
D(4) 294
D(4)# 277
E(4) 330
F(4) 349
F(4)# 370
G(4) 392
G(4)# 415
A(4) 440
A(4)# 466
B(4) 494

Pour l'octave au dessous, diviser la fréquence par 2
dessus, multiplier par 2
cs_alpha5 Messages postés 74 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 24 mars 2013
2 juil. 2007 à 22:08
pour ym_trainz to algorithme est juste et plus précis que le mien
merci
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
1 juil. 2007 à 09:55
Bonjour Alpha5

Je trouve l'idée intéressante, d'autant plus que j'avais déjà réalisé un p'tit soft la-dessus mais je n'ai jamais été sûr de l'exactitude du calcul.

Le principe que j'avais trouvé est basé sur celui de la guitare donc logarithmique :

ff = CInt(27.5 * 2 ^ (oct + ((rn - 1) / 12)))

ff est la fréquence en Hertz, oct est l'octave (de 3 à 9 ... mais cela devient inaudible) et rn est la note codée de rn=1 pour la , rn=2 pour la#... à 12 pour sol#

Comme je n'ai pas vb.net, au cas où vous auriez vb6, j'ai posté cette source pour que vous puissiez faire le test.

http://www.vbfrance.com/code.aspx?ID=43300

Cordialement,
ym_trainz
Rejoignez-nous