Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::structure::tracks::Track Class Reference

Represents a track in the project. More...

#include <src/structure/tracks/track.h>

Inheritance diagram for zrythm::structure::tracks::Track:
Collaboration diagram for zrythm::structure::tracks::Track:

Public Types

enum class  Type : basic_enum_base_type_t {
  Instrument , Audio , Master , Chord ,
  Marker , Modulator , AudioBus , AudioGroup ,
  Midi , MidiBus , MidiGroup , Folder
}
using Plugin = plugins::Plugin
using PluginUuid = Plugin::Uuid
using PortType = dsp::PortType
using PluginRegistry = plugins::PluginRegistry
using PluginPtrVariant = PluginRegistry::VariantType
using PluginSlot = plugins::PluginSlot
using ArrangerObject = structure::arrangement::ArrangerObject
using ArrangerObjectPtrVariant
using ArrangerObjectRegistry = structure::arrangement::ArrangerObjectRegistry
using Color = utils::Color

Public Member Functions

bool has_piano_roll () const
bool is_folder () const
bool is_audio_group () const
bool is_midi_group () const
bool is_audio_bus () const
bool is_midi_bus () const
bool is_modulator () const
bool is_chord () const
bool is_marker () const
bool is_audio () const
bool is_instrument () const
bool is_midi () const
bool is_master () const
Type type () const
AutomationTracklistautomationTracklist () const
QString name () const
void setName (const QString &name)
Q_SIGNAL void nameChanged (const QString &name)
QColor color () const
void setColor (const QColor &color)
Q_SIGNAL void colorChanged (const QColor &color)
QString comment () const
void setComment (const QString &comment)
Q_SIGNAL void commentChanged (const QString &comment)
bool visible () const
void setVisible (bool visible)
Q_SIGNAL void visibleChanged (bool visible)
bool enabled () const
void setEnabled (bool enabled)
Q_SIGNAL void enabledChanged (bool enabled)
double height () const
void setHeight (double height)
Q_SIGNAL void heightChanged (double height)
double fullVisibleHeight () const
Q_SIGNAL void fullVisibleHeightChanged ()
QString icon () const
void setIcon (const QString &icon)
Q_SIGNAL void iconChanged (const QString &icon)
Channelchannel () const
plugins::PluginGroupmodulators () const
TrackLaneListlanes () const
RecordableTrackMixinrecordableTrackMixin () const
PianoRollTrackMixinpianoRollTrackMixin () const
bool clipLauncherMode () const
void setClipLauncherMode (bool mode)
Q_SIGNAL void clipLauncherModeChanged (bool mode)
Q_INVOKABLE void regeneratePlaybackCaches (utils::ExpandableTickRange affectedRange)
 To be connected to to notify of any changes to the playable content, like MIDI or audio events.
bool is_deletable () const
bool is_copyable () const
bool has_automation () const
double get_full_visible_height () const
 Returns the full visible height (main height + height of all visible automation tracks + height of all visible lanes).
bool multiply_heights (double multiplier, bool visible_only, bool check_only)
bool can_be_group_target () const
template<arrangement::RegionObject RegionT>
auto generate_name_for_region (const RegionT &region, AutomationTrack *automation_track=nullptr)
void collect_timeline_objects (std::vector< ArrangerObjectPtrVariant > &objects) const
 Appends all the timeine objects in the track to objects.
bool contains_uninstantiated_plugin () const
utils::Utf8String get_name () const
 Getter for the track name.
auto get_input_signal_type () const
auto get_output_signal_type () const
uint8_t get_midi_ch (const arrangement::MidiRegion &midi_region) const
 Returns the MIDI channel that this region should be played on, starting from 1.
void collect_plugins (std::vector< plugins::PluginPtrVariant > &plugins) const
 Fills in the given array with all plugins in the track.
void set_caches (CacheType types)
 Set various caches (snapshots, track name hash, plugin input/output ports, etc).
utils::Utf8String get_full_designation_for_port (const dsp::Port &port) const
void generate_basic_automation_tracks ()
 Adds basic automation tracks.
