Pregunta

Quiero hacer construir una pequeña aplicación que crea sonidos MIDI. Nunca he tratado con el sonido en la programación así que me gustaría empezar con algo que es básico y tiene una buena documentación. Quiero seguir con Python ya que soy el más cómodo con él y no quiero abrumar a mí mismo, en un principio.

Mi tiempo se divide aproximadamente 50/50 entre Windows y Ubuntu así que algo que "simplemente funciona" en ambas plataformas sería de gran ayuda.

¿Alguna sugerencia?

¿Fue útil?

Solución

La Biblioteca MIDIUtil (alojado aquí en Google Code) hace lo que quiere: escribir MIDI archivos de una biblioteca de Python puro. Una vez que lo bueno de esto (y la divulgación completa: Soy el autor) es que usted no tiene que llevar un registro de eventos de nivel medio inferior, tal como note-on y note-off:. Que las maneja para usted

A modo de ejemplo para escribir una nota, que haría 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

Otros consejos

Yo estaba buscando una biblioteca de Python puro para generar un archivo MIDI, biblioteca de Python MIDI del MXM es exactamente eso.

este fragmento DZone , hay una versión de un solo archivo de la biblioteca por encima de , smidi.py ( gist'd aquí 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()

Es de suponer que funciona en Windows (como el ejemplo original utiliza C:\out.mid como nombre de archivo de salida), y yo he probado en OS X

pyPortMidi es una envoltura Python de PortMidi, que se describe como "una biblioteca C multiplataforma para control MIDI en tiempo real". No he utilizado yo mismo, pero se ve muy prometedor. La mención explícita de ser capaz de enviar datos MIDI en tiempo real.

Si sólo necesita para generar archivos MIDI o MIDI proceso, prueba a mingus , Es un gran paquete y también permite que las abstracciones mucho más altas, tales como los acordes, progresiones de acordes, escalas y así sucesivamente.

He intentado ocho paquetes listados en el wiki http://wiki.python.org/moin/PythonInMusic . He encontrado que el que music21 ( http://web.mit.edu/music21/ ) era

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

pero en cuanto a su solicitud de simplicidad, yo creo que no es la más simple. Pero no pude conseguir cualquiera de los otros programas para leer archivos midi de una manera robusta (Tengo una variedad de formatos de archivos midi extraños y maravillosos dando vueltas)

soporte MIDI (entrada y salida) se ha añadido a PyGame 1.9, aunque es principalmente en la etapa de desarrollo y aún no está muy bien documentada, pero funciona.

apoyo Midi también está siendo desarrollado en el sucesor PyGame, pgreloaded (o pygame2).

Tenga en cuenta también que a pesar de PyGame tiene 'juego' en el título, sus usos se extienden mucho más allá de simplemente el diseño del juego.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top