Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
InstrumentTrack Struct Reference

Track to be inserted into the Project's Tracklist. More...

#include <dsp/track.h>

Collaboration diagram for InstrumentTrack:

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.
 
TrackWidgetwidget
 Track Widget created dynamically.
 
FolderChannelWidgetfolder_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).
 
Portrecording
 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.
 
ZRegionrecording_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.
 
Stretcherrt_stretcher
 Real-time time stretcher.
 
ZRegion ** chord_regions
 ChordObject's.
 
int num_chord_regions
 
size_t chord_regions_size
 
ZRegion ** 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
 
Portbpm_port
 Automatable BPM control.
 
Portbeats_per_bar_port
 Automatable beats per bar port.
 
Portbeat_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
 
ModulatorMacroProcessormodulator_macros [TRACK_MAX_MODULATOR_MACROS]
 Modulator macros.
 
int num_modulator_macros
 
int num_visible_modulator_macros
 
Channelchannel
 1 Track has 0 or 1 Channel.
 
TrackProcessorprocessor
 The TrackProcessor, used for processing.
 
AutomationTracklist automation_tracklist
 
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 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.
 
Tracklisttracklist
 Pointer to owner tracklist, if any.
 
TracklistSelectionsts
 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.
 
WrappedObjectWithChangeSignalgobj
 Used in Gtk.
 

Detailed Description

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.

Definition at line 185 of file track.h.

Field Documentation

◆ automation_tracklist

AutomationTracklist Track::automation_tracklist

Definition at line 443 of file track.h.

◆ automation_visible

bool Track::automation_visible

Flag to set automations visible or not.

Definition at line 219 of file track.h.

◆ beat_unit_port

Port* Track::beat_unit_port

Automatable beat unit port.

Definition at line 396 of file track.h.

◆ beats_per_bar_port

Port* Track::beats_per_bar_port

Automatable beats per bar port.

Definition at line 393 of file track.h.

◆ block_auto_creation_and_deletion

bool Track::block_auto_creation_and_deletion

Block auto-creating or deleting lanes.

Definition at line 525 of file track.h.

◆ bounce

bool Track::bounce

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

Only relevant for tracks that output audio.

Definition at line 476 of file track.h.

◆ bounce_to_master

bool Track::bounce_to_master

Whether to temporarily route the output to master (e.g., when bouncing the track on its own without its parents).

Definition at line 482 of file track.h.

◆ bpm_port

Port* Track::bpm_port

Automatable BPM control.

Definition at line 390 of file track.h.

◆ channel

Channel* Track::channel

1 Track has 0 or 1 Channel.

Definition at line 431 of file track.h.

◆ children

unsigned int* Track::children

Name hashes of tracks that are routed to this track, if group track.

This is used when undoing track deletion.

Definition at line 490 of file track.h.

◆ children_size

size_t Track::children_size

Definition at line 492 of file track.h.

◆ chord_region_snapshots

ZRegion** Track::chord_region_snapshots

Snapshots used during playback.

Definition at line 357 of file track.h.

◆ chord_regions

ZRegion** Track::chord_regions

ChordObject's.

Note: these must always be sorted by Position.

Definition at line 352 of file track.h.

◆ chord_regions_size

size_t Track::chord_regions_size

Definition at line 354 of file track.h.

◆ color

GdkRGBA Track::color

Track color.

This is used in the channels as well.

Definition at line 260 of file track.h.

◆ comment

char* Track::comment

User comments.

Definition at line 468 of file track.h.

◆ disconnecting

bool Track::disconnecting

Whether currently disconnecting.

Definition at line 503 of file track.h.

◆ drum_mode

bool Track::drum_mode

Whether drum mode in the piano roll is enabled for this track.

Only used for tracks that have a piano roll.

Definition at line 282 of file track.h.

◆ enabled

bool Track::enabled

Active (enabled) or not.

Disabled tracks should be ignored in routing. Similar to Plugin.enabled (bypass).

Definition at line 253 of file track.h.

◆ filtered

bool Track::filtered

Track will be hidden if true (temporary and not serializable).

Definition at line 229 of file track.h.

◆ folded

bool Track::folded

Whether currently folded.

Definition at line 410 of file track.h.

◆ folder_ch_widget

FolderChannelWidget* Track::folder_ch_widget

Widget used for foldable tracks in the mixer.

Definition at line 216 of file track.h.

◆ frozen

bool Track::frozen

Whether the track is currently frozen.

Definition at line 495 of file track.h.

◆ gobj

Used in Gtk.

Definition at line 528 of file track.h.

◆ icon_name

char* Track::icon_name

Icon name of the track.

Definition at line 205 of file track.h.

◆ in_signal_type

PortType Track::in_signal_type

The input signal type (eg audio bus tracks have audio input signals).

Definition at line 459 of file track.h.

◆ lane_snapshots

TrackLane** Track::lane_snapshots

Snapshots used during playback.

Definition at line 270 of file track.h.

◆ lanes

TrackLane** Track::lanes

Lanes in this track containing Regions.

Definition at line 265 of file track.h.

◆ lanes_size

size_t Track::lanes_size

Definition at line 267 of file track.h.

◆ lanes_visible

bool Track::lanes_visible

