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.
int pinned
Whether pinned or not.
int automation_visible
Flag to set automations visible or not.
int lanes_visible
Flag to set track lanes visible or not.
int visible
Whole Track is visible or not.
int main_height
Height of the main part (without lanes).
Port* mute
Control port for muting the (channel) fader.
int solo
Soloed or not.
int recording
Recording or not.
int 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.
ZRegion** chord_regions
ChordObject's.
ScaleObject** scales
ScaleObject's.
Channel* channel
1 Track has 0 or 1 Channel.
TrackProcessor processor
The TrackProcessor, used for processing.
Modulator** modulators
Modulators for this Track.
int 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.
int bounce
Set to ON during bouncing if this track should be included.

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.

int 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.

Port* Track::mute

Control port for muting the (channel) fader.

It is here instead of in Fader because some tracks don't have channels.

int Track::active

Active (enabled) or not.

Disabled tracks should be ignored in routing.

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 and should not be touched by anything else.

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.

int 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.

int Track::bounce

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

Only relevant for tracks that output audio.