2012-06-16 24 views
5

Estoy escribiendo una secuencia de comandos para convertir una imagen en notas MIDI en función de los valores RGBA de los píxeles individuales. Sin embargo, parece que no puedo dar el último paso, que es sacar las notas a un archivo. He intentado usar la biblioteca MIDIUtil, sin embargo, su documentación no es la mejor y parece que no puedo resolverlo. Si alguien pudiera decirme cómo secuenciar las notas (para que no comiencen todas al principio) sería muy apreciado.¿Cómo puedo escribir un archivo MIDI con Python?

Gracias de antemano.

+0

¿Recordó escribir demoras? –

Respuesta

10

En cuanto a la muestra, algo así como

from midiutil.MidiFile import MIDIFile 

# create your MIDI object 
mf = MIDIFile(1)  # only 1 track 
track = 0 # the only track 

time = 0 # start at the beginning 
mf.addTrackName(track, time, "Sample Track") 
mf.addTempo(track, time, 120) 

# add some notes 
channel = 0 
volume = 100 

pitch = 60   # C4 (middle C) 
time = 0    # start on beat 0 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

pitch = 64   # E4 
time = 2    # start on beat 2 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

pitch = 67   # G4 
time = 4    # start on beat 4 
duration = 1   # 1 beat long 
mf.addNote(track, channel, pitch, time, duration, volume) 

# write it to disk 
with open("output.mid", 'wb') as outf: 
    mf.writeFile(outf) 
+0

Si está utilizando Python 3, debe reemplazar esa primera línea con 'from midiutil.MidiFile3 import MIDIFile'. – Cai

+0

¿Cómo agrego el mensaje de final de seguimiento a esto? – kurtosis

8

Sé que esto es una entrada antigua, pero yo soy el autor de la biblioteca, y yo quería mencionar que pitón 2 y 3 de apoyo ya han sido unificado y con la desaparición de Google Code el código está alojado en GitHub y se puede instalar a través de la pipa, es decir:

pip install MIDIUtil 

la documentación está disponible en Read The Docs.

(Tratado de comentar pero carecían de los puntos de experiencia.)

El mensaje de fin de pista se crea automáticamente cuando el archivo se escribe en el disco.

+2

Hola Mark. Tengo un archivo de sellos de tiempo consecutivos, y para cada marca de tiempo en el archivo, quiero tocar una nota, digamos C64 Maj. No hay ritmo, como una improvisación, los sellos son aleatorios ... ¿cómo puedo conseguirlos "tal cual" en un archivo midi? – ajsp

Cuestiones relacionadas