auto & get_plugin_registry () const
auto & get_plugin_registry ()
auto & get_port_registry () const
auto & get_port_registry ()
auto & get_param_registry () const
auto & get_param_registry ()
auto & get_object_registry () const
auto & get_object_registry ()
TrackProcessorget_track_processor () const
auto get_icon_name () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< Track >
UuidIdentifiableObject & operator= (const UuidIdentifiableObject &other)=default
auto get_uuid () const

Static Public Member Functions

static bool type_can_have_region_type (Type type, ArrangerObject::Type region_type)
static constexpr bool type_is_foldable (Type type)
static constexpr bool type_is_copyable (Type type)
static constexpr bool type_is_deletable (Type type)
 Returns whether a track of the given type should be deletable by the user.
static Type type_get_from_plugin_descriptor (const zrythm::plugins::PluginDescriptor &descr)
static consteval bool type_has_mono_compat_switch (const Type tt)
static constexpr bool type_is_compatible_for_moving (const Type type1, const Type type2)
 Returns if regions in tracks from type1 can be moved to type2.
static constexpr bool type_has_piano_roll (const Type type)
 Returns if the Track should have a piano roll.
static constexpr bool type_has_inputs (const Type type)
 Returns if the Track should have an inputs selector.
static constexpr bool type_can_be_group_target (const Type type)
 Returns if the Track can be a direct route target.
static constexpr bool type_can_have_automation (const Type type)
static constexpr bool type_can_have_lanes (const Type type)
template<typename T>
static consteval Type get_type_for_class ()
static bool is_plugin_descriptor_valid_for_slot_type (const plugins::PluginDescriptor &descr, zrythm::plugins::PluginSlotType slot_type, Track::Type track_type)
 Returns if descr can be dropped at slot_type in a track of type track_type.

Static Public Attributes

static constexpr int MIN_HEIGHT = 26
static constexpr int DEF_HEIGHT = 52

Protected Types

enum class  TrackFeatures : std::uint8_t {
  Modulators = 1 << 0 , Automation = 1 << 1 , Lanes = 1 << 2 , Recording = 1 << 3 ,
  PianoRoll = 1 << 4
}

Protected Member Functions

 Track (Type type, PortType in_signal_type, PortType out_signal_type, TrackFeatures enabled_features, BaseTrackDependencies dependencies)
 Constructor to be used by subclasses.
virtual void set_playback_caches ()
 Set the playback caches for a track.
void generate_automation_tracks_for_processor (std::vector< utils::QObjectUniquePtr< AutomationTrack > > &ats, const dsp::ProcessorBase &processor)
utils::QObjectUniquePtr< TrackProcessormake_track_processor (std::optional< TrackProcessor::FillEventsCallback > fill_events_cb=std::nullopt, std::optional< TrackProcessor::TransformMidiInputsFunc > transform_midi_inputs_func=std::nullopt, std::optional< TrackProcessor::AppendMidiInputsToOutputsFunc > append_midi_inputs_to_outputs_func=std::nullopt)
 Implementations with a processor must call this in their constructor.
virtual void collect_additional_timeline_objects (std::vector< ArrangerObjectPtrVariant > &objects) const
 Called by collect_timeline_objects to collect any additional objects not handled by this class (such as markers and scales).

Protected Attributes

BaseTrackDependencies base_dependencies_
Type type_ {}
 The type of track this is.
TrackFeatures features_ {}
utils::Utf8String name_
 Track name, used in channel too.
utils::Utf8String icon_name_
 Icon name of the track.
bool visible_ = true
 Whole Track is visible or not.
double main_height_ { DEF_HEIGHT }
 Height of the main part (without lanes).
bool enabled_ = true
 Active (enabled) or not.
Color color_
 Track color.
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).
utils::Utf8String comment_
 User comments.
std::optional< dsp::FileAudioSourceUuidReference > frozen_clip_id_
 Pool ID of the clip if track is frozen (unset if not frozen).
utils::QObjectUniquePtr< AutomationTracklistautomation_tracklist_
 Automation tracks, if track is automatable.
