Tracklist struct

The Tracklist contains all the tracks in the Project.


There should be a clear separation between the Tracklist and the Mixer. The Tracklist should be concerned with Tracks in the arranger, and the Mixer should be concerned with Channels, routing and Port connections.

Public variables

Track* tracks
All tracks that exist.
Track* chord_track
The chord track, for convenience.
Track* marker_track
The marker track, for convenience.
Track* tempo_track
The tempo track, for convenience.
Track* modulator_track
The modulator track, for convenience.
Track* master_track
The master track, for convenience.
TracklistWidget* widget
Non-pinned TracklistWidget.
PinnedTracklistWidget* pinned_widget
int pinned_tracks_cutoff
Index starting from which tracks are unpinned.
bool swapping_tracks
When this is true, some tracks may temporarily be moved beyond num_tracks.
SampleProcessor* sample_processor
Pointer to owner sample processor, if any.
Project* project
Pointer to owner project, if any.

Variable documentation

Track* Tracklist::tracks

All tracks that exist.

These should always be sorted in the same way they should appear in the GUI and include hidden tracks.

Pinned tracks should have lower indices. Ie, the sequence must be: { pinned track, pinned track, pinned track, track, track, track, ... }

int Tracklist::pinned_tracks_cutoff

Index starting from which tracks are unpinned.

Tracks before this position will be considered as pinned.