Flag to set track lanes visible or not.

Definition at line 222 of file track.h.

◆ last_lane_created

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.

Definition at line 522 of file track.h.

◆ last_lane_idx

int Track::last_lane_idx

Lane index of region before recording paused.

Definition at line 334 of file track.h.

◆ magic

int Track::magic

Definition at line 500 of file track.h.

◆ main_height

double Track::main_height

Height of the main part (without lanes).

Definition at line 232 of file track.h.

◆ marker_snapshots

Marker** Track::marker_snapshots

Snapshots used during playback TODO unimplemented.

Definition at line 382 of file track.h.

◆ markers

Marker** Track::markers

Definition at line 377 of file track.h.

◆ markers_size

size_t Track::markers_size

Definition at line 379 of file track.h.

◆ midi_ch

uint8_t Track::midi_ch

MIDI channel (MIDI/Instrument track only).

Definition at line 274 of file track.h.

◆ modulator_macros

ModulatorMacroProcessor* Track::modulator_macros[TRACK_MAX_MODULATOR_MACROS]

Modulator macros.

Definition at line 422 of file track.h.

◆ modulators

Plugin** Track::modulators

Modulators.

Definition at line 417 of file track.h.

◆ modulators_size

size_t Track::modulators_size

Definition at line 419 of file track.h.

◆ name

char* Track::name

Track name, used in channel too.

Definition at line 199 of file track.h.

◆ name_hash

unsigned int Track::name_hash

Cache calculated when adding to graph.

Definition at line 202 of file track.h.

◆ num_children

int Track::num_children

Definition at line 491 of file track.h.

◆ num_chord_region_snapshots

int Track::num_chord_region_snapshots

Definition at line 358 of file track.h.

◆ num_chord_regions

int Track::num_chord_regions

Definition at line 353 of file track.h.

◆ num_lane_snapshots

int Track::num_lane_snapshots

Definition at line 271 of file track.h.

◆ num_lanes

int Track::num_lanes

Definition at line 266 of file track.h.

◆ num_marker_snapshots

int Track::num_marker_snapshots

Definition at line 383 of file track.h.

◆ num_markers

int Track::num_markers

Definition at line 378 of file track.h.

◆ num_modulator_macros

int Track::num_modulator_macros

Definition at line 423 of file track.h.

◆ num_modulators

int Track::num_modulators

Definition at line 418 of file track.h.

◆ num_scale_snapshots

int Track::num_scale_snapshots

Definition at line 371 of file track.h.

◆ num_scales

int Track::num_scales

Definition at line 366 of file track.h.

◆ num_visible_modulator_macros

int Track::num_visible_modulator_macros

Definition at line 424 of file track.h.

◆ out_signal_type

PortType Track::out_signal_type

The output signal type (eg midi tracks have MIDI output signals).

Definition at line 465 of file track.h.

◆ passthrough_midi_input

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.

Definition at line 291 of file track.h.

◆ pool_id

int Track::pool_id

Pool ID of the clip if track is frozen.

Definition at line 498 of file track.h.

◆ pos

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.

Definition at line 193 of file track.h.

◆ processor

TrackProcessor* Track::processor

The TrackProcessor, used for processing.

This is the starting point when processing a Track.

Definition at line 441 of file track.h.

◆ record_set_automatically

bool Track::record_set_automatically

Whether record was set automatically when the channel was selected.

This is so that it can be unset when selecting another track. If we don't do this all the tracks end up staying on record mode.

Definition at line 245 of file track.h.

◆ recording

Port* Track::recording

Recording or not.

Definition at line 235 of file track.h.

◆ recording_paused

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.

Definition at line 330 of file track.h.

◆ recording_region

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.

Definition at line 300 of file track.h.

◆ recording_start_sent

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.

Definition at line 310 of file track.h.

◆ recording_stop_sent

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.

Definition at line 320 of file track.h.

◆ rt_stretcher

Stretcher* Track::rt_stretcher

Real-time time stretcher.

Definition at line 341 of file track.h.

◆ scale_snapshots

ScaleObject** Track::scale_snapshots

Snapshots used during playback TODO unimplemented.

Definition at line 370 of file track.h.

◆ scales

ScaleObject** Track::scales

ScaleObject's.

Note: these must always be sorted by Position.

Definition at line 365 of file track.h.

◆ scales_size

size_t Track::scales_size

Definition at line 367 of file track.h.

◆ size

int Track::size

Number of tracks inside this track.

Should be 1 unless foldable.

Definition at line 407 of file track.h.

◆ tracklist

Tracklist* Track::tracklist

Pointer to owner tracklist, if any.

Definition at line 506 of file track.h.

◆ trigger_midi_activity

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.

Definition at line 453 of file track.h.

◆ ts

TracklistSelections* Track::ts

Pointer to owner tracklist selections, if any.

Definition at line 509 of file track.h.

◆ type

TrackType Track::type

The type of track this is.

Definition at line 196 of file track.h.

◆ visible

bool Track::visible

Whole Track is visible or not.

Definition at line 225 of file track.h.

◆ widget

TrackWidget* Track::widget

Track Widget created dynamically.

1 track has 1 widget.

Definition at line 211 of file track.h.


The documentation for this struct was generated from the following file: