summaryrefslogtreecommitdiff
path: root/muse/muse/midiseq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse/muse/midiseq.cpp')
-rw-r--r--muse/muse/midiseq.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/muse/muse/midiseq.cpp b/muse/muse/midiseq.cpp
index 89b88804..f3dfe870 100644
--- a/muse/muse/midiseq.cpp
+++ b/muse/muse/midiseq.cpp
@@ -665,6 +665,9 @@ void MidiSeq::processTimerTick()
// printf("Midi Time Code Sync generation not impl.\n");
// }
+ // P3.3.25
+ int tickpos = audio->tickPos();
+ bool extsync = extSyncFlag.value();
//
// play all events upto curFrame
//
@@ -679,7 +682,11 @@ void MidiSeq::processTimerTick()
continue;
iMPEvent i = md->nextPlayEvent();
for (; i != el->end(); ++i) {
- if (i->time() > curFrame) {
+ // P3.3.25
+ // If syncing to external midi sync, we cannot use the tempo map.
+ // Therefore we cannot get sub-tick resolution. Just use ticks instead of frames.
+ //if (i->time() > curFrame) {
+ if (i->time() > (extsync ? tickpos : curFrame)) {
//printf(" curT %d frame %d\n", i->time(), curFrame);
break; // skip this event
}