utils::QObjectUniquePtr< TrackProcessorprocessor_
 The TrackProcessor, used for processing.
utils::QObjectUniquePtr< Channelchannel_
 Channel for this track, if any.
utils::QObjectUniquePtr< plugins::PluginGroupmodulators_
 Modulators.
std::vector< utils::QObjectUniquePtr< dsp::ModulatorMacroProcessor > > modulator_macro_processors_
 Modulator macros.
utils::QObjectUniquePtr< TrackLaneListlanes_
utils::QObjectUniquePtr< RecordableTrackMixinrecordable_track_mixin_
utils::QObjectUniquePtr< PianoRollTrackMixinpiano_roll_track_mixin_
utils::QObjectUniquePtr< utils::PlaybackCacheSchedulerplayable_content_cache_request_debouncer_
 Debouncer/scheduler of audio/MIDI cache requests.
bool clip_launcher_mode_ {}

Properties

Type type
zrythm::structure::tracks::AutomationTracklistautomationTracklist
QString name
QColor color
QString comment
QString icon
bool visible
bool enabled
double height
double fullVisibleHeight
zrythm::structure::tracks::Channelchannel
zrythm::plugins::PluginGroupmodulators
zrythm::structure::tracks::TrackLaneListlanes
zrythm::structure::tracks::RecordableTrackMixinrecordableTrackMixin
zrythm::structure::tracks::PianoRollTrackMixinpianoRollTrackMixin
bool clipLauncherMode

Friends

void init_from (Track &obj, const Track &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const Track &track)
void from_json (const nlohmann::json &j, Track &track)

Detailed Description

Represents a track in the project.

The Track class is the base class for all types of tracks in the project. It provides common functionality and properties shared by all track types, such as the track's position in the tracklist, its label, and whether it is muted.

Subclasses of Track represent specific types of tracks, such as MIDI tracks, instrument tracks, and audio tracks.

Definition at line 53 of file track.h.

Member Typedef Documentation

◆ ArrangerObject

using zrythm::structure::tracks::Track::ArrangerObject = structure::arrangement::ArrangerObject

Definition at line 81 of file track.h.

◆ ArrangerObjectPtrVariant

using zrythm::structure::tracks::Track::ArrangerObjectPtrVariant
Initial value:
structure::arrangement::ArrangerObjectPtrVariant

Definition at line 82 of file track.h.

◆ ArrangerObjectRegistry

using zrythm::structure::tracks::Track::ArrangerObjectRegistry = structure::arrangement::ArrangerObjectRegistry

Definition at line 84 of file track.h.

◆ Color

using zrythm::structure::tracks::Track::Color = utils::Color

Definition at line 85 of file track.h.

◆ Plugin

using zrythm::structure::tracks::Track::Plugin = plugins::Plugin

Definition at line 75 of file track.h.

◆ PluginPtrVariant

using zrythm::structure::tracks::Track::PluginPtrVariant = PluginRegistry::VariantType

Definition at line 79 of file track.h.

◆ PluginRegistry

using zrythm::structure::tracks::Track::PluginRegistry = plugins::PluginRegistry

Definition at line 78 of file track.h.

◆ PluginSlot

using zrythm::structure::tracks::Track::PluginSlot = plugins::PluginSlot

Definition at line 80 of file track.h.

◆ PluginUuid

using zrythm::structure::tracks::Track::PluginUuid = Plugin::Uuid

Definition at line 76 of file track.h.

◆ PortType

using zrythm::structure::tracks::Track::PortType = dsp::PortType

Definition at line 77 of file track.h.

Member Enumeration Documentation

◆ TrackFeatures

enum class zrythm::structure::tracks::Track::TrackFeatures : std::uint8_t
strongprotected

Definition at line 293 of file track.h.

◆ Type

enum class zrythm::structure::tracks::Track::Type : basic_enum_base_type_t
strong
Enumerator
Instrument 

Instrument tracks must have an Instrument plugin at the first slot and they produce audio output.

Audio 

Audio tracks can record and contain audio clips.

