X-Git-Url: https://git.ao2.it/vidi-player.git/blobdiff_plain/2780f9db87ca6f82d325aabe88fa0e8ba14f3817..f778b0ade9ac49e0deab3f694c7e4a0905388f1b:/vidi-timeline.py diff --git a/vidi-timeline.py b/vidi-timeline.py index 1068545..17165fc 100755 --- a/vidi-timeline.py +++ b/vidi-timeline.py @@ -26,33 +26,6 @@ import vidi ADD_REST_BACKGROUND = True -def is_note(msg): - return msg.type == 'note_on' or msg.type == 'note_off' - - -def is_note_on(msg): - return msg.type == 'note_on' and msg.velocity > 0 - - -def is_note_off(msg): - return ((msg.type == 'note_on' and msg.velocity == 0) or - (msg.type == 'note_off')) - - -def check_overlapping_notes(midi_file): - previous_note_on = False - for msg in midi_file: - if is_note_on(msg) and msg.channel == 0: - if previous_note_on: - return True - - previous_note_on = True - elif is_note_off(msg) and msg.channel == 0: - previous_note_on = False - - return False - - def timeline_from_midi(midi_file, video_font_path): timeline = vidi.Timeline() @@ -60,9 +33,9 @@ def timeline_from_midi(midi_file, video_font_path): start_time = 0 for msg in midi_file: elapsed_time += msg.time - if is_note_on(msg) and msg.channel == 0: + if vidi.is_note_on(msg) and msg.channel == 0: start_time = elapsed_time - elif is_note_off(msg) and msg.channel == 0: + elif vidi.is_note_off(msg) and msg.channel == 0: note = vidi.MidiNote(msg.note) duration = elapsed_time - start_time print("Note name: %3s start_time: %f duration: %f" % @@ -104,7 +77,7 @@ def main(): midi_file = mido.MidiFile(sys.argv[1]) - overlapping_notes = check_overlapping_notes(midi_file) + overlapping_notes = vidi.check_overlapping_notes(midi_file) if overlapping_notes: sys.stderr.write("Sorry, supporting only midi file with no overlapping notes on channel 0\n") return 1