mirror of
https://github.com/janishutz/midi-micro-bit_sound-converter.git
synced 2025-11-25 13:54:26 +00:00
Add pause support to midi conversion
This commit is contained in:
@@ -26,18 +26,16 @@ class MidiManagement:
|
||||
tracknumber += 1
|
||||
output_list = []
|
||||
|
||||
tracked_notes = []
|
||||
bpm = 0
|
||||
timing = 20000
|
||||
|
||||
# Track messages
|
||||
for msg in mid.tracks[tracknumber]:
|
||||
if msg.type == "note_on":
|
||||
try:
|
||||
tracked_notes.append(self.get_note_as_micro_bit_string(msg))
|
||||
|
||||
except:
|
||||
pass
|
||||
# We only need to handle pauses here
|
||||
t = math.floor(msg.time / timing)
|
||||
if t > 0:
|
||||
output_list.append('R:' + str(t))
|
||||
elif msg.type == "note_off":
|
||||
# End tracked note at time offset for midi msg (that is relative to start)
|
||||
note = ''
|
||||
@@ -46,19 +44,8 @@ class MidiManagement:
|
||||
except:
|
||||
pass
|
||||
|
||||
# Find note in tracked notes, ignore if not in there
|
||||
index = -1
|
||||
for n in range(len(tracked_notes)):
|
||||
if tracked_notes[n] == note:
|
||||
index = n
|
||||
break;
|
||||
|
||||
# Get duration
|
||||
if index >= 0:
|
||||
tracked_notes.remove(note)
|
||||
t = math.floor(msg.time / timing)
|
||||
|
||||
output_list.append(note + ':' + str(t))
|
||||
t = math.floor(msg.time / timing)
|
||||
output_list.append(note + ':' + str(t))
|
||||
else:
|
||||
try:
|
||||
midi_msg = str(msg)
|
||||
|
||||
Reference in New Issue
Block a user