20class ArrangerObjectCreator :
public QObject
24 QML_UNCREATABLE (
"One instance per project")
27 explicit ArrangerObjectCreator (
32 QObject * parent =
nullptr)
33 : QObject (parent), arranger_object_factory_ (arranger_object_factory),
34 snap_grid_timeline_ (snap_grid_timeline),
35 snap_grid_editor_ (snap_grid_editor), undo_stack_ (undo_stack)
48 structure::arrangement::TempoObject::CurveType curveType,
52 addTimeSignatureObject (
86 dsp::FileAudioSourceUuidReference clip_id,
87 units::precise_tick_t start_ticks);
92 units::precise_tick_t start_ticks);
94 structure::arrangement::ArrangerObjectUuidReference
95 add_audio_clip_for_recording (
100 units::precise_tick_t start_ticks);
102 structure::arrangement::ArrangerObjectUuidReference
103 add_midi_clip_for_recording (
106 units::precise_tick_t start_ticks);
110 units::precise_tick_t startTicks,
111 structure::arrangement::MidiControlEvent::EventType type,
119 const QString &absPath,
123 addAudioClipToClipSlotFromFile (
126 const QString &absPath);
130 const QString &absPath);
154 const QString &absolutePath,
171 const int chordIndex);
176 dsp::MusicalNote rootNote,
177 dsp::ChordType chordType,
178 dsp::ChordAccent chordAccent,
180 dsp::MusicalNote bassNote,
184 addChordObjectFromDescriptor (
196 QVariantList chordObjects,
197 dsp::MusicalNote rootNote,
198 dsp::ChordType chordType,
199 dsp::ChordAccent chordAccent,
201 dsp::MusicalNote bassNote,
208 void add_laned_object (
211 structure::arrangement::ArrangerObjectUuidReference obj_ref);
213 void add_object_to_clip_slot (
216 structure::arrangement::ArrangerObjectUuidReference obj_ref);
226 template <structure::arrangement::EditorObject ChildT>
227 auto add_editor_object (
229 units::precise_tick_t startTicks,
230 std::variant<int, double> value) -> ChildT *
233 arranger_object_factory_.create_editor_object<ChildT> (startTicks, value);
236 auto obj = obj_ref.template get_object_as<ChildT> ();
Q_INVOKABLE structure::arrangement::MidiClip * addMidiClipFromMidiFile(structure::tracks::Track *track, structure::tracks::TrackLane *lane, const QString &absolutePath, double startTicks, int midiTrackIndex)
Creates a MIDI clip at lane from MIDI file path abs_path starting at startTicks.
Q_INVOKABLE structure::arrangement::MidiClip * addMidiClipFromChordDescriptor(structure::tracks::Track *track, structure::tracks::TrackLane *lane, const dsp::ChordDescriptor &descr, double startTicks)
Creates a MIDI clip at lane from the given descr starting at startTicks.
Q_INVOKABLE void editChordObjectsDescriptor(QVariantList chordObjects, dsp::MusicalNote rootNote, dsp::ChordType chordType, dsp::ChordAccent chordAccent, bool hasBass, dsp::MusicalNote bassNote, int inversion)
Sets the descriptor of one or more chord objects to the given fields.