Pages : 1
#1 Le 29/11/2012, à 13:22
- Crone123
Frequence audio en C++
Bonjour,
J'aimerais savoir si il est possible d'envoyer/recuperer des frequences audio sur alsa ou pulseaudio en C++, dans le but de faire des tests et pas forcement lire un format de fichier existant.
Si oui, comment faire/que dois-je utiliser?
Merci
Hors ligne
#2 Le 30/11/2012, à 01:01
- nicolas66
Re : Frequence audio en C++
As-tu regardé du côté des bibliothèques OpenAL ou FMod ?
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#3 Le 30/11/2012, à 18:41
- Crone123
Re : Frequence audio en C++
J'avais pensé a FModEx sans jamais comprendre comment l'installer ou l'utiliser...
Mais j'ai oublié effectivement de penser à OpenAL (on pense souvent a OpenGL en oubliant OpenAL...)
Je vais regarder ce que propose OpenAL, a mon avis, si c'est pas trop dur a utiliser ça sera la meilleure solution
Merci
Hors ligne
#4 Le 30/11/2012, à 19:45
- Crone123
Re : Frequence audio en C++
Euh, par contre je suis un peu perdu dans toute la doc de OpenAL...
Quelqu'un pourrait m'expliquer un peu comment ça marche?
Je sais qu'il faut ouvrir un contexte OpenAL, et qu'il y a 1seul listener par context.
Sur internet la seule aide que je trouve est pour lire des .wav, mais ça ne m’intéresse pas, moi je cherche juste a lire une fréquence générée directement, et absolument pas a charger un son existant dans tel ou tel format de fichier....
Il n'existe pas une fonction sur un listener proche de:
play(Frequence, Volume); ?
→ Une fonction vraiment basique qui envoie une fréquence a la carte son.
Par fréquence j'entends le sens physique, c'est a dire pour un humain, un son audible est entre 20 et 20000Hz (si je me souviens bien).
Peut être que ça existe, ou peut être que Frequence et Volume sont des objets a créer avant, mais je ne comprends pas comment faire...la doc est bien trop grosse et trop vaste je ne m'y retrouve pas...
Pouvez-vous m'aider?
Merci
Hors ligne
#5 Le 01/12/2012, à 00:08
- nicolas66
Re : Frequence audio en C++
Une autre possibilité est d'utiliser SoX. Par exemple, pour générer une sinusoïde de fréquence 347 Hz pendant 5 secondes, il suffit de taper dans un terminal
play -n synth 5 sin 347
PS : ça te servira à quoi ce genre de chose ?
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#6 Le 02/12/2012, à 00:41
- Crone123
Re : Frequence audio en C++
Le problème c'est que SoX n'est pas du C++, c'est du bash.
PS : ça te servira à quoi ce genre de chose ?
Bah, en fait j'aimerais essayer moi même de tester l'addition de plusieurs fréquences pour créer des sons (test de synthèse en gros), voir aussi quelles sont les fréquences existantes des notes, ce qui change si je les modifie, etc... (expérimenter tout ça )
Et pourquoi pas essayer de me créer un format audio "maison" (pas dans le but de rivaliser avec les existants, mais juste pour ma propre culture, savoir comment ça marche, et comment le faire)
Voilà, en bref, rien de très concert pour l'instant en tout cas, mais plutôt pour de l'expérimentation personnelle, et quitte à s'instruire autant que ça soit en C++ ça augmente largement les possibilités (d'où l'idée de manipuler directement des fréquences), en bash c'est plus limité...
Comme ça m’intéresse j'aimerais essayer, le problème est toujours le même: Les bibliothèques de bas niveau sont toujours trop dure a utiliser si on a pas eu un bon tutoriel simple à comprendre dessus..
Donc, a moins qu'il existe une bibliothèque libre/gratuite (mais de préférence libre) me permettant de faire ça simplement, j'aimerais bien savoir comment faire ça avec OpenAL.
Merci
Hors ligne
#7 Le 02/12/2012, à 02:40
- nicolas66
Re : Frequence audio en C++
Le problème c'est que SoX n'est pas du C++, c'est du bash.
Oui, ça j'avais bien remarqué . D'un autre côté, pour les besoins que tu décris, SoX me paraît indiqué car il est par exemple possible de jouer plusieurs fréquences en même temps (par exemple 300 et 310 Hz). Dans un premier temps, ça peut être un moyen rapide d'expérimenter. Rien ne t'empêche ensuite d'approfondir le sujet en créant ta propre lib ou en utilisant OpenAL.
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#8 Le 02/12/2012, à 03:50
- Crone123
Re : Frequence audio en C++
D'accord, je veux bien m'amuser avec SoX mais ce qui m’intéresse c'est de le faire en C++ (OK je suis compliqué..) et coder mon propre programme auquel je peux rajouter les fonctions dont j'ai besoin
Quelqu'un pourrait donc m'expliquer comment faire ça avec OpenAL (ou une bibliothèque prévue pour)?
→ Peut être que la bibliothèque utilisée par SoX (je ne sais pas ce qu'il utilise, OpenAL ou autre?) est ré-utilisable?
Merci
EDIT: Je veux juste savoir comment faire sortir une fréquence sonore avec OpenAL ou équivalent (parce que je me perds dans sa doc.., je ne sais pas quoi utiliser), pour le reste je me débrouille en C++.
Dernière modification par Crone123 (Le 02/12/2012, à 03:52)
Hors ligne
#9 Le 09/12/2012, à 21:20
- nicolas66
Re : Frequence audio en C++
En fouillant un peu sur le net, j'ai trouvé ça. Le dernier programme permet de jouer deux sinusoïdes à deux fréquences différentes avec la bibliothèque SDL. Ca devrait être suffisant pour broder autour
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#10 Le 09/12/2012, à 22:28
- Crone123
Re : Frequence audio en C++
Ah, la SDL peut donc le faire
ça tombe bien d'ici quelques semaines j'apprendrais à utiliser cette bibliothèque, je pourrais donc bien comprendre ce programme et faire mes tests
Merci
Hors ligne
#11 Le 09/12/2012, à 23:05
- nicolas66
Re : Frequence audio en C++
Ah j'oubliais : j'ai testé chez moi et ça fonctionne impec. Tiens-nous au courant pour la suite. Bon courage
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#12 Le 09/12/2012, à 23:15
- Crone123
Re : Frequence audio en C++
OK, normalement si tout vas bien pour les vacances de noël (pendant) j'aurais appris a utiliser cette bibliothèque, je pourrais tester et vous tiendrais au courant
Encore merci
Hors ligne
Pages : 1