}
void
-MidiStateTracker::resolve_notes (MidiBuffer &dst, nframes64_t time)
+MidiStateTracker::resolve_notes (MidiBuffer &dst, framepos_t time)
{
if (!_on) {
return;
}
void
-MidiStateTracker::resolve_notes (Evoral::EventSink<nframes_t> &dst, nframes64_t time)
+MidiStateTracker::resolve_notes (Evoral::EventSink<framepos_t> &dst, framepos_t time)
{
uint8_t buf[3];
return;
}
- /* NOTE: the src must be locked */
+ /* NOTE: the src must be locked */
for (int channel = 0; channel < 16; ++channel) {
for (int note = 0; note < 128; ++note) {
while (_active_notes[note + 128 * channel]) {
- Evoral::MIDIEvent<Evoral::MusicalTime> ev ((MIDI_CMD_NOTE_OFF|channel), time, 3, 0, true);
- ev.set_type (MIDI_CMD_NOTE_OFF);
- ev.set_channel (channel);
- ev.set_note (note);
- ev.set_velocity (0);
- src.append_event_unlocked_beats (ev);
+ Evoral::MIDIEvent<Evoral::MusicalTime> ev ((MIDI_CMD_NOTE_OFF|channel), time, 3, 0, true);
+ ev.set_type (MIDI_CMD_NOTE_OFF);
+ ev.set_channel (channel);
+ ev.set_note (note);
+ ev.set_velocity (0);
+ src.append_event_unlocked_beats (ev);
_active_notes[note + 128 * channel]--;
- cerr << "Resolved " << ev << endl;
- /* don't stack events up at the same time
- */
- time += 1.0/128.0;
+ /* don't stack events up at the same time */
+ time += 1.0/128.0;
}
}
}