Un oscilloscope pour le son

Soyez le premier à donner votre avis sur cette source.

Vue 14 310 fois - Téléchargée 2 263 fois

Description

Bon, c'est juste un oscilloscope à tester avec un micro par exemple. En plus, il permet de mapper un périphérique audio d'entrée (par exemple le micro) sur un périphérique de sortie. Il y a 2 composants quasiment finis pour faire du son facilement avec, ce qui fait que ce code est dans la catégorie débutants, car le programme n'est pas très difficile à comprendre en dehors de la partie des composants. Cette dernière m'a demandé un peu de travail, je lance un thread par périphérique qui se charge de la mise en mémoire tampon, de la synchronisation, etc... Donc pas mal d'appels à l'unité SyncObj ;)

Tous commentaires seront les bienvenus, j'ai aussi ajoutté des commentaires moi-même dans le code.

Conclusion :


Si le son est "haché" et de mauvaise qualité, essayer d'augmenter la longueur du buffer en millisecondes (par exemple 1000), mais il y aura du décalage entre l'enregistrement et le rendu.
Eviter des fréquences d'échantillonage trop élevées, sinon le programme plante violemment, d'autant plus si vous avez Win98 par exemple.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_paradise
Messages postés
11
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
13 février 2012

23 sept. 2011 à 16:42
Joli boulot ! Même si je n'ai pas trop pigé le truc des index FCurrentClientBufferIndex et FCurrentServerBufferIndex...
malac512
Messages postés
1
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
22 janvier 2009

22 janv. 2009 à 17:40
Bonjour,
je souhaite réaliser une expérience sur l'effet Doppler,
et je pensais réceptionner avec un micro le son émis par un émetteur en mouvement. Je pense que ce programme peut m'être utile pour analyser la fréquence du signal reçu mais je ne sais pas comment faire fonctionner le programme. que faire des fichiers? merci d'avance
cs_Forman
Messages postés
600
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
6 avril 2010
1
9 avril 2006 à 18:24
Oui, cela est possible, mais il faut au moins avoir une fonction de détection de seuil pour "rephaser" le signal. En effet, supposes le cas suivant: le son que tu veux analyser a une fréquence de 50 hertz, donc une période de 20 ms. L'oscilloscope, lui ,travaille sur des buffers de 199 ms par exemple. Ca signifie que tu verras s'afficher en gros 20 oscillations du signal (dont une à laquelle il manque un morcequ), mais qu'elles vont se décaler sur l'affichage de 5 fois par secondes.

Concrètement, l'affichage va clignoter énormément, rendant très difficile l'exploitation des résultats. Il faudrait donc modifier le source pour que le signal affiché commence à s'afficher depuis la fin de la dernière oscillation détectée. Les oscilloscopes analogiques qui enregistrent des signaus électriques le font automatiquement par exemple.

Tu peux toujours essayer avec mon programme, mais à cause de ce que je viens d'expliquer je doute que tu arrives à qqchose. Si tu n'arrives pas à le compiler, envoies-moi un message privé avec ton adresse mail et je tt'envoie une version précompilée du programme.
fuz
Messages postés
3
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
7 janvier 2007

9 avril 2006 à 13:43
Je souhaiterai tout simplement pouvoir visualiser les courbes (formes d'ondes) produitent par ces synthetiseurs. Et je pensais que cela était possible grace à un oscilloscope.
cs_Forman
Messages postés
600
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
6 avril 2010
1
9 avril 2006 à 00:59
Je ne pense pas qu'il puisse convenir à cet usage... C'est un oscilloscope très sommaire, sans même de fonction de détection de phase, il faudrait au moins le modifier pour cela. Le but à l'origine était de montrer comment accéder aux buffers son de la carte son. Le traitement du signal extrait est encore une autre étape.

Qu'entends-tu pas "analyser les courbes"?
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.