Other than that their channel strips are similar to buses.

Master 

The master track is a special type of group track.

Chord 

The chord track contains chords that can be used to modify midi in real time or to color the piano roll.

Marker 

Marker Track's contain named markers at specific Position's in the song.

Modulator 

Special track to contain global Modulator's.

AudioBus 

Buses are channels that receive audio input and have effects on their channel strip.

They are similar to Group Tracks, except that they cannot be routed to directly. Buses are used for send effects.

AudioGroup 

Group Tracks are used for grouping audio signals, for example routing multiple drum tracks to a "Drums" group track.

Like buses, they only contain effects but unlike buses they can be routed to.

Midi 

Midi tracks can only have MIDI effects in the strip and produce MIDI output that can be routed to instrument channels or hardware.

MidiBus 

Same with audio bus but for MIDI signals.

MidiGroup 

Same with audio group but for MIDI signals.

Folder 

Foldable track used for visual grouping.

Definition at line 87 of file track.h.

Member Function Documentation

◆ automationTracklist()

AutomationTracklist * zrythm::structure::tracks::Track::automationTracklist ( ) const
inline

Definition at line 334 of file track.h.

◆ can_be_group_target()

bool zrythm::structure::tracks::Track::can_be_group_target ( ) const
inline

Definition at line 468 of file track.h.

◆ channel()

Channel * zrythm::structure::tracks::Track::channel ( ) const
inline

Definition at line 423 of file track.h.

◆ clipLauncherMode()

bool zrythm::structure::tracks::Track::clipLauncherMode ( ) const
inline

Definition at line 439 of file track.h.

◆ collect_additional_timeline_objects()

virtual void zrythm::structure::tracks::Track::collect_additional_timeline_objects ( std::vector< ArrangerObjectPtrVariant > & objects) const
inlineprotectedvirtual

Called by collect_timeline_objects to collect any additional objects not handled by this class (such as markers and scales).

Definition at line 597 of file track.h.

◆ color()

QColor zrythm::structure::tracks::Track::color ( ) const
inline

Definition at line 351 of file track.h.

◆ comment()

QString zrythm::structure::tracks::Track::comment ( ) const
inline

Definition at line 362 of file track.h.

◆ enabled()

bool zrythm::structure::tracks::Track::enabled ( ) const
inline

Definition at line 385 of file track.h.

◆ fullVisibleHeight()

double zrythm::structure::tracks::Track::fullVisibleHeight ( ) const
inline

Definition at line 407 of file track.h.

◆ generate_automation_tracks_for_processor()

void zrythm::structure::tracks::Track::generate_automation_tracks_for_processor ( std::vector< utils::QObjectUniquePtr< AutomationTrack > > & ats,
const dsp::ProcessorBase & processor )
inlineprotected

Definition at line 572 of file track.h.

◆ generate_basic_automation_tracks()

void zrythm::structure::tracks::Track::generate_basic_automation_tracks ( )

Adds basic automation tracks.

This only adds automation tracks for a few commonly used parameters. When the user selects an automatable parameter to automate that does not have automation tracks yet, automation tracks should be created lazily.

◆ generate_name_for_region()

template<arrangement::RegionObject RegionT>
auto zrythm::structure::tracks::Track::generate_name_for_region ( const RegionT & region,
AutomationTrack * automation_track = nullptr )
inline

Definition at line 471 of file track.h.

◆ get_icon_name()

auto zrythm::structure::tracks::Track::get_icon_name ( ) const
inline

Definition at line 559 of file track.h.

◆ get_input_signal_type()

auto zrythm::structure::tracks::Track::get_input_signal_type ( ) const
inline

Definition at line 499 of file track.h.

◆ get_name()

utils::Utf8String zrythm::structure::tracks::Track::get_name ( ) const
inline

Getter for the track name.

Definition at line 497 of file track.h.

◆ get_object_registry() [1/2]

auto & zrythm::structure::tracks::Track::get_object_registry ( )
inline

Definition at line 555 of file track.h.

◆ get_object_registry() [2/2]

auto & zrythm::structure::tracks::Track::get_object_registry ( ) const
inline

