Track struct

Track to be inserted into the Project's Tracklist.

Contents

Each Track contains a Channel with Plugins.

Tracks shall be identified by ther position (index) in the Tracklist.

Public variables

int pos
Position in the Tracklist.
int pos_before_pinned
Used to remember the position before pinned, so it can be moved back there when unpinned.
TrackType type
The type of track this is.
char* name
Track name, used in channel too.
TrackWidget* widget
Track Widget created dynamically.
bool pinned
Whether pinned or not.
bool automation_visible
Flag to set automations visible or not.
bool lanes_visible
Flag to set track lanes visible or not.
bool visible
Whole Track is visible or not.
int main_height
Height of the main part (without lanes).
bool recording
Recording or not.
bool active
Active (enabled) or not.
GdkRGBA color
Track color.
TrackLane** lanes
Lanes in this track containing Regions.
uint8_t midi_ch
MIDI channel (MIDI/Instrument track only).
int passthrough_midi_input
If set to 1, the input received will not be changed to the selected MIDI channel.
ZRegion* recording_region
ZRegion currently recording on.
bool recording_start_sent
This is a flag to let the recording manager know that a START signal was already sent for recording.
bool recording_stop_sent
This is a flag to let the recording manager know that a STOP signal was already sent for recording.
bool recording_paused
This must only be set by the RecordingManager when temporarily pausing recording, eg when looping or leaving the punch range.
int last_lane_idx
Lane index of region before recording paused.
Stretcher* rt_stretcher
Real-time time stretcher.
ZRegion** chord_regions
ChordObject's.
ScaleObject** scales
ScaleObject's.
Port* bpm_port
Automatable BPM control.
Port* time_sig_port
Automatable time sig control.
Plugin** modulators
Modulators.
Channel* channel
1 Track has 0 or 1 Channel.
TrackProcessor* processor
The TrackProcessor, used for processing.
bool trigger_midi_activity
Flag to tell the UI that this channel had MIDI activity.
PortType in_signal_type
The input signal type (eg audio bus tracks have audio input signals).
PortType out_signal_type
The output signal type (eg midi tracks have MIDI output singals).
char* comment
User comments.
bool bounce
Set to ON during bouncing if this track should be included.
int* children
Tracks that are routed to this track, if group track.
bool is_project
Whether this is a project track (as opposed to a clone used in actions).

Variable documentation

int Track::pos

Position in the Tracklist.

This is also used in the Mixer for the Channels. If a track doesn't have a Channel, the Mixer can just skip.

TrackWidget* Track::widget

Track Widget created dynamically.

1 track has 1 widget.

bool Track::pinned

Whether pinned or not.

Pinned tracks should keep their original pos saved so they can get unpinned. When iterating through unpinned tracks, can just check this variable.

bool Track::active

Active (enabled) or not.

Disabled tracks should be ignored in routing.

TODO explain what functionality this provides.

GdkRGBA Track::color

Track color.

This is used in the channels as well.

int Track::passthrough_midi_input

If set to 1, the input received will not be changed to the selected MIDI channel.

If this is 0, all input received will have its channel changed to the selected MIDI channel.

ZRegion* Track::recording_region

ZRegion currently recording on.

This must only be set by the RecordingManager when processing an event and should not be touched by anything else.

bool Track::recording_start_sent

This is a flag to let the recording manager know that a START signal was already sent for recording.

This is because Track::recording_region takes a cycle or 2 to become non-NULL.

bool Track::recording_stop_sent

This is a flag to let the recording manager know that a STOP signal was already sent for recording.

This is because Track::recording_region takes a cycle or 2 to become NULL.

bool Track::recording_paused

This must only be set by the RecordingManager when temporarily pausing recording, eg when looping or leaving the punch range.

See RECORDING_EVENT_TYPE_PAUSE_TRACK_RECORDING.

ZRegion** Track::chord_regions

ChordObject's.

Note: these must always be sorted by Position.

ScaleObject** Track::scales

ScaleObject's.

Note: these must always be sorted by Position.

TrackProcessor* Track::processor

The TrackProcessor, used for processing.

This is the starting point when processing a Track.

bool Track::trigger_midi_activity

Flag to tell the UI that this channel had MIDI activity.

When processing this and setting it to 0, the UI should create a separate event using EVENTS_PUSH.

bool Track::bounce

Set to ON during bouncing if this track should be included.

Only relevant for tracks that output audio.

int* Track::children

Tracks that are routed to this track, if group track.

This is used when undoing track deletion.