Transport
The transport bar is the strip directly below the header bar. From left to right it carries the Play and Stop buttons, the playhead readout in bars, beats and ticks, the Tempo field, the Test tone switch and, at its right end, the engine status line. The controls drive the transport; the engine stays the authority and answers every command with an acknowledgement and a fresh state snapshot. Everything that needs the engine is disabled while the interface is not connected to it, so a command is never sent into a dead connection.
Play
Starts playback. Click Play, or press Space anywhere in the window outside a text field or a select field (see Play/Stop). The button is a latch: while the transport runs it wears the accent colour and is announced as pressed, while Stop loses its latch, so exactly one of the two buttons is highlighted at any time - also for screen readers.
The change is optimistic: the bar shows playback immediately and the engine's next transport
snapshot confirms it. If the engine rejects the command, the buttons fall back to the engine's last
state and a short message appears in the transport bar (the engine sends a stable error code, the
interface translates it). Play is disabled while the interface is not connected to the engine.
Playback starts at the current playhead position and runs until Stop is pressed; the engine counts in samples and the interface derives bars, beats and ticks from it. The iPad remote has the same button: see iPad remote.
Stop
Stops playback at the current position - the playhead is not returned to the start, use Enter for that. Click Stop, or press Space (see Play/Stop). Like Play, the button is a latch: it is highlighted while the transport is not running and is announced as pressed for assistive technology.
The change is optimistic and is reconciled by the next engine snapshot; a rejected command rolls the button back and shows a translated message in the transport bar. Stop is disabled while the interface is not connected to the engine. The iPad remote offers the same button.
Stop is also the session-wide stop: every clip of the session grid that is producing samples stops right away - its 5 ms fade-out begins with the next audio block, without waiting for the launch quantisation - and every launch that is only armed is cancelled (see Clip slot).
Tempo
The project tempo in beats per minute - the musical reference of the session, from which the interface derives the bars.beats.ticks display and the movement of the playhead. The field shows the engine's value with two decimal places; the unit BPM is printed behind it. The value range is 20 to 999 BPM and the default of a new session is 120.00 BPM.
How to use it:
- Click the field and type a number. The value is committed with Enter or by leaving the field; Escape discards the draft and restores the engine's value. While you type, nothing is sent - the engine keeps playing at the tempo it had.
- Arrow keys step the value immediately: Up/Down by 1 BPM, with Shift by 10 BPM.
- Double-click resets the tempo to its default of 120.00 BPM.
- The value is rounded to two decimals and clamped to the range before it is sent, so no out-of-range tempo can reach the engine. Commas and dots are both accepted as the decimal separator.
The engine applies the new tempo at the start of the next audio block and keeps the musical position: changing the tempo does not jump the playhead. The change is optimistic, so the field and the tempo display in the header bar follow at once; if the engine rejects the command, the field rolls back to the engine's value and the transport bar shows the translated error. A tempo changed from the remote or from an OSC controller updates the field as well - unless you are editing it at that moment. The field is disabled while the interface is not connected to the engine.
Position
The playhead readout: the position of the transport in bars.beats.ticks, for example 1.1.1 at
the project start. MusicStation counts in 4/4 time with 480 ticks per beat, and all three numbers
are 1-based: the very first tick of the project is bar 1, beat 1, tick 1. The value rounds to whole
ticks, so a readout a hair below a beat boundary shows the next beat instead of the last tick of the
previous one.
While playback runs, the readout moves smoothly: the engine sends its transport snapshot at up to
30 Hz and the display interpolates the position with the current tempo between two frames. Only an
engine snapshot re-anchors that interpolation, so a command you just sent cannot make the playhead
jump back. As soon as the engine is out of reach the readout freezes, because no snapshot could
correct a drift any more.
Go to bar 1: press Enter anywhere in the window outside a text field or a select field to
move the playhead to the project start (the command transport.locate with position 0). The key
works while the transport plays and while it is stopped; it needs a live connection like every other
transport command. One exception: while the keyboard focus is inside the session grid, Enter
belongs to the grid and launches the focused clip slot or the focused scene instead - the manual
section of the grid is Launch the focused slot (Enter). To get
the locate back, move the focus out of the grid, for example with Tab or by clicking the transport
bar. The readout itself is a display and has no mouse interaction - F1 over it opens this section.
The iPad remote shows the same bars.beats.ticks position, computed with the same rules, and keeps it moving between the engine's snapshots with a 20 Hz sampling timer.
Test tone
Switches a reference tone onto the master output: a 440 Hz sine (concert A) at -20 dBFS, added to every output channel. It is the quickest way to check that the audio device, the level and the monitoring path work. Click Test tone to switch the tone on, click again to switch it off; the button stays highlighted (and is announced as pressed) while the tone is on.
The tone is faded in and out over 5 ms, so switching it cannot produce a click. The switch is off by
default; it is engine state and is shared like the tempo - the engine's transport snapshot carries
it, so the iPad remote and an OSC controller see and set the very same switch. The switch is
disabled while the interface is not connected to the engine.
Play/Stop (Space)
Toggles the transport: Space starts playback while the transport is stopped and stops it while it runs - the same as clicking Play and Stop. It works anywhere in the window except in a text field, a select field or an editable area: those keep the key press, so a space in the Tempo field or in the Accent colour field stays a space.
One press is one gesture: a held key does not repeat the command, and the key press is taken by the transport bar, so a focused button cannot run its own action on top of it. The shortcut is disabled together with the transport buttons while the interface is not connected to the engine.
Workflow: play from the start
- Press Enter to move the playhead to bar 1 (see Position).
- Check the level: switch Test tone on, listen, and switch it off again (see Test tone).
- Set the project tempo in the Tempo field and press Enter (see Tempo).
- Press Space to start playback, press Space again to stop it (see Play/Stop (Space)).