Tracks shall be identified by ther position (index) in the Tracklist.
- int pos
- Position in the Tracklist.
- TrackType type
- Used to remember the position before pinned, so it can be moved back there when unpinned.
- char* name
- Track name, used in channel too.
- char* icon_name
- Icon name of the track.
- TrackWidget* widget
- Track Widget created dynamically.
- bool automation_visible
- Whether pinned or not.
- bool lanes_visible
- Flag to set track lanes visible or not.
- bool visible
- Whole Track is visible or not.
- double 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
- ScaleObject** scales
- Port* bpm_port
- Automatable BPM control.
- Port* beats_per_bar_port
- Automatable beats per bar port.
- Port* beat_unit_port
- Automatable beat unit port.
- Plugin** modulators
- ModulatorMacroProcessor* modulator_macros
- Modulator macros.
- 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.
- bool bounce_to_master
- Whether to temporarily route the output to master (e.g., when bouncing the track on its own without its parents).
- int* children
- Tracks that are routed to this track, if group track.
- bool frozen
- Whether the track is currently frozen.
- int pool_id
- Pool ID of the clip if track is frozen.
- bool is_project
- Whether this is a project track (as opposed to a clone used in actions).
- bool disconnecting
- Whether currently disconnecting.
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. Flag to set automations visible or not.
Active (enabled) or not.
Disabled tracks should be ignored in routing.
TODO explain what functionality this provides.
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.
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.
Set to ON during bouncing if this track should be included.
Only relevant for tracks that output audio.
Tracks that are routed to this track, if group track.
This is used when undoing track deletion.