mirror of
https://github.com/vsariola/sointu.git
synced 2026-02-13 11:43:19 -05:00
fix(tracker): Player routes MIDImsgs so always handled in same block
This commit is contained in:
parent
cc8d737f8a
commit
77b27257fe
@ -97,19 +97,8 @@ func init() {
|
||||
for i := 0; i < events.NumEvents(); i++ {
|
||||
switch ev := events.Event(i).(type) {
|
||||
case *vst2.MIDIEvent:
|
||||
switch {
|
||||
case ev.Data[0] >= 0x80 && ev.Data[0] <= 0x9F:
|
||||
channel := ev.Data[0] & 0x0F
|
||||
note := ev.Data[1]
|
||||
on := ev.Data[0] >= 0x90
|
||||
trackerEvent := tracker.NoteEvent{Timestamp: int64(ev.DeltaFrames) + totalFrames, On: on, Channel: int(channel), Note: note, Source: &context}
|
||||
tracker.TrySend(broker.ToMIDIRouter, any(&trackerEvent))
|
||||
case ev.Data[0] >= 0xB0 && ev.Data[0] <= 0xBF:
|
||||
channel := ev.Data[0] & 0x0F
|
||||
controller := ev.Data[1]
|
||||
value := ev.Data[2]
|
||||
trackerEvent := tracker.ControlChange{Channel: int(channel), Control: int(controller), Value: int(value)}
|
||||
tracker.TrySend(broker.ToMIDIRouter, any(&trackerEvent))
|
||||
if (ev.Data[0] >= 0x80 && ev.Data[0] <= 0x9F) || (ev.Data[0] >= 0xB0 && ev.Data[0] <= 0xBF) {
|
||||
player.EmitMIDIMsg(&tracker.MIDIMessage{Timestamp: int64(ev.DeltaFrames) + totalFrames, Data: ev.Data, Source: &context})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user