Ardour transport to Musescore bugue

The Ardour transport to Musescore buggy when there are tempo changes in Ardour, creeping or constant tempo. Musescore does not follow and stutters.

So from in the Musescore direction to Ardour to works well.

Ardour 6.3, Musescore 3.5.0

1 Like

Yes, I ran into this some time ago - and never found a great solution.

The core of it is that Ardour has its own sense of “time”, which allows it to ramp tempos and provide a flexible (and powerful) tempo map. But… because it does this ramping, it means that MuseScore can’t keep pace with it very well because it can’t know ahead of time what that tempo map is (ms doesn’t do ramping, and even if it did exporting/importing midi for tempomapping is painful). So instead ms jitters about trying to make sense of it all.

I can’t remember where things were at when I was looking at it, but essentially the key will (ultimately) be to have Ardour as the Jack time master, and for Musescore to be patched to “keep up no matter what”. I think currently (or back then) musescore would calculate where in spacetime a particular notation-time event would be, and then it would try and execute that, but since it’s operating without knowing the tempo ramping details, it needs to let go of that, and instead take the current instantaneous tempo and BBT time from jack, and continually “target” that.

I think at the time there was a lot of tempo work being done in both Ardour and Musescore, so it was difficult to choose a path at that time, but maybe things are more settled now - as always though, it comes down to who’s itchy enough to spend the time on implementing it. Whether this is practical or not I am not sure. I expect most music apps are built from an assumption of absolute time, so changing that to “successively approximate your concept of time” might be a stretch, pun intended. Hmm… a PID controller for tempo…

(for those wondering, a use-case is where one might be scoring to picture using ardour, and using musecore to mock up orchestration or notate parts for later performance (or importing into ardour) etc).