TrackerTransport

The tracker's transport bar: play, loop, record, tempo and the play position.

Declared in src/libs/libbahn/bahn/tracker/ui/TrackerTransport.hpp
Inherits QWidget
Group bahn

Detailed description

The bar controls the position of the song's Sequence. It has toggle buttons for play, loop and record, spin boxes for beats per minute, ticks per beat and ticks per step, a label for the play position, and a toggle for live or render playback.

A change on the bar sets the position. Play, loop, record and the playback mode also emit a signal, so the rest of the window can follow. A tempo change is written to the settings store, and setSettings() reads the values back. When play stops, the bar releases every note that sounds.

See also Sequence, SequencerView.

Member function documentation

releaseAllNotes

[slot] void TrackerTransport::releaseAllNotes()

Send a note-off to every node when the transport stops.

Without this, whatever was sounding when the playhead stopped keeps sounding: the sequencer simply stops delivering rows, and a note that was never released has no reason to end. A sustaining patch holds forever.

It goes through the live-event queue like every other live edit (specs/bahn-live-feedback §BLT-3), so a release lands at the next block boundary in the same order as everything else rather than reaching into a processor from here.

A node with no note column ignores it — `Processor::noteColumnIndex` returns -1 for an effect, and an effect has no note to release.

In this section