Definition at line 551 of file track.h.

◆ get_output_signal_type()

auto zrythm::structure::tracks::Track::get_output_signal_type ( ) const
inline

Definition at line 500 of file track.h.

◆ get_param_registry() [1/2]

auto & zrythm::structure::tracks::Track::get_param_registry ( )
inline

Definition at line 550 of file track.h.

◆ get_param_registry() [2/2]

auto & zrythm::structure::tracks::Track::get_param_registry ( ) const
inline

Definition at line 546 of file track.h.

◆ get_plugin_registry() [1/2]

auto & zrythm::structure::tracks::Track::get_plugin_registry ( )
inline

Definition at line 543 of file track.h.

◆ get_plugin_registry() [2/2]

auto & zrythm::structure::tracks::Track::get_plugin_registry ( ) const
inline

Definition at line 539 of file track.h.

◆ get_port_registry() [1/2]

auto & zrythm::structure::tracks::Track::get_port_registry ( )
inline

Definition at line 545 of file track.h.

◆ get_port_registry() [2/2]

auto & zrythm::structure::tracks::Track::get_port_registry ( ) const
inline

Definition at line 544 of file track.h.

◆ get_track_processor()

TrackProcessor * zrythm::structure::tracks::Track::get_track_processor ( ) const
inline

Definition at line 557 of file track.h.

◆ get_type_for_class()

template<typename T>
consteval Type zrythm::structure::tracks::Track::get_type_for_class ( )
inlinestaticconsteval

Definition at line 256 of file track.h.

◆ has_automation()

bool zrythm::structure::tracks::Track::has_automation ( ) const
inline

Definition at line 458 of file track.h.

◆ has_piano_roll()

bool zrythm::structure::tracks::Track::has_piano_roll ( ) const
inline

Definition at line 313 of file track.h.

◆ height()

double zrythm::structure::tracks::Track::height ( ) const
inline

Definition at line 395 of file track.h.

◆ icon()

QString zrythm::structure::tracks::Track::icon ( ) const
inline

Definition at line 410 of file track.h.

◆ is_audio()

bool zrythm::structure::tracks::Track::is_audio ( ) const
inline

Definition at line 323 of file track.h.

◆ is_audio_bus()

bool zrythm::structure::tracks::Track::is_audio_bus ( ) const
inline

Definition at line 318 of file track.h.

◆ is_audio_group()

bool zrythm::structure::tracks::Track::is_audio_group ( ) const
inline

Definition at line 316 of file track.h.

◆ is_chord()

bool zrythm::structure::tracks::Track::is_chord ( ) const
inline

Definition at line 321 of file track.h.

◆ is_copyable()

bool zrythm::structure::tracks::Track::is_copyable ( ) const
inline

Definition at line 457 of file track.h.

◆ is_deletable()

bool zrythm::structure::tracks::Track::is_deletable ( ) const
inline

Definition at line 456 of file track.h.

◆ is_folder()

bool zrythm::structure::tracks::Track::is_folder ( ) const
inline

Definition at line 315 of file track.h.

◆ is_instrument()

bool zrythm::structure::tracks::Track::is_instrument ( ) const
inline

Definition at line 324 of file track.h.

◆ is_marker()

bool zrythm::structure::tracks::Track::is_marker ( ) const
inline

Definition at line 322 of file track.h.

◆ is_master()

bool zrythm::structure::tracks::Track::is_master ( ) const
inline

Definition at line 326 of file track.h.

◆ is_midi()

bool zrythm::structure::tracks::Track::is_midi ( ) const
inline

Definition at line 325 of file track.h.

◆ is_midi_bus()

bool zrythm::structure::tracks::Track::is_midi_bus ( ) const
inline

Definition at line 319 of file track.h.

◆ is_midi_group()

bool zrythm::structure::tracks::Track::is_midi_group ( ) const
inline

Definition at line 317 of file track.h.

◆ is_modulator()

bool zrythm::structure::tracks::Track::is_modulator ( ) const
inline

Definition at line 320 of file track.h.

