with sound sonido mido libreria python audio midi

sound - Biblioteca MIDI Cross Platform simple para Python



sonido python (7)

Quiero hacer una pequeña aplicación que cree sonidos MIDI. Nunca he tratado el sonido en la programación, así que me gustaría comenzar con algo básico y con buena documentación. Quiero quedarme con Python ya que estoy más cómodo con él y no quiero abrumarme, inicialmente.

Mi tiempo se divide en 50/50 entre Windows y Ubuntu, por lo que algo que "simplemente funciona" en ambas plataformas sería realmente útil.

¿Alguna sugerencia?


El soporte de Midi (entrada y salida) se ha agregado a pyGame 1.9, aunque se encuentra principalmente en la etapa de desarrollo y aún no está muy bien documentado, pero funciona.

La compatibilidad con Midi también se está desarrollando en el sucesor de pyGame, pgreloaded (o pygame2).

También tenga en cuenta que aunque pyGame tiene ''juego'' en el título, sus usos se extienden mucho más allá del diseño del juego.


Estaba buscando una biblioteca de Python puro para generar un archivo MIDI, la biblioteca de Python MIDI de mxm es exactamente eso.

Desde este fragmento de dzone , hay una versión de archivo único de la biblioteca anterior, smidi.py ( aquí se presenta para la posteridad)

El uso es bastante simple:

>>> import smidi >>> m = smidi.MidiOutFile(''out.mid'') >>> m.header() >>> m.start_of_track() >>> m.update_time(0) >>> m.note_on(note=0x40) # single note >>> m.update_time(192) >>> m.note_off(note=0x40) # stop it after 192 >>> m.update_time(0) >>> m.end_of_track() >>> m.eof()

Presumiblemente funciona en Windows (como el ejemplo original usa C:/out.mid como el nombre de archivo de salida), y lo he probado en OS X


Intenté ocho paquetes enumerados en el wiki http://wiki.python.org/moin/PythonInMusic . Encontré que el que music21 ( http://web.mit.edu/music21/ ) era

  • el más completo
  • el mejor tutorial
  • más fácil de instalar en Windows

pero en cuanto a su pedido de simplicidad, creo que no es el más simple. Pero no pude obtener ninguno de los otros programas para leer archivos midi de manera robusta (tengo una variedad de formatos de archivos midi raros y maravillosos)


La Biblioteca MIDIUtil (alojada here en Google Code) hace lo que desea: escribir archivos MIDI desde una biblioteca pura de Python. Una vez que algo bueno de esto (y la revelación completa: soy el autor) es que no tienes que hacer un seguimiento de los eventos MID de nivel inferior, como note-on y note-off: los maneja por ti.

Como un ejemplo para escribir una nota, harías algo como:

MyMIDI = MIDIFile(1) track = 0 channel = 0 pitch = 60 time = 0 duration = 1 volume = 100 MyMIDI.addNote(track,channel,pitch,time,duration,volume)

Espero que esto ayude



Si solo necesita generar Midi o procesar archivos midi, pruebe mingus , es un gran paquete y también permite abstracciones mucho más altas como acordes, progresiones de acordes, escalas, etc.


pyPortMidi es un contenedor de Python de PortMidi, que se describe como "una biblioteca C multiplataforma para el control MIDI en tiempo real". No lo he usado yo mismo, pero parece muy prometedor. Mención explícita de poder enviar datos MIDI en tiempo real.