Suggestion: async instrument continuity through transition timeline

I just realized it was impossible to keep the continuity of an async instrument through a transition timeline. So in this exemple, the async instrument keeps playing continuously as the parameter changes:

But as soon as a transition timeline is added (exemple below), it’s impossible to keep this continuity. The async instrument restarts. Would it be complicated to add an option for that, when it’s detected that the “source” and “destination” correspond to an unique continuous async instrument?

Would it be complicated? Yes. Do we want to support it anyway? Also yes.

Under-the-hood, transition timelines remove the timeline playback position from the timeline, and puts it back in a different place. This is true even if the transition timeline has source and destination regions that stretch the full length of the transition timeline. Because of this, a transition timeline makes the timeline playback position leave the instruments at the start of the transition timeline and enter the instruments at the end of the transition timeline, even if those instruments are technically one and the same - and so those instruments are untriggered and retriggered, just as if the timeline playback position had left and reentered them in a more conventional way.

We do want to fix this, but doing so will require some major redesign and rewriting of the relevant code, so it’ll most likely be quite some time before we’re ready to release it.

In the mean time, it’s often possible to work around the re-triggering limitation of transition timelines by not using them, and instead using a transition marker to jump to a distant section of the timeline, then using another transition marker to jump to the intended destination.

1 Like

Thanks @joseph. I’ve read your 2015 (or so) post about the timeline design and the complication to implement crossfades within the transition timeline. I thought this precise case would be easier, since to work correctly it should only do… nothing! Like bypassing the transition timeline. After all, an async instrument is already disconnected from the timeline and has its own internal timeline. But it may be more complicated than that for sure.

But to be honest, I never had a use for that :slight_smile: I just realized this limitation recently. I tend to rather use AHDSR on nested events rather than transition timeline, and limit transition timelines for smoothing synced loops (this is really handy for not having to bake seamless loops in the DAW).

Hi @Alcibiade,

Thought I’d chime in and add on to @joseph’s answer. Looking back over Joseph’s old answer from 2015, the implementation has since changed significantly - starting with 1.10.10, but with considerable continual changes throughout early 2.0, transition behaviour was overhauled in a couple of different ways

  • Cross-fading transition support was added
  • There was a push to make behaviour more consistent and time accurate
  • Additional transition features were added (magnet markers/relative transitions primarily)

To support cross-fading, transition timelines split the cursor so that it is in 3 places at once

  • In the source timeline - or where it came from
  • On the transition timeline itself
  • In the destination timeline, which is really the main timeline

As Joseph mentioned, this means you can have an instrument trigger twice - once for the source timeline and separately for the destination timeline.

To the request of continuity, there are some additional aspects that complicate things, but the basics are:

  • We need to detect when the end of the source region matches the start of the destination region
  • We need to carry over the source trigger to the main timeline trigger
  • We need to carry over the instrument instance triggered by the source trigger to the main timeline

To work around this, you might want to place your instrument on an action or parameter sheet.

1 Like