Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|
Represents a track in the project. More...
#include <src/structure/tracks/track.h>
Public Types | |
enum class | Type { Instrument , Audio , Master , Chord , Marker , Modulator , AudioBus , AudioGroup , Midi , MidiBus , MidiGroup , Folder } |
The Track's type. More... | |
using | PortType = dsp::PortType |
using | PluginRegistry = gui::old_dsp::plugins::PluginRegistry |
using | PluginPtrVariant = PluginRegistry::VariantType |
using | PluginSlot = plugins::PluginSlot |
using | ArrangerObject = structure::arrangement::ArrangerObject |
using | ArrangerObjectPtrVariant |
using | ArrangerObjectRegistry = structure::arrangement::ArrangerObjectRegistry |
using | Region = structure::arrangement::Region |
using | TrackSelectionStatusGetter = std::function<bool (const TrackUuid &)> |
using | Color = zrythm::utils::Color |
using | Position = zrythm::dsp::Position |
![]() | |
using | TrackUuid = dsp::PortIdentifier::TrackUuid |
using | PluginUuid = dsp::PortIdentifier::PluginUuid |
using | PortUuid = dsp::PortIdentifier::PortUuid |
Public Member Functions | |
virtual void | init_loaded (PluginRegistry &plugin_registry, PortRegistry &port_registry)=0 |
Adds additional metadata to track members after deserialization. | |
Tracklist * | get_tracklist () const |
dsp::PortConnectionsManager * | get_port_connections_manager () const |
bool | has_piano_roll () const |
bool | should_be_visible () const |
Returns whether the track should be visible. | |
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 |
bool | is_deletable () const |
bool | is_copyable () const |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
double | get_full_visible_height (this DerivedT &&self) |
Returns the full visible height (main height + height of all visible automation tracks + height of all visible lanes). | |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
bool | multiply_heights (this DerivedT &&self, double multiplier, bool visible_only, bool check_only) |
bool | is_auditioner () const |
Whether this track is part of the SampleProcessor auditioner tracklist. | |
bool | can_be_group_target () const |
bool | is_frozen () const |
template<arrangement::FinalRegionSubclass RegionT, FinalClass SelfT> | |
void | insert_region (this SelfT &self, arrangement::ArrangerObjectUuidReference region_ref, AutomationTrack *at, std::optional< int > lane_pos, std::optional< int > idx, bool gen_name) |
Inserts a Region to the given lane or AutomationTrack of the track, at the given index. | |
void | write_audio_clip_to_pool_after_adding_audio_region (AudioClip &clip) const |
template<arrangement::FinalRegionSubclass RegionT> | |
void | add_region (this auto &self, auto region_ref, AutomationTrack *at, std::optional< int > lane_pos, bool gen_name) |
Appends a Region to the given lane or AutomationTrack of the track. | |
void | append_objects (std::vector< ArrangerObjectPtrVariant > &objects) const |
Appends all the objects in the track to objects . | |
void | unselect_all () |
Unselects all arranger objects in the track. | |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
bool | contains_uninstantiated_plugin (this DerivedT &&self) |
utils::Utf8String | get_node_name () const override |
Returns a human friendly name of the node. | |
virtual void | clear_objects () |
Removes all objects recursively from the track. | |
void | add_folder_parents (std::vector< FoldableTrack * > &parents, bool prepend) const |
Adds the track's folder parents to the given vector. | |
FoldableTrack * | get_direct_folder_parent () const |
Returns the closest foldable parent or NULL. | |
void | remove_from_folder_parents () |
Remove the track from all folders. | |
utils::Utf8String | get_name () const |
Getter for the track name. | |
bool | set_name_with_action_full (const utils::Utf8String &name) |
Internally called by set_name_with_action(). | |
void | set_name_with_action (const utils::Utf8String &name) |
Setter to be used by the UI to create an undoable action. | |
void | set_name (const Tracklist &tracklist, const utils::Utf8String &name, bool pub_events) |
Setter for the track name. | |
utils::Utf8String | get_unique_name (const Tracklist &tracklist, const utils::Utf8String &name) |
Returns a unique name for a new track based on the given name. | |
void | update_positions (bool from_ticks, bool bpm_change, dsp::FramesPerTick frames_per_tick) |
Updates the frames/ticks of each position in each child of the track recursively. | |
virtual void | get_regions_in_range (std::vector< Region * > ®ions, const dsp::Position *p1, const dsp::Position *p2) |
Returns all the regions inside the given range, or all the regions if both p1 and p2 are NULL. | |
int | get_index () const |
void | set_index (int index) |
auto | get_input_signal_type () const |
auto | get_output_signal_type () const |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
void | get_plugins (this DerivedT &&self, std::vector< zrythm::gui::old_dsp::plugins::Plugin * > &arr) |
Fills in the given array with all plugins in the track. | |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
void | activate_all_plugins (this DerivedT &&self, bool activate) |
Activate or deactivate all plugins. | |
utils::Utf8String | get_comment () const |
void | set_comment (const utils::Utf8String &comment, bool undoable) |
void | set_comment_with_action (const utils::Utf8String &comment) |
void | set_color (const Color &color, bool undoable, bool fire_events) |
Sets the track color. | |
void | set_icon (const utils::Utf8String &icon_name, bool undoable, bool fire_events) |
Sets the track icon. | |
virtual void | append_ports (std::vector< Port * > &ports, bool include_plugins) const =0 |
Appends all channel ports and optionally plugin ports to the array. | |
void | track_freeze (bool freeze) |
Freezes or unfreezes the track. | |
template<typename DerivedT> requires std::derived_from<base_type<DerivedT>, Track> && FinalClass<base_type<DerivedT>> | |
PluginPtrVariant | insert_plugin (this DerivedT &&self, PluginUuid plugin_id, plugins::PluginSlot slot, bool instantiate_plugin, bool replacing_plugin, bool moving_plugin, bool confirm, bool gen_automatables, bool recalc_graph, bool fire_events) |
Wrapper over Channel.add_plugin() and ModulatorTrack.insert_modulator(). | |
template<typename SelfT> requires ( std::derived_from<SelfT, ChannelTrack> || std::is_same_v<SelfT, ModulatorTrack>) | |
void | remove_plugin (this SelfT &self, plugins::PluginSlot slot, bool moving_plugin=false, bool deleting_plugin=true) |
Removes a plugin at the given slot from the track. | |
template<typename SelfT> requires ( std::derived_from<SelfT, ChannelTrack> || std::is_same_v<SelfT, ModulatorTrack>) | |
plugins::PluginSlot | get_plugin_slot (this const SelfT &self, const PluginUuid &plugin_id) |
bool | is_enabled () const |
bool | get_enabled () const |
bool | get_disabled () const |
void | set_enabled (bool enabled) |
void | set_enabled (bool enabled, bool trigger_undo, bool auto_select, bool fire_events) |
int | get_total_bars (const engine::session::Transport &transport, int total_bars) const |
void | set_caches (CacheType types) |
Set various caches (snapshots, track name hash, plugin input/output ports, etc). | |
void | set_port_metadata_from_owner (dsp::PortIdentifier &id, PortRange &range) const override |
Function that will be called by the Port to update the identifier's relevant members based on this port owner. | |
utils::Utf8String | get_full_designation_for_port (const dsp::PortIdentifier &id) const override |
virtual bool | get_muted () const |
virtual bool | get_listened () const |
virtual bool | get_implied_soloed () const |
Returns whether the track is not soloed on its own but its direct out (or its direct out's direct out, etc.) is soloed. | |
virtual bool | get_soloed () const |
void | set_selection_status_getter (TrackSelectionStatusGetter getter) |
void | unset_selection_status_getter () |
auto & | get_plugin_registry () const |
auto & | get_plugin_registry () |
auto & | get_port_registry () const |
auto & | get_port_registry () |
auto & | get_object_registry () const |
auto & | get_object_registry () |
auto | get_type () const |
auto | get_icon_name () const |
![]() | |
virtual nframes_t | get_single_playback_latency () const |
Returns the latency of only the given processable, without adding the previous/next latencies. | |
virtual void | prepare_for_processing (sample_rate_t sample_rate, nframes_t max_block_length) |
Called to allocate resources required for processing. | |
virtual void | process_block (EngineProcessTimeInfo time_nfo) |
virtual void | release_resources () |
Called to release resources allocated by prepare_for_processing(). | |
![]() | |
virtual void | on_control_change_event (const PortUuid &port_uuid, const dsp::PortIdentifier &id, float val) |
Will be called when a control port's value changes. | |
virtual void | on_midi_activity (const dsp::PortIdentifier &id) |
Called during processing if the MIDI port contains new MIDI events. | |
virtual bool | should_sum_data_from_backend () const |
Whether during processing, the port should sum the data from its backend buffers coming in. | |
virtual bool | should_bounce_to_master (utils::audio::BounceStep step) const |
Whether the port should add its data to the master output when bouncing. | |
virtual bool | are_events_on_midi_channel_approved (midi_byte_t channel) const |
Returns whether MIDI events on this channel on an input port should be processed (not ignored). | |
![]() | |
UuidIdentifiableObject (const Uuid &id) | |
UuidIdentifiableObject (const UuidIdentifiableObject &other)=default | |
UuidIdentifiableObject (UuidIdentifiableObject &&other)=default | |
UuidIdentifiableObject & | operator= (const UuidIdentifiableObject &other)=default |
UuidIdentifiableObject & | operator= (UuidIdentifiableObject &&other)=default |
auto | get_uuid () const |
Static Public Member Functions | |
static Fader::Type | type_get_prefader_type (const Type type) |
Returns the prefader type. | |
static constexpr bool | type_can_have_direct_out (Type type) |
static bool | type_can_have_region_type (Type type, ArrangerObject::Type region_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 bool | type_can_be_group_target (const Type type) |
Returns if the Track can be a direct route target. | |
template<typename T> | |
static consteval Type | get_type_for_class () |
static Track * | from_variant (const TrackPtrVariant &variant) |
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 void | create_with_action (Type type, const zrythm::plugins::PluginConfiguration *pl_setting, const FileDescriptor *file_descr, const dsp::Position *pos, int index, int num_tracks, int disable_track_idx, TracksReadyCallback ready_cb) |
Creates a new track with the given parameters. | |
static Track * | create_empty_at_idx_with_action (Type type, int index) |
Creates a new empty track at the given index. | |
static Track * | create_for_plugin_at_idx_w_action (Type type, const zrythm::plugins::PluginConfiguration *pl_setting, int index) |
Creates a new track for the given plugin at the given index. | |
template<typename T = Track> | |
static T * | create_for_plugin_at_idx_w_action (const zrythm::plugins::PluginConfiguration *pl_setting, int index) |
static Track * | create_empty_with_action (Type type) |
Creates a new empty track at the end of the tracklist. | |
template<typename T = Track> | |
static T * | create_empty_with_action () |
static TrackUniquePtrVariant | create_track (Type type, const utils::Utf8String &name, int pos) |
Create a track of the given type with the given name and position. | |
Data Fields | |
bool | bounce_ {} |
Set to ON during bouncing if this track should be included. | |
bool | bounce_to_master_ = false |
Whether to temporarily route the output to master (e.g., when bouncing the track on its own without its parents). | |
bool | disconnecting_ = false |
Whether currently disconnecting. | |
bool | trigger_midi_activity_ = false |
Flag to tell the UI that this channel had MIDI activity. | |
std::optional< AudioClip::Uuid > | frozen_clip_id_ |
Pool ID of the clip if track is frozen (unset if not frozen). | |
Tracklist * | tracklist_ = nullptr |
Pointer to owner tracklist, if any. | |
std::optional< TrackSelectionStatusGetter > | track_selection_status_getter_ |
Track selection status getter. | |
Static Public Attributes | |
static constexpr int | MIN_HEIGHT = 26 |
static constexpr int | DEF_HEIGHT = 52 |
Protected Member Functions | |
Track (Type type, PortType in_signal_type, PortType out_signal_type, PluginRegistry &plugin_registry, PortRegistry &port_registry, ArrangerObjectRegistry &obj_registry) | |
Constructor to be used by subclasses. | |
virtual void | set_playback_caches () |
Set the playback caches for a track. | |
void | add_region_if_in_range (const dsp::Position *p1, const dsp::Position *p2, std::vector< Region * > ®ions, Region *region) |
Protected Attributes | |
PluginRegistry & | plugin_registry_ |
PortRegistry & | port_registry_ |
arrangement::ArrangerObjectRegistry & | object_registry_ |
int | pos_ = 0 |
Position in the Tracklist. | |
Type | type_ = {} |
The type of track this is. | |
utils::Utf8String | name_ |
Track name, used in channel too. | |
utils::Utf8String | icon_name_ |
Icon name of the track. | |
bool | visible_ = true |
Track Widget created dynamically. | |
bool | filtered_ = false |
Track will be hidden if true (temporary and not serializable). | |
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. | |
Friends | |
class | Tracklist |
bool | operator< (const Track &lhs, const Track &rhs) |
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) |
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.
using zrythm::structure::tracks::Track::ArrangerObjectPtrVariant |
using zrythm::structure::tracks::Track::PluginPtrVariant = PluginRegistry::VariantType |
using zrythm::structure::tracks::Track::PortType = dsp::PortType |
using zrythm::structure::tracks::Track::TrackSelectionStatusGetter = std::function<bool (const TrackUuid &)> |
|
strong |
The Track's type.
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. |
|
protected |
Constructor to be used by subclasses.
pos | Position in the Tracklist. |
|
inline |
void zrythm::structure::tracks::Track::add_folder_parents | ( | std::vector< FoldableTrack * > & | parents, |
bool | prepend ) const |
Adds the track's folder parents to the given vector.
prepend | Whether to prepend instead of append. |
|
inline |
Appends a Region to the given lane or AutomationTrack of the track.
ZrythmException | if the insertion fails. |
void zrythm::structure::tracks::Track::append_objects | ( | std::vector< ArrangerObjectPtrVariant > & | objects | ) | const |
Appends all the objects in the track to objects
.
This only appends top-level objects. For example, region children will not be added.
objects |
|
pure virtual |
Appends all channel ports and optionally plugin ports to the array.
Implemented in zrythm::structure::tracks::AudioBusTrack, zrythm::structure::tracks::AudioGroupTrack, zrythm::structure::tracks::AudioTrack, zrythm::structure::tracks::ChordTrack, zrythm::structure::tracks::FolderTrack, zrythm::structure::tracks::InstrumentTrack, zrythm::structure::tracks::MarkerTrack, zrythm::structure::tracks::MasterTrack, zrythm::structure::tracks::MidiBusTrack, zrythm::structure::tracks::MidiGroupTrack, zrythm::structure::tracks::MidiTrack, and zrythm::structure::tracks::ModulatorTrack.
|
inline |
|
inlinevirtual |
Removes all objects recursively from the track.
Reimplemented in zrythm::structure::tracks::AudioTrack, zrythm::structure::tracks::AutomatableTrack, zrythm::structure::tracks::ChordTrack, zrythm::structure::tracks::LanedTrackImpl< TrackLaneT >, zrythm::structure::tracks::LanedTrackImpl< AudioLane >, zrythm::structure::tracks::LanedTrackImpl< MidiLane >, zrythm::structure::tracks::MarkerTrack, and zrythm::structure::tracks::PianoRollTrack.
|
inline |
|
static |
Creates a new empty track at the given index.
type | |
index | |
error |
ZrythmException | on error. |
|
inlinestatic |
Creates a new empty track at the end of the tracklist.
type |
ZrythmException | on error. |
|
inlinestatic |
|
static |
Creates a new track for the given plugin at the given index.
type | |
pl_setting | |
index | |
error |
ZrythmException | on error. |
|
staticnodiscard |
Create a track of the given type with the given name and position.
name | |
pos |
|
static |
Creates a new track with the given parameters.
disable_track_idx | Track index to disable, or -1. |
ready_cb | Callback to be called when the tracks are ready (added to the project). |
ZrythmException | on error. |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Reimplemented from IPortOwner.
|
inline |
|
inline |
|
inlinevirtual |
Returns whether the track is not soloed on its own but its direct out (or its direct out's direct out, etc.) is soloed.
Reimplemented in zrythm::structure::tracks::ChannelTrack, and zrythm::structure::tracks::FolderTrack.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in zrythm::structure::tracks::ChannelTrack.
|
inlinevirtual |
Reimplemented in zrythm::structure::tracks::ChannelTrack.
|
inline |
|
inlineoverridevirtual |
Returns a human friendly name of the node.
Implements zrythm::dsp::graph::IProcessable.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Returns all the regions inside the given range, or all the regions if both p1 and p2 are NULL.
Reimplemented in zrythm::structure::tracks::AudioTrack, zrythm::structure::tracks::AutomatableTrack, zrythm::structure::tracks::ChordTrack, zrythm::structure::tracks::LanedTrackImpl< TrackLaneT >, zrythm::structure::tracks::LanedTrackImpl< AudioLane >, zrythm::structure::tracks::LanedTrackImpl< MidiLane >, and zrythm::structure::tracks::PianoRollTrack.
|
inlinevirtual |
|
inline |
|
inlinestaticconsteval |
|
inline |
|
pure virtual |
Adds additional metadata to track members after deserialization.
Implemented in zrythm::structure::tracks::AudioBusTrack, zrythm::structure::tracks::AudioGroupTrack, zrythm::structure::tracks::AudioTrack, zrythm::structure::tracks::AutomatableTrack, zrythm::structure::tracks::ChannelTrack, zrythm::structure::tracks::ChordTrack, zrythm::structure::tracks::FolderTrack, zrythm::structure::tracks::InstrumentTrack, zrythm::structure::tracks::LanedTrackImpl< TrackLaneT >, zrythm::structure::tracks::LanedTrackImpl< AudioLane >, zrythm::structure::tracks::LanedTrackImpl< MidiLane >, zrythm::structure::tracks::MarkerTrack, zrythm::structure::tracks::MasterTrack, zrythm::structure::tracks::MidiBusTrack, zrythm::structure::tracks::MidiGroupTrack, zrythm::structure::tracks::MidiTrack, zrythm::structure::tracks::ModulatorTrack, zrythm::structure::tracks::PianoRollTrack, zrythm::structure::tracks::ProcessableTrack, and zrythm::structure::tracks::RecordableTrack.
|
inline |
Wrapper over Channel.add_plugin() and ModulatorTrack.insert_modulator().
instantiate_plugin | Whether to attempt to instantiate the plugin. |
|
inline |
Inserts a Region to the given lane or AutomationTrack of the track, at the given index.
The Region must be the main region (see ArrangerObjectInfo).
at | The AutomationTrack of this Region, if automation region. |
lane_pos | The position of the lane to add to, if applicable. |
idx | The index to insert the region at inside its parent, or nullopt to append. |
gen_name | Generate a unique region name or not. This will be 0 if the caller already generated a unique name. |
ZrythmException | if the insertion fails. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
void zrythm::structure::tracks::Track::remove_from_folder_parents | ( | ) |
Remove the track from all folders.
Used when deleting tracks.
|
inline |
void zrythm::structure::tracks::Track::set_comment | ( | const utils::Utf8String & | comment, |
bool | undoable ) |
undoable | Create an undable action. |
|
inline |
|
inline |
|
inline |
void zrythm::structure::tracks::Track::set_name | ( | const Tracklist & | tracklist, |
const utils::Utf8String & | name, | ||
bool | pub_events ) |
Setter for the track name.
If a track with that name already exists, it adds a number at the end.
Must only be called from the GTK thread.
|
inlineprotectedvirtual |
Set the playback caches for a track.
This is called by set_caches().
Reimplemented in zrythm::structure::tracks::AutomatableTrack, zrythm::structure::tracks::LanedTrackImpl< TrackLaneT >, zrythm::structure::tracks::LanedTrackImpl< AudioLane >, zrythm::structure::tracks::LanedTrackImpl< MidiLane >, and zrythm::structure::tracks::PianoRollTrack.
|
overridevirtual |
Function that will be called by the Port to update the identifier's relevant members based on this port owner.
id | The identifier to update. |
Implements IPortOwner.
|
inline |
bool zrythm::structure::tracks::Track::should_be_visible | ( | ) | const |
Returns whether the track should be visible.
Takes into account Track.visible and whether any of the track's foldable parents are folded.
void zrythm::structure::tracks::Track::track_freeze | ( | bool | freeze | ) |
Freezes or unfreezes the track.
When a track is frozen, it is bounced with effects to a temporary file in the pool, which is played back directly from disk.
When the track is unfrozen, this file will be removed from the pool and the track will be played normally again.
ZrythmException | on error. |
|
inlinestatic |
|
inlinestaticconstexpr |
|
inlinestatic |
|
inlinestatic |
|
inlinestaticconstexpr |
|
inlinestaticconsteval |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inline |
void zrythm::structure::tracks::Track::update_positions | ( | bool | from_ticks, |
bool | bpm_change, | ||
dsp::FramesPerTick | frames_per_tick ) |
Updates the frames/ticks of each position in each child of the track recursively.
from_ticks | Whether to update the positions based on ticks (true) or frames (false). |
frames_per_tick | This will be used when doing position conversions via dependency injection instead of relying on the current project's transport. |
|
friend |
|
friend |
bool zrythm::structure::tracks::Track::bounce_ {} |
bool zrythm::structure::tracks::Track::bounce_to_master_ = false |
|
protected |
|
protected |
|
staticconstexpr |
bool zrythm::structure::tracks::Track::disconnecting_ = false |
|
protected |
|
protected |
std::optional<AudioClip::Uuid> zrythm::structure::tracks::Track::frozen_clip_id_ |
|
protected |
|
protected |
|
protected |
|
staticconstexpr |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
std::optional<TrackSelectionStatusGetter> zrythm::structure::tracks::Track::track_selection_status_getter_ |
Tracklist* zrythm::structure::tracks::Track::tracklist_ = nullptr |
bool zrythm::structure::tracks::Track::trigger_midi_activity_ = false |
|
protected |
|
protected |