◆ lanes()

TrackLaneList * zrythm::structure::tracks::Track::lanes ( ) const
inline

Definition at line 427 of file track.h.

◆ modulators()

plugins::PluginGroup * zrythm::structure::tracks::Track::modulators ( ) const
inline

Definition at line 425 of file track.h.

◆ name()

QString zrythm::structure::tracks::Track::name ( ) const
inline

Definition at line 339 of file track.h.

◆ pianoRollTrackMixin()

PianoRollTrackMixin * zrythm::structure::tracks::Track::pianoRollTrackMixin ( ) const
inline

Definition at line 434 of file track.h.

◆ recordableTrackMixin()

RecordableTrackMixin * zrythm::structure::tracks::Track::recordableTrackMixin ( ) const
inline

Definition at line 429 of file track.h.

◆ regeneratePlaybackCaches()

Q_INVOKABLE void zrythm::structure::tracks::Track::regeneratePlaybackCaches ( utils::ExpandableTickRange affectedRange)

To be connected to to notify of any changes to the playable content, like MIDI or audio events.

This will request new caches to be generated for the track processor.

◆ set_playback_caches()

virtual void zrythm::structure::tracks::Track::set_playback_caches ( )
inlineprotectedvirtual

Set the playback caches for a track.

This is called by set_caches().

Definition at line 570 of file track.h.

◆ setColor()

void zrythm::structure::tracks::Track::setColor ( const QColor & color)
inline

Definition at line 352 of file track.h.

◆ setComment()

void zrythm::structure::tracks::Track::setComment ( const QString & comment)
inline

Definition at line 363 of file track.h.

◆ setEnabled()

void zrythm::structure::tracks::Track::setEnabled ( bool enabled)
inline

Definition at line 386 of file track.h.

◆ setHeight()

void zrythm::structure::tracks::Track::setHeight ( double height)
inline

Definition at line 396 of file track.h.

◆ setIcon()

void zrythm::structure::tracks::Track::setIcon ( const QString & icon)
inline

Definition at line 411 of file track.h.

◆ setName()

void zrythm::structure::tracks::Track::setName ( const QString & name)
inline

Definition at line 340 of file track.h.

◆ setVisible()

void zrythm::structure::tracks::Track::setVisible ( bool visible)
inline

Definition at line 375 of file track.h.

◆ type()

Type zrythm::structure::tracks::Track::type ( ) const
inline

Definition at line 332 of file track.h.

◆ type_can_be_group_target()

constexpr bool zrythm::structure::tracks::Track::type_can_be_group_target ( const Type type)
inlinestaticconstexpr

Returns if the Track can be a direct route target.

Parameters
type
Returns
true
false

Definition at line 236 of file track.h.

◆ type_can_have_automation()

constexpr bool zrythm::structure::tracks::Track::type_can_have_automation ( const Type type)
inlinestaticconstexpr

Definition at line 242 of file track.h.

◆ type_can_have_lanes()

constexpr bool zrythm::structure::tracks::Track::type_can_have_lanes ( const Type type)
inlinestaticconstexpr

Definition at line 251 of file track.h.

◆ type_can_have_region_type()

bool zrythm::structure::tracks::Track::type_can_have_region_type ( Type type,
ArrangerObject::Type region_type )
inlinestatic

Definition at line 157 of file track.h.

◆ type_has_inputs()

constexpr bool zrythm::structure::tracks::Track::type_has_inputs ( const Type type)
inlinestaticconstexpr

Returns if the Track should have an inputs selector.

Definition at line 224 of file track.h.

◆ type_has_mono_compat_switch()

consteval bool zrythm::structure::tracks::Track::type_has_mono_compat_switch ( const Type tt)
inlinestaticconsteval

Definition at line 197 of file track.h.

◆ type_has_piano_roll()

constexpr bool zrythm::structure::tracks::Track::type_has_piano_roll ( const Type type)
inlinestaticconstexpr

Returns if the Track should have a piano roll.

Definition at line 216 of file track.h.

◆ type_is_compatible_for_moving()

