Forum général.général jouer des sons

Posté par  .
Étiquettes : aucune
0
22
nov.
2009
Bonjour,

Après de nombreux essais infructueux, je sollicite votre aide pour jouer des sons dans un programme.

Voici ce que je voudrais :
- ce programme est une sorte de jeu
- le programme joue toutes les secondes des sons (fichiers .wav) d'une longueur de l'ordre de la seconde (c'est une voix qui prononce un mot).
- de temps en temps (si l'utilisateur clique mal) on joue un son indiquant l'erreur ("ding!")

voici les problèmes que je rencontre :
- il y a des craquements par-ci par-là, parfois des grésillements.
- il y a parfois de l'echo

Impossible d'avoir un son nickel, alors que tout le monde y arrive ! Je dois rater quelque chose.

Voici ce que j'ai essayé et l'état de mes connaissances :
- j'ouvre le device audio, en précisant : nombre de canaux, fréquence d'échantillonnage et taille des échantillons
- j'ouvre mes fichiers .wav just'avant de jouer le son, et je les balance vers le device audio. (dans un thread séparé je crois en général)

J'ai essayé en C, C++, python. Avec les bibliothèques SDL, SDL_mixer, tkSnack, ossdev, alsaaudio, sox.


Exemple de code avec la lib SDL et SDL_mixer :

au début :

Mix_OpenAudio(48000, AUDIO_S16SYS, 1, 2048);


et ensuite, périodiquement (pour simplifier j'ai ôté la gestion des erreurs) :

Mix_Chunk *sound = 0;
sound = Mix_LoadWAV(filename);

Mix_PlayChannel(-1, sound, 0); // -1 for any channel


J'ai aussi essayé d'ouvrir/fermer le device audio à chaque fois, mais ça ne change rien.

Merci.
  • # un scratch

    Posté par  . Évalué à 1.

    bon, j'avais un scratch dans un de mes sons. j'ai corrigé ça.
    j'ai un peu mieux lu la doc SDL_mixer. je vais faire d'autres tests...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.