Zrythm v2.0.0-alpha.1
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 : uint8_t {
  Instrument , Audio , Master , Chord ,
  Marker , Modulator , AudioBus , AudioGroup ,
  Midi , MidiBus , MidiGroup , Folder
}
using PluginUuid = plugins::Plugin::Uuid
using PortType = dsp::PortType
using ArrangerObject = structure::arrangement::ArrangerObject
using ArrangerObjectPtrVariant
using Color = utils::Color
Public Types inherited from zrythm::utils::UuidIdentifiableObject< Track >
using uuid_base_type
 Exposes the CRTP parameter for concept checking.

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
dsp::ProcessorParameterrecordingParam () const
dsp::ProcessorParametermonitorParam () const
PianoRollTrackMixinpianoRollTrackMixin () const
bool clipLauncherMode () const
void setClipLauncherMode (bool mode)
Q_SIGNAL void clipLauncherModeChanged (bool mode)
dsp::TimebaseProvider * timebaseProvider ()
PlaybackCacheActivityTrackerplaybackCacheActivityTracker () const
dsp::MidiPorttrackProcessorMidiOut () const
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
void set_default_name ()
 Sets a default name for this track (based on its type).
template<arrangement::ClipObject ClipT>
auto generate_name_for_clip (const ClipT &clip, 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 input_signal_type () const
auto output_signal_type () const
uint8_t get_midi_ch (const arrangement::MidiClip &midi_clip) const
 Returns the MIDI channel that this clip should be played on, starting from 1.
void collect_plugins (std::vector< plugins::PluginUuidReference > &plugins) const
 Fills in the given array with all plugins in the track.
utils::Utf8String get_full_designation_for_port (const dsp::Port &port) const
void generate_basic_automation_tracks ()
 Adds basic automation tracks.
auto & get_registry () const
auto & get_registry ()
TrackProcessorget_track_processor () const
auto get_icon_name () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< Track >
 UuidIdentifiableObject (QObject *parent=nullptr)
auto get_uuid () const
Public Member Functions inherited from zrythm::utils::UuidIdentifiableBase
 UuidIdentifiableBase (QObject *parent=nullptr)
 UuidIdentifiableBase (const QUuid &id, QObject *parent=nullptr)
QUuid raw_uuid () const

Static Public Member Functions

static bool type_can_have_clip_type (Type type, ArrangerObject::Type clip_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 clips 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 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, std::optional< PortType > in_signal_type, std::optional< PortType > out_signal_type, TrackFeatures enabled_features, BaseTrackDependencies dependencies)
 Constructor to be used by subclasses.
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 Member Functions inherited from zrythm::utils::UuidIdentifiableBase
void set_raw_uuid (const QUuid &id)

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.
std::optional< PortType > in_signal_type_
 The input signal type (eg audio bus tracks have audio input signals).
std::optional< 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< PianoRollTrackMixinpiano_roll_track_mixin_
utils::QObjectUniquePtr< utils::PlaybackCacheSchedulerplayable_content_cache_request_debouncer_
 Debouncer/scheduler of audio/MIDI cache requests.
bool clip_launcher_mode_ {}
utils::QObjectUniquePtr< PlaybackCacheActivityTrackerplayback_cache_activity_tracker_
utils::QObjectUniquePtr< dsp::TimebaseProvider > timebase_provider_

Properties

Type type
zrythm::structure::tracks::AutomationTracklistautomationTracklist
QString name
QColor color
QString comment
QString icon
bool visible
bool enabled
bool isDeletable
double height
double fullVisibleHeight
zrythm::structure::tracks::Channelchannel
zrythm::plugins::PluginGroupmodulators
zrythm::structure::tracks::TrackLaneListlanes
zrythm::dsp::ProcessorParameterrecordingParam
zrythm::dsp::ProcessorParametermonitorParam
zrythm::structure::tracks::PianoRollTrackMixinpianoRollTrackMixin
bool clipLauncherMode
zrythm::dsp::timebase::TimebaseProvidertimebaseProvider
zrythm::structure::tracks::PlaybackCacheActivityTrackerplaybackCacheActivityTracker
zrythm::dsp::MidiPorttrackProcessorMidiOut

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 59 of file track.h.

Member Typedef Documentation

◆ ArrangerObject

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

Definition at line 89 of file track.h.

◆ ArrangerObjectPtrVariant

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

Definition at line 90 of file track.h.

◆ Color

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

Definition at line 92 of file track.h.

◆ PluginUuid

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

Definition at line 87 of file track.h.

◆ PortType

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

Definition at line 88 of file track.h.

Member Enumeration Documentation

◆ TrackFeatures

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

Definition at line 300 of file track.h.

◆ Type

enum class zrythm::structure::tracks::Track::Type : uint8_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 94 of file track.h.

Member Function Documentation

◆ automationTracklist()

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

Definition at line 341 of file track.h.

◆ can_be_group_target()

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

Definition at line 487 of file track.h.

◆ channel()

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

Definition at line 430 of file track.h.

◆ clipLauncherMode()

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

Definition at line 444 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 596 of file track.h.

◆ color()

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

Definition at line 358 of file track.h.

◆ comment()

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

Definition at line 369 of file track.h.

◆ enabled()

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

Definition at line 392 of file track.h.

◆ fullVisibleHeight()

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

Definition at line 414 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_clip()

template<arrangement::ClipObject ClipT>
auto zrythm::structure::tracks::Track::generate_name_for_clip ( const ClipT & clip,
AutomationTrack * automation_track = nullptr )
inline

Definition at line 495 of file track.h.

◆ get_icon_name()

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

Definition at line 566 of file track.h.

◆ get_name()

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

Getter for the track name.

Definition at line 521 of file track.h.

◆ get_registry() [1/2]

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

Definition at line 562 of file track.h.

◆ get_registry() [2/2]

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

Definition at line 561 of file track.h.

◆ get_track_processor()

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

Definition at line 564 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 263 of file track.h.

◆ has_automation()

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

Definition at line 477 of file track.h.

◆ has_piano_roll()

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

Definition at line 320 of file track.h.

◆ height()

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

Definition at line 402 of file track.h.

◆ icon()

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

Definition at line 417 of file track.h.

◆ input_signal_type()

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

Definition at line 523 of file track.h.

◆ is_audio()

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

Definition at line 330 of file track.h.

◆ is_audio_bus()

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

Definition at line 325 of file track.h.

◆ is_audio_group()

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

Definition at line 323 of file track.h.

◆ is_chord()

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

Definition at line 328 of file track.h.

◆ is_copyable()

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

Definition at line 476 of file track.h.

◆ is_deletable()

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

Definition at line 475 of file track.h.

◆ is_folder()

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

Definition at line 322 of file track.h.

◆ is_instrument()

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

Definition at line 331 of file track.h.

◆ is_marker()

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

Definition at line 329 of file track.h.

◆ is_master()

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

Definition at line 333 of file track.h.

◆ is_midi()

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

Definition at line 332 of file track.h.

◆ is_midi_bus()

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

Definition at line 326 of file track.h.

◆ is_midi_group()

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

Definition at line 324 of file track.h.

◆ is_modulator()

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

Definition at line 327 of file track.h.

◆ lanes()

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

Definition at line 434 of file track.h.

◆ modulators()

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

Definition at line 432 of file track.h.

◆ name()

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

Definition at line 346 of file track.h.

◆ output_signal_type()

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

Definition at line 524 of file track.h.

◆ pianoRollTrackMixin()

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

Definition at line 439 of file track.h.

◆ playbackCacheActivityTracker()

PlaybackCacheActivityTracker * zrythm::structure::tracks::Track::playbackCacheActivityTracker ( ) const
inlinenodiscard

Definition at line 455 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.

◆ setColor()

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

Definition at line 359 of file track.h.

◆ setComment()

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

Definition at line 370 of file track.h.

◆ setEnabled()

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

Definition at line 393 of file track.h.

◆ setHeight()

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

Definition at line 403 of file track.h.

◆ setIcon()

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

Definition at line 418 of file track.h.

◆ setName()

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

Definition at line 347 of file track.h.

◆ setVisible()

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

Definition at line 382 of file track.h.

◆ timebaseProvider()

dsp::TimebaseProvider * zrythm::structure::tracks::Track::timebaseProvider ( )
inline

Definition at line 448 of file track.h.

◆ type()

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

Definition at line 339 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 243 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 249 of file track.h.

◆ type_can_have_clip_type()

bool zrythm::structure::tracks::Track::type_can_have_clip_type ( Type type,
ArrangerObject::Type clip_type )
inlinestatic

Definition at line 164 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 258 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 231 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 204 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 223 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 clips in tracks from type1 can be moved to type2.

Definition at line 213 of file track.h.

◆ type_is_copyable()

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

Definition at line 187 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 196 of file track.h.

◆ type_is_foldable()

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

Definition at line 181 of file track.h.

◆ visible()

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

Definition at line 381 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 707 of file track.h.

◆ base_dependencies_

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

Definition at line 650 of file track.h.

◆ channel_

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

Channel for this track, if any.

Definition at line 722 of file track.h.

◆ clip_launcher_mode_

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

Definition at line 741 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 682 of file track.h.

◆ comment_

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

User comments.

Definition at line 695 of file track.h.

◆ DEF_HEIGHT

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

Definition at line 161 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 675 of file track.h.

◆ features_

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

Definition at line 655 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 702 of file track.h.

◆ icon_name_

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

Icon name of the track.

Definition at line 661 of file track.h.

◆ in_signal_type_

std::optional<PortType> zrythm::structure::tracks::Track::in_signal_type_
protected

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

Definition at line 687 of file track.h.

◆ lanes_

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

Definition at line 731 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 667 of file track.h.

◆ MIN_HEIGHT

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

Definition at line 160 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 729 of file track.h.

◆ modulators_

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

Modulators.

Definition at line 725 of file track.h.

◆ name_

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

Track name, used in channel too.

Definition at line 658 of file track.h.

◆ out_signal_type_

std::optional<PortType> zrythm::structure::tracks::Track::out_signal_type_
protected

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

Definition at line 692 of file track.h.

◆ piano_roll_track_mixin_

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

Definition at line 733 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 739 of file track.h.

◆ playback_cache_activity_tracker_

utils::QObjectUniquePtr<PlaybackCacheActivityTracker> zrythm::structure::tracks::Track::playback_cache_activity_tracker_
protected

Definition at line 743 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 717 of file track.h.

◆ timebase_provider_

utils::QObjectUniquePtr<dsp::TimebaseProvider> zrythm::structure::tracks::Track::timebase_provider_
protected

Definition at line 745 of file track.h.

◆ type_

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

The type of track this is.

Definition at line 653 of file track.h.

◆ visible_

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

Whole Track is visible or not.

Definition at line 664 of file track.h.

Property Documentation

◆ automationTracklist

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

Definition at line 63 of file track.h.

◆ channel

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

Definition at line 73 of file track.h.

◆ clipLauncherMode

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

Definition at line 79 of file track.h.

◆ color

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

Definition at line 65 of file track.h.

◆ comment

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

Definition at line 66 of file track.h.

◆ enabled

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

Definition at line 69 of file track.h.

◆ fullVisibleHeight

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

Definition at line 72 of file track.h.

◆ height

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

Definition at line 71 of file track.h.

◆ icon

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

Definition at line 67 of file track.h.

◆ isDeletable

bool zrythm::structure::tracks::Track::isDeletable
read

Definition at line 70 of file track.h.

◆ lanes

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

Definition at line 75 of file track.h.

◆ modulators

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

Definition at line 74 of file track.h.

◆ monitorParam

zrythm::dsp::ProcessorParameter * zrythm::structure::tracks::Track::monitorParam
read

Definition at line 77 of file track.h.

◆ name

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

Definition at line 64 of file track.h.

◆ pianoRollTrackMixin

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

Definition at line 78 of file track.h.

◆ playbackCacheActivityTracker

zrythm::structure::tracks::PlaybackCacheActivityTracker * zrythm::structure::tracks::Track::playbackCacheActivityTracker
read

Definition at line 81 of file track.h.

◆ recordingParam

zrythm::dsp::ProcessorParameter * zrythm::structure::tracks::Track::recordingParam
read

Definition at line 76 of file track.h.

◆ timebaseProvider

zrythm::dsp::timebase::TimebaseProvider * zrythm::structure::tracks::Track::timebaseProvider
read

Definition at line 80 of file track.h.

◆ trackProcessorMidiOut

zrythm::dsp::MidiPort * zrythm::structure::tracks::Track::trackProcessorMidiOut
read

Definition at line 82 of file track.h.

◆ type

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

Definition at line 62 of file track.h.

◆ visible

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

Definition at line 68 of file track.h.


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