1
次のプログラムは、MIDOを使用して 'g1.mid'を読み込み、 'g1_new.mid'に保存します。私の質問は、ファイルを読む際に、 'msg.time'は浮動小数点値ですが、ファイルを保存する際には、 'Message in time'はティックの整数です。この場合、 'msg.time'を 'tick in message'に変換するにはどうすればよいですか?Python MIDI MIDOで時間/ティックを変換する
from mido import MidiFile
from mido import Message, MidiTrack
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)
for msg in MidiFile('g1.mid'):
if (not msg.is_meta):
if (msg.type == 'note_on'):
# how to convert msg.time to tick to fill in '?'
track.append(Message('note_on', note=msg.note, velocity=msg.velocity, time=?))
elif (msg.type == 'note_off'):
# how to convert msg.time to tick to fill in '?'
track.append(Message('note_off', note=msg.note, velocity=msg.velocity, time=?))
elif (msg.type == 'program_change'):
track.append(Message('program_change', program=msg.program, channel=msg.channel))
mid.save('g1_new.mid')
注:このコードは音楽制作に関するプロジェクトにあります。
親愛なるCL:プログラムは "for msg in merge_tracks(mid.tracks)"でティックを得ることができます。ご意見ありがとうございます。 – Frank