projects
/
vidi-player.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vidi-player.py: add an option to add a background layer with the "rest" sample
[vidi-player.git]
/
vidi-player.py
diff --git
a/vidi-player.py
b/vidi-player.py
index
303d55d
..
4ac51a6
100755
(executable)
--- a/
vidi-player.py
+++ b/
vidi-player.py
@@
-22,6
+22,9
@@
import sys
import mido
import vidi
import mido
import vidi
+# TODO: turn that into a command line option
+ADD_REST_BACKGROUND = True
+
def is_note(msg):
return msg.type == 'note_on' or msg.type == 'note_off'
def is_note(msg):
return msg.type == 'note_on' or msg.type == 'note_off'
@@
-62,13
+65,17
@@
def timeline_from_midi(midi_file, video_font_path):
elif is_note_off(msg) and msg.channel == 0:
note = vidi.MidiNote(msg.note)
duration = elapsed_time - start_time
elif is_note_off(msg) and msg.channel == 0:
note = vidi.MidiNote(msg.note)
duration = elapsed_time - start_time
- print("Note name: %s start_time: %f duration: %f" %
+ print("Note name: %
3
s start_time: %f duration: %f" %
(note.name, start_time, duration))
(note.name, start_time, duration))
- video_sample_path = "%s/sample_%s.
mkv
" % (video_font_path, note.name)
+ video_sample_path = "%s/sample_%s.
webm
" % (video_font_path, note.name)
timeline.add_clip(video_sample_path, start_time, duration)
timeline.add_clip(video_sample_path, start_time, duration)
+ if ADD_REST_BACKGROUND:
+ rest_sample_path = "%s/sample_rest.png" % video_font_path
+ timeline.add_layer_clip(rest_sample_path, 0, elapsed_time)
+
return timeline
return timeline
@@
-86,13
+93,6
@@
def main():
usage()
return 1
usage()
return 1
- midi_file = mido.MidiFile(sys.argv[1])
-
- overlapping_notes = 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
-
if not os.path.isdir(sys.argv[2]):
sys.stderr.write("The second argument must be the path of the videofont directory\n")
usage()
if not os.path.isdir(sys.argv[2]):
sys.stderr.write("The second argument must be the path of the videofont directory\n")
usage()
@@
-102,6
+102,13
@@
def main():
sys.stderr.write("File '%s' exists, exiting!\n" % sys.argv[3])
return 1
sys.stderr.write("File '%s' exists, exiting!\n" % sys.argv[3])
return 1
+ midi_file = mido.MidiFile(sys.argv[1])
+
+ overlapping_notes = 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
+
video_font_path = os.path.realpath(sys.argv[2])
timeline = timeline_from_midi(midi_file, video_font_path)
video_font_path = os.path.realpath(sys.argv[2])
timeline = timeline_from_midi(midi_file, video_font_path)