Fmod et les fréquences dans le spectre. Comment savoir quelle fréquence correspo

Signaler
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
-
Messages postés
3
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
28 février 2006
-
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

lngSpectrum = FSOUND_DSP_GetSpectrum
Call CopyMemory(sngSpectrum(0), ByVal lngSpectrum, lngOfVals * 4)

End Function

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 ?

@Z3RtY25 ==

4 réponses

Messages postés
1
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
29 juin 2005

Je cherche exactement la même chose que toi, hélas !

Haut les coeurs !
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Vu qu'en un an personne à trouvé la réponse, on est mal barré lol !!!

@Z3RtY25 ==
Messages postés
3
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
28 février 2006

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.
Messages postés
3
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
28 février 2006

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