個々のピクセルのRGBA値に基づいて画像をMIDIノートに変換するスクリプトを書いています。しかし、実際にメモをファイルに出力するという最後のステップを機能させることができないようです。
MIDIUtilライブラリを使用してみましたが、そのドキュメントは最高ではなく、理解できないようです。
誰かがノートをシーケンスする方法を教えてくれたら(すべてが最初から始まらないように)、それは大いにありがたいです。
サンプルを見ると、
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)
これが古い投稿であることは承知していますが、私はライブラリの作成者であり、Python 2 と 3 のサポートが統合され、Google Code の廃止によりコードがGitHubでホストされるようになったことに言及したいと思います。 pip経由でインストールされます。つまり:
pip install MIDIUtil
ドキュメントはRead The Docsで入手できます。
(コメントしようとしましたが、経験値が足りませんでした。)
トラック終了メッセージは、ファイルがディスクに書き込まれるときに自動的に作成されます。