reproduce - reproducir audio en python
Python Music Library? (5)
Estoy buscando escribir una pequeña caja de ritmos en Python por diversión. Busqué en Google y encontré las páginas de Python sobre music y audio básico , así como una pregunta de StackOverflow sobre la generación de archivos de audio , pero lo que estoy buscando es una biblioteca decente para la creación de música . ¿Alguien ha intentado hacer algo así antes? Si es así, ¿cuál fue su solución? ¿Qué, cualquiera de los que he encontrado, o algo que no he encontrado, sería una biblioteca decente para la manipulación de audio?
Como mínimo, me gustaría poder hacer algo similar al alcance Audacity''s dentro de Python, pero si alguien sabe de una biblioteca que puede hacer más ... Soy todo oídos.
Además de lo que se ha mencionado anteriormente, escribí un editor de audio Python simple. http://code.google.com/p/yaalp/source/browse/#svn/trunk Consulte main.py.
También tiene manipulación de audio y algunos efectos.
Código de GPL, por lo que este podría ser un punto de partida para usted.
Consulte también http://code.google.com/p/pyo/
Eche un vistazo de cerca a cSounds . Hay enlaces de Python que le permiten hacer una síntesis digital bastante flexible. También hay algunos paquetes bastante completos disponibles.
Vea http://www.csounds.com/node/188 para un paquete.
Consulte http://www.csounds.com/journal/issue6/pythonOpcodes.html para obtener información sobre la creación de scripts de Python en cSounds.
Tenía que hacer esto hace años. Usé pymedia No estoy seguro de si aún hay algún problema aquí, es algún código de prueba que escribí cuando estaba jugando con él. Sin embargo, tiene alrededor de 3 años.
Editar: el código de muestra reproduce un archivo MP3
import pymedia
import time
demuxer = pymedia.muxer.Demuxer(''mp3'') #this thing decodes the multipart file i call it a demucker
f = open(r"path to /song.mp3", ''rb'')
spot = f.read()
frames = demuxer.parse(spot)
print ''read it has %i frames'' % len(frames)
decoder = pymedia.audio.acodec.Decoder(demuxer.streams[0]) #this thing does the actual decoding
frame = decoder.decode(spot)
print dir(frame)
#sys.exit(1)
sound = pymedia.audio.sound
print frame.bitrate, frame.sample_rate
song = sound.Output( frame.sample_rate, frame.channels, 16 ) #this thing handles playing the song
while len(spot) > 0:
try:
if frame: song.play(frame.data)
spot = f.read(512)
frame = decoder.decode(spot)
except:
pass
while song.isPlaying(): time.sleep(.05)
print ''well done''