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.
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 bot_paned_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 handle_pos
Position of multipane handle.
int mute
Muted or not.
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).
Region* recording_region
Region currently recording on.
Region** 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).

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.

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.

Region** 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.