Seek and transport
This page explains all the possible ways to control the transport in score.
Transport can be controlled manually, programmatically or through an external transport system:
- Use Play from here, a time-ruler double-click or the Play tool to seek; drag to scrub.
- Change an interval’s speed, or use a process such as Tempo to control its parent’s timing.
- Use JACK transport for global transport synchronization. MIDI synchronization processes are a separate mechanism; receiving MIDI timing data does not automatically make the global score transport a slave.
See MIDI Sync In and MIDI Sync Out for receiving and generating MIDI timing messages. Timecode Synchronizer converts numeric position/speed inputs into smoothed playback-control signals; it requires explicit downstream connections.
Semantics of transport
Before explaining how to use the actual feature, it is important to explain the semantics of transport in score, as due to the interactive nature of scores, behaviour of transport can be somewhat surprising.
Consider the following score:

Thanks to the various interactive features of score such as interactive triggers and interval speed control the three following executions are possible:



This of course begs the question of: what should happen when asking score to transport at any given point when the score has not started playing ?
The policy taken by score is to follow the visual duration set for intervals. That is, that visual duration even for a fully interactive interval is not entirely devoid of semantic meaning: it can be taken as to mean:
The duration that I expect this part of the score to last.
In particular, this means that any interactive point before the point to which the transport is performed will be triggered. All intervals that are visually at that point will be positioned accordingly.
That is, here are successive transports done in the above score.




Value compilation
Consider a score where a sound is being played through an external sound player, controlled through OSC. This sound player’s API is:
player:/play <bool>
player:/volume <float>
The score is:

Now, if we want to play our score from the middle of the automation, if nothing else was done other than positioning the playhead and starting playback, the player:/play true OSC message would never be sent and the remote software would not start playing, thus making the feature somewhat useless.
Thankfully, score takes this into account: by default, when running a transport action if the score is not playing, every state leading to the transported point is computed from the beginning of the score. If multiple states send different values, then the last one is taken into account: that is, if making a transport after the end of the example score shown above, the player will receive the messages:
player:/play false
player:/volume 0
The software settings contain two options to control this behaviour, one for the first time a transport is done, and one for subsequent transports when execution is already running:

Offset behaviour
A more complex case is related to conditions.

In this case, a choice must be made when processing the conditions. However, sometime we may need to explore the different outcomes of a score when doing transport: for instance, if a condition requires a performer to be at a specific place on the stage, we may want to be able to perform a transport without having to ask the performer to go to the designed place for the transport to take place as expected.
Thus, the condition inspector provides the “offset behaviour” setting which allows to toggle whether the condition will be true, false, or evaluated with the live value in the device tree, when it is evaluated during a transport operation:

Using transport
Play from here
Right-click on a scenario and choose “Play from here” to start or seek to the clicked position:

You can also use the “Play” tool:

Double-clicking the time ruler also plays from that position. Keep the second click held and drag to scrub: dragging backwards can run the interval backwards, rather than merely moving a stopped cursor. On release the previous speed is restored and playback continues from near the release point.
Dragging on the scenario background with the Play tool also scrubs. Clicking an interval with that tool plays it from the clicked date; Alt+click plays the interval from its beginning. A subsequent ordinary start of an interval does not retain an earlier play-from-here offset.
Reverse time is not an undo operation: it does not reverse external hardware actions or guarantee that every stateful plug-in reconstructs its history. VST, VST3 and LV2 processing can continue during reverse timeline execution, but each process still determines what negative time means for its content.
Inside a child interval
The clicked date is relative to the interval shown in the view, including when using the time ruler or Play tool.
- If playback is stopped, Play from here starts that child interval on its own at the clicked date.
- If that interval is already playing on its own, the action seeks within it.
- During playback of a larger score, if the child’s containing interval is running, only the child is moved. A running child seeks to the clicked date; a stopped child starts there immediately, without waiting for its usual trigger or quantization. Other intervals keep playing.
- If the containing interval is not running, score seeks the active playback as a whole. It adds the child’s and its ancestors’ displayed start dates to the clicked date, up to the interval being played. The transport and value-compilation rules above then apply.
For example, a parent begins at 40 seconds in the main score and contains a child beginning at its local 20-second mark. Clicking the child’s local 3-second position moves only that child if the parent is running. If the main score is playing but the parent is not running, it seeks the main score to 63 seconds. Global transport commands, such as JACK transport, still address the active playback timeline rather than the child currently displayed.
Playing a single state
Either the play tool or a right-click menu allow to launch the content of a single state at any point.
Controlling speed and transport programmatically
See the documentation of the Tempo process.
Controlling global transport through an external API
JACK transport can control the global transport when using the JACK audio backend. Configure whether score acts as a client or master in the software settings:

Setting a start marker
It is possible to set a start marker by right-clicking into the musical metrics area, at the top of the score.
When a start marker is set, play / pause will always start from this point: this is mainly useful to play a specific part of a score quickly in succession.

Starting playback while recording waits
When address recording is armed and waiting for its first message, pressing Play starts the recording context with playback. It no longer needs a later message to establish the recording’s start time. The Play while recording preference controls whether the first received message also launches playback automatically. See Recording for the full workflow.
For related editing gestures and focus-dependent shortcuts, see Editing workflow.