constexpr bool zrythm::structure::tracks::Track::type_is_compatible_for_moving ( const Type type1,
const Type type2 )
inlinestaticconstexpr

Returns if regions in tracks from type1 can be moved to type2.

Definition at line 206 of file track.h.

◆ type_is_copyable()

constexpr bool zrythm::structure::tracks::Track::type_is_copyable ( Type type)
inlinestaticconstexpr

Definition at line 180 of file track.h.

◆ type_is_deletable()

constexpr bool zrythm::structure::tracks::Track::type_is_deletable ( Type type)
inlinestaticconstexpr

Returns whether a track of the given type should be deletable by the user.

Definition at line 189 of file track.h.

◆ type_is_foldable()

constexpr bool zrythm::structure::tracks::Track::type_is_foldable ( Type type)
inlinestaticconstexpr

Definition at line 174 of file track.h.

◆ visible()

bool zrythm::structure::tracks::Track::visible ( ) const
inline

Definition at line 374 of file track.h.

◆ to_json

void to_json ( nlohmann::json & j,
const Track & track )
friend

Definition at line 622 of file track.h.

Field Documentation

◆ automation_tracklist_

utils::QObjectUniquePtr<AutomationTracklist> zrythm::structure::tracks::Track::automation_tracklist_
protected

Automation tracks, if track is automatable.

Definition at line 716 of file track.h.

◆ base_dependencies_

BaseTrackDependencies zrythm::structure::tracks::Track::base_dependencies_
protected

Definition at line 659 of file track.h.

◆ channel_

utils::QObjectUniquePtr<Channel> zrythm::structure::tracks::Track::channel_
protected

Channel for this track, if any.

Definition at line 731 of file track.h.

◆ clip_launcher_mode_

bool zrythm::structure::tracks::Track::clip_launcher_mode_ {}
protected

Definition at line 752 of file track.h.

◆ color_

Color zrythm::structure::tracks::Track::color_
protected

Track color.

This is used in the channels as well.

Definition at line 691 of file track.h.

◆ comment_

utils::Utf8String zrythm::structure::tracks::Track::comment_
protected

User comments.

Definition at line 704 of file track.h.

◆ DEF_HEIGHT

int zrythm::structure::tracks::Track::DEF_HEIGHT = 52
staticconstexpr

Definition at line 154 of file track.h.

◆ enabled_

bool zrythm::structure::tracks::Track::enabled_ = true
protected

Active (enabled) or not.

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

Definition at line 684 of file track.h.

◆ features_

TrackFeatures zrythm::structure::tracks::Track::features_ {}
protected

Definition at line 664 of file track.h.

◆ frozen_clip_id_

std::optional<dsp::FileAudioSourceUuidReference> zrythm::structure::tracks::Track::frozen_clip_id_
protected

Pool ID of the clip if track is frozen (unset if not frozen).

Currently unused.

Definition at line 711 of file track.h.

◆ icon_name_

utils::Utf8String zrythm::structure::tracks::Track::icon_name_
protected

Icon name of the track.

Definition at line 670 of file track.h.

◆ in_signal_type_

PortType zrythm::structure::tracks::Track::in_signal_type_ = {}
protected

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

Definition at line 696 of file track.h.

◆ lanes_

utils::QObjectUniquePtr<TrackLaneList> zrythm::structure::tracks::Track::lanes_
protected

Definition at line 740 of file track.h.

◆ main_height_

double zrythm::structure::tracks::Track::main_height_ { DEF_HEIGHT }
protected

Height of the main part (without lanes).

Definition at line 676 of file track.h.

◆ MIN_HEIGHT

int zrythm::structure::tracks::Track::MIN_HEIGHT = 26
staticconstexpr

Definition at line 153 of file track.h.

◆ modulator_macro_processors_

std::vector<utils::QObjectUniquePtr<dsp::ModulatorMacroProcessor> > zrythm::structure::tracks::Track::modulator_macro_processors_
protected

Modulator macros.

Definition at line 738 of file track.h.

◆ modulators_

