Durée d'un sample avec FMOD ????

Durée d'un sample avec FMOD ???? - C++ - Programmation

Marsh Posté le 10-06-2005 à 10:05:38    

Salut
 
je voudrais savoir comment il est possible de calculer la longueur, la durée, d'un sample de FMOD. Je recupere la valeur grace à la fonction FSOUND_Sample_GetLength. Je suppose que je recupere une valeur en bytes.Mais je n'arrive pas à la calculer en secondes.
 
Merci pour le coup de main
 
marceleeuuh

Reply

Marsh Posté le 10-06-2005 à 10:05:38   

Reply

Marsh Posté le 10-06-2005 à 15:48:06    

dans un programme ou j'ai besoin de capturer le micro j'initialise la duree max du sample par la frequence * le temps en seconde
donc exemple 22100 * 60 donne une sample de 1 minute maxi

Reply

Marsh Posté le 10-06-2005 à 15:51:22    

lenbytes = samp_length * RECORDRATE * channels * bits / 8;
j'ai ca aussi pour la structure du header du wav
RECORDRATE = calcul ci-dessus
samp_length = duree reel du sample en secondes
channels = 1 pour mono 2 pour stereo
bits = 8 ou 16

Reply

Marsh Posté le 13-06-2005 à 12:24:39    

ouaich mais précisement c'est quoi le sample?? c'est quoi l'unité? des bits? des secondes? des octets? parce que dans ton calcul justement moi ce que je veux c'est la longueur en secondes et je sais pas sur quelle base (unité) partir pour faire mon calcul!

Reply

Marsh Posté le 13-06-2005 à 13:50:12    

des échantillons.

Reply

Marsh Posté le 13-06-2005 à 13:55:12    

IN SAMPLES:
http://www.fmod.org/docs/HTML/FSOU [...] ength.html
 
un length() de 44000 (échantillons) durera 2 secondes à 22Khz, 1 seconde à 44Khz, 0.22secondes à 200 Khz (oups :D) (limite max en DirectSound)


Message édité par bjone le 13-06-2005 à 13:57:46
Reply

Marsh Posté le 13-06-2005 à 14:18:42    

ok nickel. javai un peu du mal a calculer ca. merci beaucoup pour le coup de main

Reply

Marsh Posté le 13-06-2005 à 15:12:50    

en fait pour info, pourquoi je parles de 200Khz max, c'est parceque si par exemple tu veux vaire un jeu de F1 avec le moteur qui va de 1000rpm à 10000rpm, 200Khz max étant la fréquence max exposée par le DirectSound (3D):
les 10000rpm seront à 200Khz
les 1000rpms seront donc à 20Khz
 
=> il faut donc capturer ton bruit de moteur à 1000rpm au max 20Khz (donc 10Khz de bande-passante analogique) si tu veux pouvoir simuler du 10000rpm.
 
et donc pour simuler le régime moteur tu joues avec la fréquence de conversion virtuelle.
 
en effet le DSP hardware ou mixer software, fera alors une reconstruction du flux audio au mixage dans les 41~48Khz suivant la carte son, mais les pointeurs de prise d'échantillon sont déplaçés par rapport à la fréquence virtuelle que tu donnes.
 
pour le mixage audio on a donc la même problème d'échantillonnage qu'avec les textures pour une carte 3D.
pour une carte 3D on peut faire de l'échantillonnage au plus près, interpolation linéaire: bi ou tri-linéaire, anisotropique...
pour de l'audio on peut aussi faire au plus près, via interpolation linéaire, via des splines, ou encore d'autres truc propres au domaine audio, etc, etc...


Message édité par bjone le 13-06-2005 à 15:17:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed