Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
modulator_track.h
1// SPDX-FileCopyrightText: © 2019-2020, 2024-2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "structure/tracks/track.h"
7
8namespace zrythm::structure::tracks
9{
13class ModulatorTrack : public Track
14{
15 Q_OBJECT
16 QML_ELEMENT
17 QML_UNCREATABLE ("")
18
19public:
20 ModulatorTrack (FinalTrackDependencies dependencies);
21
22 // ============================================================================
23 // QML Interface
24 // ============================================================================
25
26 // ============================================================================
27
35 PluginPtrVariant insert_modulator (
36 plugins::PluginSlot::SlotNo slot,
37 plugins::PluginUuidReference modulator_id,
38 bool replace_mode,
39 bool confirm,
40 bool gen_automatables,
41 bool recalc_graph,
42 bool pub_events);
43
44 std::optional<PluginPtrVariant>
45 get_modulator (plugins::PluginSlot::SlotNo slot) const;
46
47 friend void init_from (
48 ModulatorTrack &obj,
49 const ModulatorTrack &other,
50 utils::ObjectCloneType clone_type);
51
52 auto get_modulator_macro_processors () const
53 {
54 return std::span (modulator_macro_processors_);
55 }
56
57private:
58 friend void to_json (nlohmann::json &j, const ModulatorTrack &track)
59 {
60 to_json (j, static_cast<const Track &> (track));
61 }
62 friend void from_json (const nlohmann::json &j, ModulatorTrack &track)
63 {
64 from_json (j, static_cast<Track &> (track));
65 }
66};
67}
A track that can host modulator plugins.
PluginPtrVariant insert_modulator(plugins::PluginSlot::SlotNo slot, plugins::PluginUuidReference modulator_id, bool replace_mode, bool confirm, bool gen_automatables, bool recalc_graph, bool pub_events)
Inserts and connects a Modulator to the Track.
Represents a track in the project.
Definition track.h:54
Track(Type type, PortType in_signal_type, PortType out_signal_type, TrackFeatures enabled_features, BaseTrackDependencies dependencies)
Constructor to be used by subclasses.
std::vector< utils::QObjectUniquePtr< dsp::ModulatorMacroProcessor > > modulator_macro_processors_
Modulator macros.
Definition track.h:738