|
Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|


Public Member Functions | |
| int | get_num_loops (bool count_incomplete) const |
| Returns the number of loops in the ArrangerObject, optionally including incomplete ones. | |
| const auto & | get_clip_start_pos () const |
| Getter. | |
| const auto & | get_loop_start_pos () const |
| Getter. | |
| const auto & | get_loop_end_pos () const |
| Getter. | |
| void | clip_start_position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | loop_start_position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | loop_end_position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | set_loop_start_position_unvalidated (const dsp::Position &pos) |
| void | set_loop_end_position_unvalidated (const dsp::Position &pos) |
| void | set_clip_start_position_unvalidated (const dsp::Position &pos) |
| double | get_loop_length_in_ticks () const |
| Returns the length of the loop in ticks. | |
| auto | get_loop_length_in_frames () const |
| Returns the length of the loop in frames. | |
| bool | is_looped () const |
Public Member Functions inherited from zrythm::structure::arrangement::BoundedObject | |
| auto | get_end_position () const |
| Getter. | |
| void | parent_base_qproperties (QObject &derived) |
| void | end_position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | set_end_position_unvalidated (const dsp::Position &pos) |
| auto | get_length_in_ticks () const |
| Returns the length in ticks. | |
| auto | get_length_in_frames () const |
| Returns the length in frames. | |
| void | resize (bool left, ResizeType type, double ticks, bool during_ui_action) |
| Resizes the object on the left side or right side by given amount of ticks, for objects that do not have loops (currently none? | |
| template<typename SelfT> requires (FinalArrangerObjectSubclass<SelfT>) | |
| void | set_start_pos_full_size (this SelfT &self, const Position &pos, dsp::FramesPerTick frames_per_tick) |
| Sets the end position of the ArrangerObject and also sets the loop end and fade out (if object supports those) so that they are at the end. | |
| template<typename SelfT> requires (FinalArrangerObjectSubclass<SelfT>) | |
| void | set_end_pos_full_size (this SelfT &self, const dsp::Position &pos, dsp::FramesPerTick frames_per_tick) |
| Sets the end position of the ArrangerObject and also sets the loop end and fade out (if object supports those) to that position. | |
| bool | is_hit (const dsp::Position &pos, bool object_end_pos_inclusive=false) const |
| Returns whether the object is hit by the given position (local position if non-timeline object). | |
| bool | is_hit (const signed_frame_t frames, bool object_end_pos_inclusive=false) const |
| bool | is_hit_by_range (const dsp::Position &start, const dsp::Position &end, bool range_start_inclusive=true, bool range_end_inclusive=false, bool object_end_pos_inclusive=false) const |
| Returns whether the given object is hit by the given range. | |
| bool | is_hit_by_range (signed_frame_t global_frames_start, signed_frame_t global_frames_end, bool range_start_inclusive=true, bool range_end_inclusive=false, bool object_end_pos_inclusive=false) const |
| virtual bool | is_inside_range (const dsp::Position &start, const dsp::Position &end) const |
| Checks if any part of the object is hit by the given range. | |
Public Member Functions inherited from zrythm::structure::arrangement::ArrangerObject | |
| auto | get_type () const |
| virtual utils::Utf8String | gen_human_friendly_name () const |
| Generates a human readable name for the object. | |
| bool | is_start_hit_by_range (const dsp::Position &start, const dsp::Position &end, bool range_start_inclusive=true, bool range_end_inclusive=false) const |
| Returns whether the given object is hit by the given range. | |
| bool | is_start_hit_by_range (const signed_frame_t global_frames_start, const signed_frame_t global_frames_end, bool range_start_inclusive=true, bool range_end_inclusive=false) const |
| void | set_parent_on_base_qproperties (QObject &derived) |
| Set the parent on QObject's that are children of this class. | |
| auto | get_position () const |
| Getter. | |
| void | position_setter_validated (const dsp::Position &pos, dsp::TicksPerFrame ticks_per_frame) |
| The setter is for use in e.g. | |
| void | set_position_unvalidated (const dsp::Position &pos) |
| bool | is_position_valid (const dsp::Position &pos, PositionType pos_type, dsp::TicksPerFrame ticks_per_frame) const |
| Returns if the given Position is valid. | |
| bool | set_position (const dsp::Position &pos, PositionType pos_type, bool validate, dsp::TicksPerFrame ticks_per_frame) |
| Sets the given position on the object, optionally attempting to validate before. | |
| void | move (double ticks, dsp::FramesPerTick frames_per_tick) |
| Moves the object by the given amount of ticks. | |
| void | set_track_id (const TrackUuid &track_id) |
| void | set_track_id (std::optional< TrackUuid > track_id) |
| void | unset_track_id () |
| void | update_positions (bool from_ticks, bool bpm_change, dsp::FramesPerTick frames_per_tick) |
| Updates the positions in each child recursively. | |
| auto | get_track () const |
| Returns the Track this ArrangerObject is in. | |
| std::optional< TrackUuid > | get_track_id () const |
| virtual bool | validate (bool is_project, dsp::FramesPerTick frames_per_tick) const =0 |
| Validates the arranger object. | |
| virtual ArrangerObjectPtrVariant | add_clone_to_project (bool fire_events) const =0 |
| Appends the ArrangerObject to where it belongs in the project (eg, a Track), without taking into account its previous index (eg, before deletion if undoing). | |
| virtual ArrangerObjectPtrVariant | insert_clone_to_project () const =0 |
| Inserts the object where it belongs in the project (eg, a Track). | |
| std::optional< ArrangerObjectPtrVariant > | remove_from_project (bool free_obj, bool fire_events=false) |
| Removes the object (which can be obtained from find_in_project()) from its parent in the project. | |
| void | set_selection_status_getter (SelectionStatusGetter getter) |
| void | unset_selection_status_getter () |
| virtual bool | is_deletable () const |
| Returns whether the given object is deletable or not (eg, start marker). | |
Public Member Functions inherited from zrythm::utils::UuidIdentifiableObject< ArrangerObject > | |
| 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 |
Data Fields | |
| dsp::Position | clip_start_pos_ |
| Start position of the clip loop, relative to the object's start. | |
| dsp::Position | loop_start_pos_ |
| Loop start Position relative to the object's start. | |
| dsp::Position | loop_end_pos_ |
| End position of the clip loop, relative to the object's start. | |
Data Fields inherited from zrythm::structure::arrangement::BoundedObject | |
| utils::QObjectUniquePtr< PositionProxy > | end_pos_ |
| End Position, if the object has one. | |
Data Fields inherited from zrythm::structure::arrangement::ArrangerObject | |
| Flags | flags_ {} |
| Flags. | |
Protected Member Functions | |
| bool | are_members_valid (bool is_project, dsp::FramesPerTick frames_per_tick) const |
Protected Member Functions inherited from zrythm::structure::arrangement::BoundedObject | |
| bool | are_members_valid (bool is_project, dsp::FramesPerTick frames_per_tick) const |
Protected Member Functions inherited from zrythm::structure::arrangement::ArrangerObject | |
| ArrangerObject (Type type, TrackResolver track_resolver) noexcept | |
| bool | are_members_valid (bool is_project, dsp::FramesPerTick frames_per_tick) const |
| To be called by validate() implementations. | |
Friends | |
| void | init_from (LoopableObject &obj, const LoopableObject &other, utils::ObjectCloneType clone_type) |
| auto | to_json (nlohmann::json &j, const LoopableObject &object) |
| auto | from_json (const nlohmann::json &j, LoopableObject &object) |
Additional Inherited Members | |
Public Types inherited from zrythm::structure::arrangement::ArrangerObject | |
| enum class | ResizeType : basic_enum_base_type_t { Normal , Loop , Fade , Stretch , StretchTempoChange } |
| Flag used in some functions. More... | |
| enum class | Type : basic_enum_base_type_t { MidiRegion , AudioRegion , ChordRegion , AutomationRegion , MidiNote , ChordObject , ScaleObject , Marker , AutomationPoint } |
| The type of the object. More... | |
| enum class | Flags : basic_enum_base_type_t { NonProject = 1 << 0 } |
| Flags. More... | |
| enum class | PositionType : basic_enum_base_type_t { Start , End , ClipStart , LoopStart , LoopEnd , FadeIn , FadeOut } |
| using | SelectionStatusGetter = std::function<bool (const Uuid &)> |
| using | TrackUuid = structure::tracks::TrackUuid |
| using | Track = structure::tracks::Track |
| using | TrackResolver = structure::tracks::TrackResolver |
| using | TrackPtrVariant = structure::tracks::TrackPtrVariant |
| using | Position = zrythm::dsp::Position |
| using | ArrangerObjectPtr = ArrangerObject * |
Static Public Attributes inherited from zrythm::structure::arrangement::ArrangerObject | |
| static constexpr double | DEFAULT_NUDGE_TICKS = 0.1 |
Protected Attributes inherited from zrythm::structure::arrangement::ArrangerObject | |
| TrackResolver | track_resolver_ |
| utils::QObjectUniquePtr< PositionProxy > | pos_ |
| Position (or start Position if the object has length). | |
| std::optional< TrackUuid > | track_id_ |
| ID of the track this object belongs to. | |
| std::optional< SelectionStatusGetter > | selection_status_getter_ |
Definition at line 14 of file loopable_object.h.
|
inlinenoexcept |
Definition at line 17 of file loopable_object.h.
|
inline |
The setter is for use in e.g.
the digital meters whereas the set_pos func is used during arranger actions.
Definition at line 45 of file loopable_object.h.
|
inline |
Getter.
Definition at line 29 of file loopable_object.h.
|
inline |
Getter.
Definition at line 39 of file loopable_object.h.
|
inline |
Returns the length of the loop in frames.
Definition at line 101 of file loopable_object.h.
|
inline |
Returns the length of the loop in ticks.
Definition at line 93 of file loopable_object.h.
|
inline |
Getter.
Definition at line 34 of file loopable_object.h.
|
inline |
Definition at line 106 of file loopable_object.h.
|
inline |
The setter is for use in e.g.
the digital meters whereas the set_pos func is used during arranger actions.
Definition at line 69 of file loopable_object.h.
|
inline |
The setter is for use in e.g.
the digital meters whereas the set_pos func is used during arranger actions.
Definition at line 57 of file loopable_object.h.
|
inline |
Definition at line 85 of file loopable_object.h.
|
inline |
Definition at line 81 of file loopable_object.h.
|
inline |
Definition at line 77 of file loopable_object.h.
|
friend |
Definition at line 142 of file loopable_object.h.
|
friend |
Definition at line 136 of file loopable_object.h.
| dsp::Position zrythm::structure::arrangement::LoopableObject::clip_start_pos_ |
Start position of the clip loop, relative to the object's start.
The first time the object plays it will start playing from the this position and then loop to loop_start_pos_.
Definition at line 156 of file loopable_object.h.
| dsp::Position zrythm::structure::arrangement::LoopableObject::loop_end_pos_ |
End position of the clip loop, relative to the object's start.
Once this is reached, the clip will go back to loop_start_pos_.
Definition at line 166 of file loopable_object.h.
| dsp::Position zrythm::structure::arrangement::LoopableObject::loop_start_pos_ |
Loop start Position relative to the object's start.
Definition at line 159 of file loopable_object.h.