utils::QObjectUniquePtr<plugins::PluginGroup> zrythm::structure::tracks::Track::modulators_
protected

Modulators.

Definition at line 734 of file track.h.

◆ name_

utils::Utf8String zrythm::structure::tracks::Track::name_
protected

Track name, used in channel too.

Definition at line 667 of file track.h.

◆ out_signal_type_

PortType zrythm::structure::tracks::Track::out_signal_type_ = {}
protected

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

Definition at line 701 of file track.h.

◆ piano_roll_track_mixin_

utils::QObjectUniquePtr<PianoRollTrackMixin> zrythm::structure::tracks::Track::piano_roll_track_mixin_
protected

Definition at line 744 of file track.h.

◆ playable_content_cache_request_debouncer_

utils::QObjectUniquePtr<utils::PlaybackCacheScheduler> zrythm::structure::tracks::Track::playable_content_cache_request_debouncer_
protected

Debouncer/scheduler of audio/MIDI cache requests.

Definition at line 750 of file track.h.

◆ processor_

utils::QObjectUniquePtr<TrackProcessor> zrythm::structure::tracks::Track::processor_
protected

The TrackProcessor, used for processing.

This is the starting point when processing a Track. Tracks that want to be part of the DSP graph as signal producers must have this.

See also
Channel for additional DSP graph functionality.

Definition at line 726 of file track.h.

◆ recordable_track_mixin_

utils::QObjectUniquePtr<RecordableTrackMixin> zrythm::structure::tracks::Track::recordable_track_mixin_
protected

Definition at line 742 of file track.h.

◆ type_

Type zrythm::structure::tracks::Track::type_ {}
protected

The type of track this is.

Definition at line 662 of file track.h.

◆ visible_

bool zrythm::structure::tracks::Track::visible_ = true
protected

Whole Track is visible or not.

Definition at line 673 of file track.h.

Property Documentation

◆ automationTracklist

zrythm::structure::tracks::AutomationTracklist * zrythm::structure::tracks::Track::automationTracklist
read

Definition at line 57 of file track.h.

◆ channel

zrythm::structure::tracks::Channel * zrythm::structure::tracks::Track::channel
read

Definition at line 66 of file track.h.

◆ clipLauncherMode

bool zrythm::structure::tracks::Track::clipLauncherMode
readwrite

Definition at line 71 of file track.h.

◆ color

QColor zrythm::structure::tracks::Track::color
readwrite

Definition at line 59 of file track.h.

◆ comment

QString zrythm::structure::tracks::Track::comment
readwrite

Definition at line 60 of file track.h.

◆ enabled

bool zrythm::structure::tracks::Track::enabled
readwrite

Definition at line 63 of file track.h.

◆ fullVisibleHeight

double zrythm::structure::tracks::Track::fullVisibleHeight
read

Definition at line 65 of file track.h.

◆ height

double zrythm::structure::tracks::Track::height
readwrite

Definition at line 64 of file track.h.

◆ icon

QString zrythm::structure::tracks::Track::icon
readwrite

Definition at line 61 of file track.h.

◆ lanes

zrythm::structure::tracks::TrackLaneList * zrythm::structure::tracks::Track::lanes
read

Definition at line 68 of file track.h.

◆ modulators

zrythm::plugins::PluginGroup * zrythm::structure::tracks::Track::modulators
read

Definition at line 67 of file track.h.

◆ name

QString zrythm::structure::tracks::Track::name
readwrite

Definition at line 58 of file track.h.

◆ pianoRollTrackMixin

zrythm::structure::tracks::PianoRollTrackMixin * zrythm::structure::tracks::Track::pianoRollTrackMixin
read

Definition at line 70 of file track.h.

◆ recordableTrackMixin

zrythm::structure::tracks::RecordableTrackMixin * zrythm::structure::tracks::Track::recordableTrackMixin
read

Definition at line 69 of file track.h.

◆ type

Type zrythm::structure::tracks::Track::type
read

Definition at line 56 of file track.h.

◆ visible

bool zrythm::structure::tracks::Track::visible
readwrite

Definition at line 62 of file track.h.


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