je cherche à jouer un son avec Python.
Attention ! Je ne veux pas jouer un fichier .wav
Je veux à partir d'une série de données (temps-amplitude) pouvoir jouer
ce son.
Est-ce possible avec Python ?
il n'y a pas un exemple pour la fonction make_sound ?
Merci
Alex Marandon
On 2005-07-17, wrote:
Éventuellement, j'ai réalisé un module qui wrappe (un peu) le MCI de Windows.
oui mais j'aurai voulu qu ça marche sous Windows et sous Linux
Les API d'accès aux chipsets audio sont différents pour Windows, Linux, Mac, etc. Il faut donc une couche d'abstraction qui propose une API unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un binding Python existe pour PortAudio, <http://www.freenet.org.nz/python/pyPortAudio/>.
On 2005-07-17, noone@nowhere.com <noone@nowhere.com> wrote:
Éventuellement, j'ai réalisé un module qui wrappe (un peu) le MCI de
Windows.
oui mais j'aurai voulu qu ça marche sous Windows et sous Linux
Les API d'accès aux chipsets audio sont différents pour Windows, Linux,
Mac, etc. Il faut donc une couche d'abstraction qui propose une API
unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou
RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un
binding Python existe pour PortAudio,
<http://www.freenet.org.nz/python/pyPortAudio/>.
Éventuellement, j'ai réalisé un module qui wrappe (un peu) le MCI de Windows.
oui mais j'aurai voulu qu ça marche sous Windows et sous Linux
Les API d'accès aux chipsets audio sont différents pour Windows, Linux, Mac, etc. Il faut donc une couche d'abstraction qui propose une API unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un binding Python existe pour PortAudio, <http://www.freenet.org.nz/python/pyPortAudio/>.
Alex Marandon
On 2005-07-16, wrote:
http://pymedia.sourceforge.net
oui mais c'est uniquement pour jouer un fichier dans un format donné... pas pour jouer une suite de données temps-amplitude
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques. C'est le driver de la carte son qui gère la fréquence à laquelle il consomme les échantillons. Bien sur, si celui-ci n'est pas à la fréquence à laquelle le son est censé être joué, le son va sortir plus grave ou plus aigu. Il faut donc configurer le DSP pour la fréquence voulue ou bien convertir les données vers la fréquence du DSP.
On 2005-07-16, noone@nowhere.com <noone@nowhere.com> wrote:
http://pymedia.sourceforge.net
oui mais c'est uniquement pour jouer un fichier dans un format donné...
pas pour jouer une suite de données temps-amplitude
Je ne vois pas trop ce que tu appelles "suite de données
temps-amplitude". Il n'y a pas de notion de temps dans un flux audio
brut, c'est uniquement une suite de données numériques. C'est le driver
de la carte son qui gère la fréquence à laquelle il consomme les
échantillons. Bien sur, si celui-ci n'est pas à la fréquence à laquelle
le son est censé être joué, le son va sortir plus grave ou plus aigu. Il
faut donc configurer le DSP pour la fréquence voulue ou bien convertir
les données vers la fréquence du DSP.
oui mais c'est uniquement pour jouer un fichier dans un format donné... pas pour jouer une suite de données temps-amplitude
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques. C'est le driver de la carte son qui gère la fréquence à laquelle il consomme les échantillons. Bien sur, si celui-ci n'est pas à la fréquence à laquelle le son est censé être joué, le son va sortir plus grave ou plus aigu. Il faut donc configurer le DSP pour la fréquence voulue ou bien convertir les données vers la fréquence du DSP.
Alex Marandon
On 2005-07-20, Alex Marandon wrote:
Les API d'accès aux chipsets audio sont différents pour Windows, Linux, Mac, etc. Il faut donc une couche d'abstraction qui propose une API unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un binding Python existe pour PortAudio, <http://www.freenet.org.nz/python/pyPortAudio/>.
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes données, le refermer... mais ça implique d'étudier un minimum les API C (ou peut-être C++ sous Windows) des OS et de faire une API Python par dessus. C'est ce travail que les libs sus-citées devraient pouvoir t'épargner.
On 2005-07-20, Alex Marandon <al@ENLEVER_CECIalpage.org> wrote:
Les API d'accès aux chipsets audio sont différents pour Windows, Linux,
Mac, etc. Il faut donc une couche d'abstraction qui propose une API
unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou
RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un
binding Python existe pour PortAudio,
<http://www.freenet.org.nz/python/pyPortAudio/>.
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu
as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes
données, le refermer... mais ça implique d'étudier un minimum les API C
(ou peut-être C++ sous Windows) des OS et de faire une API Python par
dessus. C'est ce travail que les libs sus-citées devraient pouvoir
t'épargner.
Les API d'accès aux chipsets audio sont différents pour Windows, Linux, Mac, etc. Il faut donc une couche d'abstraction qui propose une API unifiée, comme par exemple PortAudio <http://www.portaudio.com/> ou RtAudio <http://www.music.mcgill.ca/~gary/rtaudio/>. Il semble qu'un binding Python existe pour PortAudio, <http://www.freenet.org.nz/python/pyPortAudio/>.
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes données, le refermer... mais ça implique d'étudier un minimum les API C (ou peut-être C++ sous Windows) des OS et de faire une API Python par dessus. C'est ce travail que les libs sus-citées devraient pouvoir t'épargner.
Sébastien Kirche
Le 21 July 2005 à 01:07, Alex Marandon vraute :
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la possibilité de générer du son en décrivant ses caractéristiques et pas en échantillonnant.
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du CPC6128, quand on décrivait les effets sonores par une "enveloppe de volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution python.
-- Sébastien Kirche
Le 21 July 2005 à 01:07, Alex Marandon vraute :
Je ne vois pas trop ce que tu appelles "suite de données
temps-amplitude". Il n'y a pas de notion de temps dans un flux audio
brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la
possibilité de générer du son en décrivant ses caractéristiques et pas
en échantillonnant.
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du
CPC6128, quand on décrivait les effets sonores par une "enveloppe de
volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe
d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution
python.
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la possibilité de générer du son en décrivant ses caractéristiques et pas en échantillonnant.
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du CPC6128, quand on décrivait les effets sonores par une "enveloppe de volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution python.
-- Sébastien Kirche
Paul Gaborit
À (at) Thu, 21 Jul 2005 14:18:19 +0200, Sébastien Kirche écrivait (wrote):
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du CPC6128, quand on décrivait les effets sonores par une "enveloppe de volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution python.
Si c'est vraiment cela, il existe CSound dont certaines versions 5.x sont programmables via Python :
<http://www.csounds.com/>
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 21 Jul 2005 14:18:19 +0200,
Sébastien Kirche <sebastien.kirche.no@spam.free.fr.invalid> écrivait (wrote):
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du
CPC6128, quand on décrivait les effets sonores par une "enveloppe de
volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe
d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution
python.
Si c'est vraiment cela, il existe CSound dont certaines versions 5.x
sont programmables via Python :
<http://www.csounds.com/>
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 21 Jul 2005 14:18:19 +0200, Sébastien Kirche écrivait (wrote):
Un peu comme sur certains trackers (fasttracker 2) ou à l'époque du CPC6128, quand on décrivait les effets sonores par une "enveloppe de volume" (attaque, fréquence de la note, durée) ainsi qu'une "enveloppe d'effet" éventuelle (vibrato, ...).
Par contre si je pense avoir compris, je ne connais pas de solution python.
Si c'est vraiment cela, il existe CSound dont certaines versions 5.x sont programmables via Python :
<http://www.csounds.com/>
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
noone
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes données, le refermer... mais ça implique d'étudier un minimum les API C (ou peut-être C++ sous Windows) des OS et de faire une API Python par dessus. C'est ce travail que les libs sus-citées devraient pouvoir t'épargner.
Merci mais je ne connaissais pas ces lib
J'avais par contre entendu parler de SDL donc je vais plutôt me pencher sur PyGame
http://www.pygame.org/docs/tut/intro/intro.html This article is an introduction to the Pygame library for Python programmers. The original version appeared in the Py Zine, volume 1 issue 3. This version contains minor revisions, to create an all around better article. Pygame is a Python extension library that wraps the SDL library and it's helpers.
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu
as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes
données, le refermer... mais ça implique d'étudier un minimum les API C
(ou peut-être C++ sous Windows) des OS et de faire une API Python par
dessus. C'est ce travail que les libs sus-citées devraient pouvoir
t'épargner.
Merci mais je ne connaissais pas ces lib
J'avais par contre entendu parler de SDL
donc je vais plutôt me pencher sur PyGame
http://www.pygame.org/docs/tut/intro/intro.html
This article is an introduction to the Pygame library for Python
programmers. The original version appeared in the Py Zine, volume 1
issue 3. This version contains minor revisions, to create an all around
better article. Pygame is a Python extension library that wraps the SDL
library and it's helpers.
Bien sûr, tu peux aussi te coder ta petite API qui fait juste ce dont tu as besoin, en l'occurence ouvrir le DSP, le configurer, écrire tes données, le refermer... mais ça implique d'étudier un minimum les API C (ou peut-être C++ sous Windows) des OS et de faire une API Python par dessus. C'est ce travail que les libs sus-citées devraient pouvoir t'épargner.
Merci mais je ne connaissais pas ces lib
J'avais par contre entendu parler de SDL donc je vais plutôt me pencher sur PyGame
http://www.pygame.org/docs/tut/intro/intro.html This article is an introduction to the Pygame library for Python programmers. The original version appeared in the Py Zine, volume 1 issue 3. This version contains minor revisions, to create an all around better article. Pygame is a Python extension library that wraps the SDL library and it's helpers.
Alex Marandon
On 2005-07-21, Sébastien Kirche wrote:
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la possibilité de générer du son en décrivant ses caractéristiques et pas en échantillonnant.
A l'arrivée on se retrouve de toute façon avec une série d'échantillons audio qu'on "balance" à la carte son. Que ceux-ci soient issus de l'échantillonage d'une source sonore externe ou bien générés par le programme lui-même ne change rien de ce point de vue là.
fu2 positionné au cas où.
On 2005-07-21, Sébastien Kirche <sebastien.kirche.no@spam.free.fr.invalid>
wrote:
Je ne vois pas trop ce que tu appelles "suite de données
temps-amplitude". Il n'y a pas de notion de temps dans un flux audio
brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la
possibilité de générer du son en décrivant ses caractéristiques et pas
en échantillonnant.
A l'arrivée on se retrouve de toute façon avec une série d'échantillons
audio qu'on "balance" à la carte son. Que ceux-ci soient issus de
l'échantillonage d'une source sonore externe ou bien générés par le
programme lui-même ne change rien de ce point de vue là.
Je ne vois pas trop ce que tu appelles "suite de données temps-amplitude". Il n'y a pas de notion de temps dans un flux audio brut, c'est uniquement une suite de données numériques.
Si j'ai bien suivi, l'OP ne parle pas de flux audio, mais bien de la possibilité de générer du son en décrivant ses caractéristiques et pas en échantillonnant.
A l'arrivée on se retrouve de toute façon avec une série d'échantillons audio qu'on "balance" à la carte son. Que ceux-ci soient issus de l'échantillonage d'une source sonore externe ou bien générés par le programme lui-même ne change rien de ce point de vue là.
fu2 positionné au cas où.
Alex Marandon
On 2005-07-21, wrote:
J'avais par contre entendu parler de SDL donc je vais plutôt me pencher sur PyGame
Ok, mais c'est pas un peu surdimendionné par rapport au besoin exprimé ? PyGame permet beaucoup plus que le besoin exprimé, attention tout de même à voir si la dépendance est justifiée dans ton cas...
On 2005-07-21, noone@nowhere.com <noone@nowhere.com> wrote:
J'avais par contre entendu parler de SDL
donc je vais plutôt me pencher sur PyGame
Ok, mais c'est pas un peu surdimendionné par rapport au besoin exprimé ?
PyGame permet beaucoup plus que le besoin exprimé, attention tout de
même à voir si la dépendance est justifiée dans ton cas...
J'avais par contre entendu parler de SDL donc je vais plutôt me pencher sur PyGame
Ok, mais c'est pas un peu surdimendionné par rapport au besoin exprimé ? PyGame permet beaucoup plus que le besoin exprimé, attention tout de même à voir si la dépendance est justifiée dans ton cas...