Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
command.hpp
Go to the documentation of this file.
1#pragma once
2
7
8#include <cstddef>
9#include <cstdint>
10#include <optional>
11#include <string>
12#include <variant>
13#include <vector>
14
15namespace pulp::timeline {
16
20
22struct WriterId {
23 std::uint64_t value = 0;
25 constexpr bool valid() const noexcept {
26 return value != 0;
27 }
28 constexpr auto operator<=>(const WriterId&) const = default;
29};
30
32struct CommandId {
34 std::uint64_t sequence = 0;
36 constexpr bool valid() const noexcept {
37 return writer.valid() && sequence != 0;
38 }
39 constexpr auto operator<=>(const CommandId&) const = default;
40};
41
45 std::uint64_t sequence = 0;
47 constexpr bool valid() const noexcept {
48 return writer.valid() && sequence != 0;
49 }
50 constexpr auto operator<=>(const TransactionId&) const = default;
51};
52
55 std::uint64_t value = 0;
56 constexpr auto operator<=>(const DocumentRevision&) const = default;
57};
58
62 std::uint64_t sequence = 0;
64 constexpr bool valid() const noexcept {
65 return writer.valid() && sequence != 0;
66 }
67 constexpr auto operator<=>(const UndoGroupId&) const = default;
68};
69
79enum class GesturePhase : std::uint8_t { Single, Begin, Update, End, Cancel };
80
87
94
101
108
117
127
146 std::vector<NoteEvent> expected;
147 std::vector<NoteEvent> replacement;
148 std::vector<NoteModifier> expected_modifiers;
149 std::vector<NoteModifier> replacement_modifiers;
150};
151
171 std::vector<NoteEvent> expected;
172 std::vector<NoteEvent> replacement;
173};
174
190 std::vector<NoteEvent> notes;
192 std::vector<NoteModifier> modifiers;
193};
194
211
220
226
232
240
245
254
261
269
277
285
295
301 std::vector<TakeCompSegment> expected;
302 std::vector<TakeCompSegment> replacement;
303};
304
309 std::optional<TrackFreeze> expected;
310 std::optional<TrackFreeze> replacement;
311};
312
319
333
339
345
351
357
364
369 // Empty appends. An inverse names the item that originally followed the
370 // removed scene so undo restores authored order exactly.
371 std::optional<ItemId> before_scene_id = std::nullopt;
372};
373
379
385 // Empty appends. See InsertScene::before_scene_id.
386 std::optional<ItemId> before_slot_id = std::nullopt;
387};
388
395
400
405 // Complete old -> new mapping for every identity owned by the source
406 // sequence. Canonical order is ascending by old id.
407 std::vector<std::pair<ItemId, ItemId>> id_remap;
408};
409
414
423
431
436 // Empty appends. See InsertScene::before_scene_id.
437 std::optional<ItemId> before_track_id = std::nullopt;
438};
439
445
453
463struct MoveTrack {
466 std::optional<ItemId> expected_before_track_id = std::nullopt;
467 std::optional<ItemId> replacement_before_track_id = std::nullopt;
468};
469
481
491
501 std::optional<ItemId> expected_before_device_id = std::nullopt;
503 std::optional<ItemId> replacement_before_device_id = std::nullopt;
504};
505
519
529 std::optional<ContentHash> expected;
531 std::optional<ContentHash> replacement;
532};
533
550
566
587
597 std::optional<TuningReference> expected;
599 std::optional<TuningReference> replacement;
600};
601
612 std::optional<TuningReference> expected;
614 std::optional<TuningReference> replacement;
615};
616
633
646
660
680
690
703
721
747
760
774
798
800using Command = std::variant<
813
819
831
838build_diverge_transaction(const Project& project, ItemLocation clip, TransactionId transaction_id,
839 DocumentRevision expected_revision, CommandId clone_command_id,
840 CommandId retarget_command_id,
841 std::optional<UndoGroupId> undo_group = std::nullopt);
842
844bool equivalent(const ClipTimeRange& lhs, const ClipTimeRange& rhs) noexcept;
846bool equivalent(const Clip& lhs, const Clip& rhs) noexcept;
848bool equivalent(const AutomationLane& lhs, const AutomationLane& rhs) noexcept;
850bool equivalent(const TakeLane& lhs, const TakeLane& rhs) noexcept;
852bool equivalent(const Command& lhs, const Command& rhs) noexcept;
854bool equivalent(const Transaction& lhs, const Transaction& rhs) noexcept;
856std::size_t retained_size(const Command& command) noexcept;
858std::size_t retained_size(const Transaction& transaction) noexcept;
859
861
862} // namespace pulp::timeline
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Definition compiled_meter_map.hpp:46
Definition compiled_tempo_map.hpp:44
Immutable ownership of one authored automation curve and its logical target.
Definition automation_lane.hpp:72
Immutable chord/scale context lane owned by a sequence.
Definition model.hpp:386
Immutable identity-bearing placement of one ClipContent value.
Definition clip.hpp:466
Immutable intensity context lane owned by a sequence.
Definition model.hpp:452
Immutable sequence-owned swing, timing-offset, and accent context.
Definition model.hpp:596
Immutable root of a Timeline document and its monotonic identity domain.
Definition model.hpp:1079
Immutable identity-bearing arrangement with tracks, annotations, context, and launch scenes.
Definition model.hpp:692
Immutable alternate recording lane owned by a Track.
Definition recording.hpp:103
Immutable sample-anchored recording take referencing a project media asset.
Definition recording.hpp:29
Immutable identity-bearing arrangement track.
Definition model.hpp:83
GesturePhase
Lifecycle position of a transaction within an interactive gesture.
Definition command.hpp:79
bool equivalent(const ClipTimeRange &lhs, const ClipTimeRange &rhs) noexcept
Compares time ranges by authored value rather than storage representation.
std::size_t retained_size(const Command &command) noexcept
Returns the retained heap-byte estimate used for command/journal limits.
std::variant< InsertClip, RemoveClip, InsertAutomationLane, RemoveAutomationLane, MoveClip, SetNoteVelocity, ReplaceNoteContent, SetClipPlaybackProperties, SetTempoMap, SetMeterMap, CreateAsset, RemoveAsset, InsertTakeLane, RemoveTakeLane, SetRecordArm, InsertTake, RemoveTake, SetActiveTakeLane, SetTakeComp, SetTrackFreeze, InsertMarker, RemoveMarker, InsertRegion, RemoveRegion, SetChordScaleLane, SetGroove, InsertScene, RemoveScene, InsertSlot, RemoveSlot, InsertSequence, CloneSequence, RemoveSequence, SetClipSequenceRef, SetTrackMixer, InsertTrack, RemoveTrack, SetTrackName, MoveTrack, SetNoteEvents, InsertNotes, RemoveNotes, InsertDevice, RemoveDevice, MoveDevice, RetargetDevice, SetDeviceState, SetDynamicsLane, InsertMidiExpressionLane, RemoveMidiExpressionLane, SetMidiExpressionLanePoints, SetProjectTuning, SetTrackTuning, SetRegion, InsertModulator, RemoveModulator, SetModulator, InsertMacro, RemoveMacro, SetMacro, SetMacroValue, InsertModulationRoute, RemoveModulationRoute, SetModulationRoute > Command
Exhaustive set of durable Timeline document mutations.
Definition command.hpp:800
runtime::Result< Transaction, ModelError > build_diverge_transaction(const Project &project, ItemLocation clip, TransactionId transaction_id, DocumentRevision expected_revision, CommandId clone_command_id, CommandId retarget_command_id, std::optional< UndoGroupId > undo_group=std::nullopt)
Builds the atomic clone-and-retarget transaction used to diverge a sequence reference.
@ Update
Definition command.hpp:79
@ Begin
Definition command.hpp:79
@ Single
Definition command.hpp:79
@ End
Definition command.hpp:79
@ Cancel
Definition command.hpp:79
std::variant< MusicalTimeRange, AbsoluteTimeRange > ClipTimeRange
Exhaustive authored clip-placement domains.
Definition clip.hpp:224
Definition program_compiler.hpp:18
Clip-level audio controls.
Definition clip.hpp:215
Clones a sequence using an explicit, complete owned-identity mapping.
Definition command.hpp:402
ItemId source_sequence_id
Definition command.hpp:403
ItemId cloned_sequence_id
Definition command.hpp:404
std::vector< std::pair< ItemId, ItemId > > id_remap
Definition command.hpp:407
One command paired with its writer-scoped idempotency identity.
Definition command.hpp:815
Command command
Definition command.hpp:817
CommandId id
Definition command.hpp:816
Writer-scoped, monotonically assigned command identity.
Definition command.hpp:32
constexpr auto operator<=>(const CommandId &) const =default
constexpr bool valid() const noexcept
Returns whether both the writer and sequence identities are nonzero.
Definition command.hpp:36
std::uint64_t sequence
Definition command.hpp:34
WriterId writer
Definition command.hpp:33
Adds one sealed recorded or imported media asset.
Definition command.hpp:237
MediaAsset asset
Definition command.hpp:238
Authored device configuration excluding placement identity and opaque state.
Definition device_placement.hpp:54
Durable declaration for one logical placement in a Track device chain.
Definition device_placement.hpp:117
Monotonic document snapshot revision used for optimistic admission.
Definition command.hpp:54
constexpr auto operator<=>(const DocumentRevision &) const =default
std::uint64_t value
Definition command.hpp:55
Inserts an automation lane into a track.
Definition command.hpp:96
ItemId track_id
Definition command.hpp:98
AutomationLane lane
Definition command.hpp:99
ItemId sequence_id
Definition command.hpp:97
Inserts an identity-bearing clip into a track.
Definition command.hpp:82
Clip clip
Definition command.hpp:85
ItemId sequence_id
Definition command.hpp:83
ItemId track_id
Definition command.hpp:84
Inserts a typed device declaration into a track's authored chain.
Definition command.hpp:471
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:473
ItemId track_id
Track receiving the placement.
Definition command.hpp:475
DevicePlacement placement
Complete typed declaration to insert.
Definition command.hpp:477
std::optional< ItemId > before_device_id
Authored successor, or empty to append.
Definition command.hpp:479
Inserts a track-owned macro control.
Definition command.hpp:682
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:684
ItemId track_id
Track that will own the macro.
Definition command.hpp:686
MacroControl macro
Complete macro declaration, carrying its own identity.
Definition command.hpp:688
Inserts a sequence-owned marker identity.
Definition command.hpp:335
ItemId sequence_id
Definition command.hpp:336
SequenceMarker marker
Definition command.hpp:337
Inserts a controller/expression lane into a MIDI clip.
Definition command.hpp:540
ItemId clip_id
MIDI clip the lane joins.
Definition command.hpp:546
ItemId sequence_id
Sequence owning the track that owns the clip.
Definition command.hpp:542
ItemId track_id
Track owning the clip.
Definition command.hpp:544
MidiExpressionLane lane
Lane to insert, with its identity, address, and authored points.
Definition command.hpp:548
Inserts one authored source-to-parameter connection.
Definition command.hpp:752
ItemId track_id
Track that will own the route.
Definition command.hpp:756
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:754
ModulationRoute route
Complete route declaration, carrying its own identity.
Definition command.hpp:758
Inserts a track-owned modulation source.
Definition command.hpp:638
Modulator modulator
Complete modulator declaration, carrying its own identity.
Definition command.hpp:644
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:640
ItemId track_id
Track that will own the modulator.
Definition command.hpp:642
Inserts a set of identity-bearing notes into one MIDI clip.
Definition command.hpp:182
ItemId track_id
Track containing the target MIDI clip.
Definition command.hpp:186
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:184
ItemId clip_id
MIDI clip that receives the notes.
Definition command.hpp:188
std::vector< NoteEvent > notes
Identity-bearing note values to insert.
Definition command.hpp:190
std::vector< NoteModifier > modifiers
Optional modifiers attached only to notes in this insertion.
Definition command.hpp:192
Inserts a sequence-owned region identity.
Definition command.hpp:347
ItemId sequence_id
Definition command.hpp:348
SequenceRegion region
Definition command.hpp:349
Inserts a scene at an authored position in a sequence.
Definition command.hpp:366
ItemId sequence_id
Definition command.hpp:367
std::optional< ItemId > before_scene_id
Definition command.hpp:371
Scene scene
Definition command.hpp:368
Inserts a complete sequence and its owned identity subtree.
Definition command.hpp:397
Sequence sequence
Definition command.hpp:398
Inserts a slot at an authored position in a scene.
Definition command.hpp:381
std::optional< ItemId > before_slot_id
Definition command.hpp:386
ItemId scene_id
Definition command.hpp:383
Slot slot
Definition command.hpp:384
ItemId sequence_id
Definition command.hpp:382
Inserts one take lane and its owned take-identity subtree.
Definition command.hpp:249
ItemId track_id
Definition command.hpp:251
TakeLane lane
Definition command.hpp:252
ItemId sequence_id
Definition command.hpp:250
Inserts one take into an existing take lane.
Definition command.hpp:263
ItemId sequence_id
Definition command.hpp:264
Take take
Definition command.hpp:267
ItemId track_id
Definition command.hpp:265
ItemId lane_id
Definition command.hpp:266
Inserts a track and its complete owned identity subtree at an authored position.
Definition command.hpp:433
Track track
Definition command.hpp:435
std::optional< ItemId > before_track_id
Definition command.hpp:437
ItemId sequence_id
Definition command.hpp:434
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19
Canonical ownership and ancestor coordinates for one project identity.
Definition model.hpp:1012
A track-owned named control that a performer sets and that drives parameters through ordinary modulat...
Definition modulation.hpp:129
Project-owned sealed media metadata.
Definition clip.hpp:140
One controller stream's authored points, ordered by (position, id).
Definition midi_lane.hpp:90
One authored source-to-parameter connection.
Definition modulation.hpp:209
A track-owned generator of modulation signal.
Definition modulation.hpp:109
Replaces a clip's time range under an exact optimistic-value gate.
Definition command.hpp:110
ItemId clip_id
Definition command.hpp:113
ItemId sequence_id
Definition command.hpp:111
ClipTimeRange replacement_range
Definition command.hpp:115
ItemId track_id
Definition command.hpp:112
ClipTimeRange expected_range
Definition command.hpp:114
Moves a device under an exact optimistic authored-position gate.
Definition command.hpp:493
std::optional< ItemId > replacement_before_device_id
Replacement successor, or empty to move last.
Definition command.hpp:503
std::optional< ItemId > expected_before_device_id
Required current successor, or empty when currently last.
Definition command.hpp:501
ItemId device_id
Placement identity to move.
Definition command.hpp:499
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:495
ItemId track_id
Track owning the placement.
Definition command.hpp:497
Moves a track in authored order under an exact optimistic-position gate.
Definition command.hpp:463
std::optional< ItemId > replacement_before_track_id
Definition command.hpp:467
ItemId track_id
Definition command.hpp:465
ItemId sequence_id
Definition command.hpp:464
std::optional< ItemId > expected_before_track_id
Definition command.hpp:466
Removes a project-owned media asset by identity.
Definition command.hpp:242
ItemId asset_id
Definition command.hpp:243
Removes an automation lane by identity.
Definition command.hpp:103
ItemId lane_id
Definition command.hpp:106
ItemId track_id
Definition command.hpp:105
ItemId sequence_id
Definition command.hpp:104
Removes a clip by its owning coordinates and identity.
Definition command.hpp:89
ItemId clip_id
Definition command.hpp:92
ItemId sequence_id
Definition command.hpp:90
ItemId track_id
Definition command.hpp:91
Removes a device declaration by identity.
Definition command.hpp:483
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:485
ItemId device_id
Placement identity to remove.
Definition command.hpp:489
ItemId track_id
Track owning the placement.
Definition command.hpp:487
Removes a track-owned macro control by identity.
Definition command.hpp:695
ItemId macro_id
Identity of the macro to remove.
Definition command.hpp:701
ItemId track_id
Track owning the macro.
Definition command.hpp:699
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:697
Removes a sequence-owned marker by identity.
Definition command.hpp:341
ItemId marker_id
Definition command.hpp:343
ItemId sequence_id
Definition command.hpp:342
Removes a controller/expression lane from a MIDI clip by identity.
Definition command.hpp:556
ItemId sequence_id
Sequence owning the track that owns the clip.
Definition command.hpp:558
ItemId clip_id
MIDI clip the lane leaves.
Definition command.hpp:562
ItemId lane_id
Identity of the lane to remove.
Definition command.hpp:564
ItemId track_id
Track owning the clip.
Definition command.hpp:560
Removes one authored connection by identity.
Definition command.hpp:766
ItemId track_id
Track owning the route.
Definition command.hpp:770
ItemId route_id
Identity of the route to remove.
Definition command.hpp:772
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:768
Removes a track-owned modulation source by identity.
Definition command.hpp:652
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:654
ItemId track_id
Track owning the modulator.
Definition command.hpp:656
ItemId modulator_id
Identity of the modulator to remove.
Definition command.hpp:658
Removes a named set of notes under an exact optimistic-value gate.
Definition command.hpp:201
std::vector< NoteEvent > expected
Exact current note values whose identities are removed.
Definition command.hpp:209
ItemId track_id
Track containing the target MIDI clip.
Definition command.hpp:205
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:203
ItemId clip_id
MIDI clip from which the notes are removed.
Definition command.hpp:207
Removes a sequence-owned region by identity.
Definition command.hpp:353
ItemId sequence_id
Definition command.hpp:354
ItemId region_id
Definition command.hpp:355
Removes a scene and its owned slots by identity.
Definition command.hpp:375
ItemId scene_id
Definition command.hpp:377
ItemId sequence_id
Definition command.hpp:376
Removes a sequence and its owned identity subtree.
Definition command.hpp:411
ItemId sequence_id
Definition command.hpp:412
Removes a slot from a scene by identity.
Definition command.hpp:390
ItemId scene_id
Definition command.hpp:392
ItemId sequence_id
Definition command.hpp:391
ItemId slot_id
Definition command.hpp:393
Removes a take lane and its owned take identities.
Definition command.hpp:256
ItemId track_id
Definition command.hpp:258
ItemId sequence_id
Definition command.hpp:257
ItemId lane_id
Definition command.hpp:259
Removes one take from an existing take lane.
Definition command.hpp:271
ItemId track_id
Definition command.hpp:273
ItemId lane_id
Definition command.hpp:274
ItemId take_id
Definition command.hpp:275
ItemId sequence_id
Definition command.hpp:272
Removes a track and its complete owned identity subtree by identity.
Definition command.hpp:441
ItemId track_id
Definition command.hpp:443
ItemId sequence_id
Definition command.hpp:442
Replaces the complete note event set of one note clip.
Definition command.hpp:142
std::vector< NoteModifier > expected_modifiers
Definition command.hpp:148
std::vector< NoteModifier > replacement_modifiers
Definition command.hpp:149
std::vector< NoteEvent > replacement
Definition command.hpp:147
ItemId track_id
Definition command.hpp:144
ItemId sequence_id
Definition command.hpp:143
std::vector< NoteEvent > expected
Definition command.hpp:146
ItemId clip_id
Definition command.hpp:145
Replaces device kind, binding, slot, stage, bypass, and wet/dry atomically.
Definition command.hpp:507
DeviceConfiguration replacement
Replacement configuration.
Definition command.hpp:517
ItemId device_id
Placement identity to retarget.
Definition command.hpp:513
DeviceConfiguration expected
Required current configuration.
Definition command.hpp:515
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:509
ItemId track_id
Track owning the placement.
Definition command.hpp:511
Authored grouping of slots presented as one launchable column.
Definition clip_launch.hpp:247
Named point on a sequence's musical timeline.
Definition model.hpp:495
Reference to a sibling sequence in the same Project pool.
Definition clip.hpp:162
Named positive-duration span on a sequence's musical timeline.
Definition model.hpp:525
Selects the arrangement or an existing take lane under an exact value gate.
Definition command.hpp:289
ItemId track_id
Definition command.hpp:291
ItemId sequence_id
Definition command.hpp:290
ItemId replacement_lane_id
Definition command.hpp:293
ItemId expected_lane_id
Definition command.hpp:292
Replaces a sequence's complete chord/scale lane under an exact value gate.
Definition command.hpp:314
ChordScaleLane expected
Definition command.hpp:316
ItemId sequence_id
Definition command.hpp:315
ChordScaleLane replacement
Definition command.hpp:317
Replaces clip-level gain and fade controls under an exact value gate.
Definition command.hpp:213
ClipPlaybackProperties replacement
Definition command.hpp:218
ItemId sequence_id
Definition command.hpp:214
ItemId clip_id
Definition command.hpp:216
ItemId track_id
Definition command.hpp:215
ClipPlaybackProperties expected
Definition command.hpp:217
Retargets a sequence-reference clip under an exact optimistic-value gate.
Definition command.hpp:416
ItemId track_id
Definition command.hpp:418
SequenceRef expected
Definition command.hpp:420
ItemId clip_id
Definition command.hpp:419
SequenceRef replacement
Definition command.hpp:421
ItemId sequence_id
Definition command.hpp:417
Replaces the optional content-addressed opaque state reference.
Definition command.hpp:521
std::optional< ContentHash > expected
Required current state content identity.
Definition command.hpp:529
std::optional< ContentHash > replacement
Replacement state content identity.
Definition command.hpp:531
ItemId track_id
Track owning the placement.
Definition command.hpp:525
ItemId sequence_id
Sequence containing the target track.
Definition command.hpp:523
ItemId device_id
Placement identity whose state changes.
Definition command.hpp:527
Replaces a sequence's complete dynamics lane under an exact value gate.
Definition command.hpp:325
DynamicsLane expected
Required current lane content, compared in full.
Definition command.hpp:329
ItemId sequence_id
Sequence whose dynamics lane changes.
Definition command.hpp:327
DynamicsLane replacement
Lane content written when the gate matches.
Definition command.hpp:331
Replaces a sequence's complete groove under an exact value gate.
Definition command.hpp:359
ItemId sequence_id
Definition command.hpp:360
GrooveTemplate expected
Definition command.hpp:361
GrooveTemplate replacement
Definition command.hpp:362
Replaces only a macro's authored position under an exact value gate.
Definition command.hpp:735
float expected
Required current normalized position, compared exactly.
Definition command.hpp:743
float replacement
Normalized position written when the gate matches.
Definition command.hpp:745
ItemId macro_id
Identity of the macro whose position changes.
Definition command.hpp:741
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:737
ItemId track_id
Track owning the macro.
Definition command.hpp:739
Replaces a macro control's declaration under an exact value gate.
Definition command.hpp:709
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:711
ItemId macro_id
Identity of the macro whose declaration changes.
Definition command.hpp:715
MacroControl expected
Required current declaration, compared in full.
Definition command.hpp:717
MacroControl replacement
Declaration written when the gate matches, carrying the same identity.
Definition command.hpp:719
ItemId track_id
Track owning the macro.
Definition command.hpp:713
Replaces the complete project meter map under an exact value gate.
Definition command.hpp:228
timebase::MeterMap replacement
Definition command.hpp:230
timebase::MeterMap expected
Definition command.hpp:229
Replaces one lane's authored points under an exact optimistic-value gate.
Definition command.hpp:573
ItemId clip_id
MIDI clip owning the lane.
Definition command.hpp:579
std::vector< MidiLanePoint > expected
Required current points of that lane, compared in full and in canonical order.
Definition command.hpp:583
ItemId sequence_id
Sequence owning the track that owns the clip.
Definition command.hpp:575
ItemId track_id
Track owning the clip.
Definition command.hpp:577
ItemId lane_id
Identity of the lane whose points change.
Definition command.hpp:581
std::vector< MidiLanePoint > replacement
Points written when the gate matches.
Definition command.hpp:585
Replaces a route's source, target, depth, and bypass under an exact gate.
Definition command.hpp:786
ItemId route_id
Identity of the route whose connection changes.
Definition command.hpp:792
ModulationRoute expected
Required current route, compared in full including its bypass.
Definition command.hpp:794
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:788
ItemId track_id
Track owning the route.
Definition command.hpp:790
ModulationRoute replacement
Route written when the gate matches, carrying the same identity.
Definition command.hpp:796
Replaces a modulation source's declaration under an exact value gate.
Definition command.hpp:668
ItemId track_id
Track owning the modulator.
Definition command.hpp:672
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:670
ItemId modulator_id
Identity of the modulator whose declaration changes.
Definition command.hpp:674
Modulator expected
Required current declaration, compared in full.
Definition command.hpp:676
Modulator replacement
Declaration written when the gate matches, carrying the same identity.
Definition command.hpp:678
Replaces the values of a named subset of one note clip's notes.
Definition command.hpp:167
std::vector< NoteEvent > replacement
Definition command.hpp:172
std::vector< NoteEvent > expected
Definition command.hpp:171
ItemId track_id
Definition command.hpp:169
ItemId clip_id
Definition command.hpp:170
ItemId sequence_id
Definition command.hpp:168
Replaces one note velocity under an exact optimistic-value gate.
Definition command.hpp:119
std::uint16_t expected_velocity
Definition command.hpp:124
ItemId clip_id
Definition command.hpp:122
ItemId note_id
Definition command.hpp:123
ItemId sequence_id
Definition command.hpp:120
ItemId track_id
Definition command.hpp:121
std::uint16_t replacement_velocity
Definition command.hpp:125
Replaces the project-wide tuning statement under an exact value gate.
Definition command.hpp:595
std::optional< TuningReference > expected
Required current project tuning, compared exactly, absence included.
Definition command.hpp:597
std::optional< TuningReference > replacement
Tuning written when the gate matches.
Definition command.hpp:599
Replaces record-arm document intent under an exact optimistic-value gate.
Definition command.hpp:279
bool expected
Definition command.hpp:282
ItemId track_id
Definition command.hpp:281
ItemId sequence_id
Definition command.hpp:280
bool replacement
Definition command.hpp:283
Replaces one sequence-owned region under an exact value gate.
Definition command.hpp:625
ItemId sequence_id
Sequence owning the region.
Definition command.hpp:627
SequenceRegion expected
Required current region, compared in full including its role.
Definition command.hpp:629
SequenceRegion replacement
Region written when the gate matches, carrying the same identity.
Definition command.hpp:631
Replaces a take lane's canonical comp segments under an exact value gate.
Definition command.hpp:297
ItemId sequence_id
Definition command.hpp:298
std::vector< TakeCompSegment > expected
Definition command.hpp:301
ItemId track_id
Definition command.hpp:299
std::vector< TakeCompSegment > replacement
Definition command.hpp:302
ItemId lane_id
Definition command.hpp:300
Replaces the complete project tempo map under an exact value gate.
Definition command.hpp:222
timebase::TempoMap replacement
Definition command.hpp:224
timebase::TempoMap expected
Definition command.hpp:223
Publishes or clears a pre-rendered track artifact under an exact value gate.
Definition command.hpp:306
ItemId sequence_id
Definition command.hpp:307
std::optional< TrackFreeze > expected
Definition command.hpp:309
std::optional< TrackFreeze > replacement
Definition command.hpp:310
ItemId track_id
Definition command.hpp:308
Replaces track gain and pan under an exact optimistic-value gate.
Definition command.hpp:425
TrackMixer expected
Definition command.hpp:428
ItemId track_id
Definition command.hpp:427
ItemId sequence_id
Definition command.hpp:426
TrackMixer replacement
Definition command.hpp:429
Replaces a track's authored name under an exact optimistic-value gate.
Definition command.hpp:447
ItemId sequence_id
Definition command.hpp:448
ItemId track_id
Definition command.hpp:449
std::string expected
Definition command.hpp:450
std::string replacement
Definition command.hpp:451
Replaces one track's tuning override under an exact value gate.
Definition command.hpp:606
ItemId sequence_id
Sequence owning the track.
Definition command.hpp:608
ItemId track_id
Track whose tuning override changes.
Definition command.hpp:610
std::optional< TuningReference > replacement
Override written when the gate matches.
Definition command.hpp:614
std::optional< TuningReference > expected
Required current override, compared exactly, absence included.
Definition command.hpp:612
One authored launch slot.
Definition clip_launch.hpp:145
Track-owned linear gain and stereo balance.
Definition recording.hpp:139
Writer-scoped, monotonically assigned transaction identity.
Definition command.hpp:43
std::uint64_t sequence
Definition command.hpp:45
constexpr bool valid() const noexcept
Returns whether both the writer and sequence identities are nonzero.
Definition command.hpp:47
constexpr auto operator<=>(const TransactionId &) const =default
WriterId writer
Definition command.hpp:44
Atomically admitted ordered command batch.
Definition command.hpp:824
DocumentRevision expected_revision
Definition command.hpp:826
std::vector< CommandEnvelope > commands
Definition command.hpp:829
GesturePhase gesture_phase
Definition command.hpp:828
TransactionId id
Definition command.hpp:825
std::optional< UndoGroupId > undo_group
Definition command.hpp:827
Writer-scoped identity joining gesture transactions into one undo unit.
Definition command.hpp:60
constexpr auto operator<=>(const UndoGroupId &) const =default
constexpr bool valid() const noexcept
Returns whether both the writer and sequence identities are nonzero.
Definition command.hpp:64
WriterId writer
Definition command.hpp:61
std::uint64_t sequence
Definition command.hpp:62
Stable non-zero identity of a document writer.
Definition command.hpp:22
constexpr bool valid() const noexcept
Returns whether the writer identity is nonzero.
Definition command.hpp:25
std::uint64_t value
Definition command.hpp:23
constexpr auto operator<=>(const WriterId &) const =default