Zrythm
a highly automated and intuitive digital audio workstation
|
Track to be inserted into the Project's Tracklist. More...
#include <dsp/track.h>
Public Member Functions | |
NONNULL double | track_get_full_visible_height (Track *const self) |
Returns the full visible height (main height + height of all visible automation tracks + height of all visible lanes). | |
Data Fields | |
int | pos |
Position in the Tracklist. | |
TrackType | type |
The type of track this is. | |
char * | name |
Track name, used in channel too. | |
unsigned int | name_hash |
Cache calculated when adding to graph. | |
char * | icon_name |
Icon name of the track. | |
TrackWidget * | widget |
Track Widget created dynamically. | |
FolderChannelWidget * | folder_ch_widget |
Widget used for foldable tracks in the mixer. | |
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. | |
bool | filtered |
Track will be hidden if true (temporary and not serializable). | |
double | main_height |
Height of the main part (without lanes). | |
Port * | recording |
Recording or not. | |
bool | record_set_automatically |
Whether record was set automatically when the channel was selected. | |
bool | enabled |
Active (enabled) or not. | |
GdkRGBA | color |
Track color. | |
TrackLane ** | lanes |
Lanes in this track containing Regions. | |
int | num_lanes |
size_t | lanes_size |
TrackLane ** | lane_snapshots |
Snapshots used during playback. | |
int | num_lane_snapshots |
uint8_t | midi_ch |
MIDI channel (MIDI/Instrument track only). | |
bool | drum_mode |
Whether drum mode in the piano roll is enabled for this track. | |
int | passthrough_midi_input |
If set to 1, the input received will not be changed to the selected MIDI channel. | |
Region * | recording_region |
Region 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. | |
Region ** | chord_regions |
ChordObject's. | |
int | num_chord_regions |
size_t | chord_regions_size |
Region ** | chord_region_snapshots |
Snapshots used during playback. | |
int | num_chord_region_snapshots |
ScaleObject ** | scales |
ScaleObject's. | |
int | num_scales |
size_t | scales_size |
ScaleObject ** | scale_snapshots |
Snapshots used during playback TODO unimplemented. | |
int | num_scale_snapshots |
Marker ** | markers |
int | num_markers |
size_t | markers_size |
Marker ** | marker_snapshots |
Snapshots used during playback TODO unimplemented. | |
int | num_marker_snapshots |
Port * | bpm_port |
Automatable BPM control. | |
Port * | beats_per_bar_port |
Automatable beats per bar port. | |
Port * | beat_unit_port |
Automatable beat unit port. | |
int | size |
Number of tracks inside this track. | |
bool | folded |
Whether currently folded. | |
Plugin ** | modulators |
Modulators. | |
int | num_modulators |
size_t | modulators_size |
ModulatorMacroProcessor * | modulator_macros [TRACK_MAX_MODULATOR_MACROS] |
Modulator macros. | |
int | num_modulator_macros |
int | num_visible_modulator_macros |
Channel * | channel |
1 Track has 0 or 1 Channel. | |
TrackProcessor * | processor |
The TrackProcessor, used for processing. | |
AutomationTracklist | automation_tracklist |
bool | trigger_midi_activity |
Flag to tell the UI that this channel had MIDI activity. | |
ZPortType | in_signal_type |
The input signal type (eg audio bus tracks have audio input signals). | |
ZPortType | out_signal_type |
The output signal type (eg midi tracks have MIDI output signals). | |
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). | |
unsigned int * | children |
Name hashes of tracks that are routed to this track, if group track. | |
int | num_children |
size_t | children_size |
bool | frozen |
Whether the track is currently frozen. | |
int | pool_id |
Pool ID of the clip if track is frozen. | |
int | magic |
bool | disconnecting |
Whether currently disconnecting. | |
Tracklist * | tracklist |
Pointer to owner tracklist, if any. | |
TracklistSelections * | ts |
Pointer to owner tracklist selections, if any. | |
int | last_lane_created |
Last lane created during this drag. | |
bool | block_auto_creation_and_deletion |
Block auto-creating or deleting lanes. | |
WrappedObjectWithChangeSignal * | gobj |
Used in Gtk. | |
Track to be inserted into the Project's Tracklist.
MarkerTrack is just a Track.
This track is for convenience.
Each Track contains a Channel with Plugins.
Tracks shall be identified by their position (index) in the Tracklist.
It contains common variables for tracks that correspond to a channel in the mixer. Should never be instantiated.
AutomationTracklist Track::automation_tracklist |
bool Track::automation_visible |
Port* Track::beats_per_bar_port |
bool Track::block_auto_creation_and_deletion |
bool Track::bounce |
bool Track::bounce_to_master |
unsigned int* Track::children |
Region** Track::chord_region_snapshots |
Region** Track::chord_regions |
ChordObject's.
Note: these must always be sorted by Position.
GdkRGBA Track::color |
bool Track::drum_mode |
bool Track::enabled |
Active (enabled) or not.
Disabled tracks should be ignored in routing. Similar to Plugin.enabled (bypass).
bool Track::filtered |
FolderChannelWidget* Track::folder_ch_widget |
WrappedObjectWithChangeSignal* Track::gobj |
ZPortType Track::in_signal_type |
TrackLane** Track::lane_snapshots |
TrackLane** Track::lanes |
bool Track::lanes_visible |
int Track::last_lane_created |
Last lane created during this drag.
This is used to prevent creating infinite lanes when you want to track a region from the last lane to the track below. Only 1 new lane will be created in case the user wants to move the region to a new lane instead of the track below.
Used when moving regions vertically.
int Track::last_lane_idx |
double Track::main_height |
Marker** Track::marker_snapshots |
uint8_t Track::midi_ch |
ModulatorMacroProcessor* Track::modulator_macros[TRACK_MAX_MODULATOR_MACROS] |
unsigned int Track::name_hash |
ZPortType Track::out_signal_type |
int Track::passthrough_midi_input |
int Track::pos |
TrackProcessor* Track::processor |
The TrackProcessor, used for processing.
This is the starting point when processing a Track.
bool Track::record_set_automatically |
bool Track::recording_paused |
This must only be set by the RecordingManager when temporarily pausing recording, eg when looping or leaving the punch range.
Region* Track::recording_region |
Region 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.
ScaleObject** Track::scale_snapshots |
ScaleObject** Track::scales |
ScaleObject's.
Note: these must always be sorted by Position.
int Track::size |
Tracklist* Track::tracklist |
bool Track::trigger_midi_activity |
TracklistSelections* Track::ts |
TrackWidget* Track::widget |