OVH Cloud OVH Cloud

Bibliothèque C++ pour le son

4 réponses
Avatar
noone
Bonjour,

je suis en train de développer un petite application en C++ sur les
harmoniques (développement en série de Fourier) sous licence GNU GPL

http://s.cls.free.fr/realisations/harmon/
( attention il reste quelques bugs ;-) )

J'utilise QT pour l'interface graphique.

Mais je voudrais aussi pouvoir jouer les sons que je génère via
l'amplitude/phase des différentes harmoniques... je n'ai pas un fichier
.wav mais une suite de valeurs temps/amplitude

Quelle bibliothèque me conseillez-vous ?

Comment l'utiliser ?

Est-on obliger de créer le fichier .wav à la main et ensuite de le lire
ou y a-t-il plus simple ? (ce que je préfèrerais)

Merci d'avance

4 réponses

Avatar
romuald perrot
Je sais que celà ne répond pas à ta question mais il existe une
librairie pour les sons en C (peut être c++, mais je ne suis pas sur).

Ce qui pourrait t'aider c'est que la librairie est open-source, tu
pourra surement trouver ton bonheur dedans. (il y a surement ce que tu
cherche dans la lecture des fichiers non compressés tel le wav.)

La librairie s'appelle FMOD.
Avatar
noone
La librairie s'appelle FMOD.



je ne connaissait pas

j'ai entendu parler de OpenAL (équivalent de OpenGL pour le son)
mais c'est pour des effets 3D

j'ai surtout entendu parler de SDL

mais je ne cherche pas spécifiquement à lire du .wav

je veux simplement sortir sur ma carte son à un instant t une amplitude
donnée...

Avatar
noone
j'ai oublié de corriger l'url

http://s.cls.free.fr/index.php?page=harmon
Avatar
Fabien LE LEZ
On Thu, 28 Apr 2005 18:22:34 +0200, ""
:

mais je ne cherche pas spécifiquement à lire du .wav
je veux simplement sortir sur ma carte son à un instant t une amplitude
donnée...


Un fichier WAV en mémoire, c'est juste un header puis les valeurs de
l'amplitude les unes derrière les autres.
A priori tu ne pourras pas avoir d'accès direct à l'amplitude sans
bufferisation, ce qui oblige à calculer certaines valeurs à l'avance
(je conseille d'avoir au moins un dixième de seconde d'avance). C'est
la rançon du multitâches...

Sous Windows, en natif, il y a deux manières de jouer un son sans
passer par un fichier : les fonctions waveOutXxx et DirectSound. Les
deux fonctionnent à peu près sur le même principe : on indique au
système la fréquence d'échantillonnage et le "type" de son
(8/16 bits ; mono/stéréo), puis on balance les valeurs les unes après
les autres, sous forme de "paquets" de données. Les paquets font la
taille que tu veux ; généralement, j'envoie des paquets de 5 à 50
centièmes de seconde.

Je ne connais pas SDL, mais je suppose que là encore le principe est
le même.

--
Le grand site de la philosophie animale : <http://perso.edulang.com/philo/>