How to write a MIDI file with Python?

I am writing a script to convert an image to MIDI notes based on the RGBA values โ€‹โ€‹of individual pixels. However, I cannot get the last step to work, that is, to actually output notes to a file. I tried using the MIDIUtil library, however the documentation is not the largest, and I cannot understand it. If someone could tell me how to organize notes (so that they do not all start from the very beginning), it would be very helpful.

Thanks in advance.

+5
source share
2 answers

Looking at the sample, something like

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)
+10
source

, , , , python 2 3 , Google GitHub pip, :

pip install MIDIUtil

.

( , .)

, .

+8

All Articles