Fmod et les fréquences dans le spectre. Comment savoir quelle fréquence correspo
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007
-
28 juin 2004 à 21:21
fxmaccobra
Messages postés3Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention28 février 2006
-
28 févr. 2006 à 20:46
Hello all
Vous connaissez peut etre la librairie sonnore Fmod, qui permet de lire des fichiers son mais aussi de pouvoir créer un spectre à partir des données que ses API peuvent renvoyer concernant l'intensité d'une certaine fréquence d'un son.
J'ai la fonction suivante récupérée sur le site pour récuperer les données pour créer le spectre :
Public Function GetSpectrum(ByRef sngSpectrum() As Single)
' Déclaration des variables.
Dim lngOfVals As Long
Dim lngSpectrum As Long
If UBound(sngSpectrum) > 511 Then
lngOfVals = 512
Else
lngOfVals = UBound(sngSpectrum) + 1
End If
J'ai donc un tableau de variables de 512 entrées, concernant l'intensité d'une certaine fréquence. Le probleme, c'est que je ne sais pas qu'elle fréquence correspond à quelle entrée (exemple sngSpectrum(33))
Auriez vous des infos à ce sujet ?
fxmaccobra
Messages postés3Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention28 février 2006 28 févr. 2006 à 19:11
Cela dépend de la fréquence d'échantillonnage que vous avez choisi. Si
vous travaillez à 44100Hz, FSOUND_DSP_GetSpectrum divise l'intervalle
0-44khz en 512 parties. Aussi la fréquence à laquelle correspond par
exemple sngSpectrum(33) est la fréquence:
(Fechantillonnage/512)*33 soit si vous travaillez à 44100Hz 44100/512*33 ~2842.4 Hz.
C'est du moins ce que j'ai compris en regardant le code source de fmodsample pour l'affichage du spectre.
fxmaccobra
Messages postés3Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention28 février 2006 28 févr. 2006 à 20:46
Je vais un erratum sur ma réponse: Ce n'est pas par rapport à la
fréquence d'échantillonnage mais à la fréquence de coupure. Donc pas
par rapport à 44100Hz mais à 22050Hz. Dans ces conditions
sngSpectrum(33) correspond à 22050/512 * 33 ~ 1431.2Hz