ProjectCommands

interface ProjectCommands

The undoable edits a project supports. Use TimelineFacade for reading the document and for changes that are not user edits; use this for anything a user could undo.

Each function returns false when the target does not exist or the change was rejected; setting the value already in place succeeds without creating a history step.

Inheritors

AndroidProjectCommands
JsProjectCommands
JvmProjectCommands
NativeProjectCommands
WasmJsProjectCommands

Properties

Link copied to clipboard
abstract val history: CommandManager
Link copied to clipboard
abstract val lastGraphError: String

Functions

Link copied to clipboard
abstract fun addDeviceInputToTrack(trackIndex: Int, sourceNodeId: Int, channelIndices: List<UInt>, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun connectTrackGraph(trackIndex: Int, connection: GraphConnection, origin: MutationOrigin = MutationOrigin.User): Boolean

Track graph edges. Presence is the value here too, so undoing a connect is a disconnect. lastGraphError carries the reason the graph refused an edge -- a cycle, a missing endpoint, a direction mismatch -- and is empty after a call that succeeded.

Link copied to clipboard
abstract fun disconnectTrackGraphConnection(trackIndex: Int, connectionId: Long, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun removeDeviceInputFromTrack(trackIndex: Int, sourceNodeId: Int, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun replaceTrackGraphType(trackIndex: Int, graphTypeId: String, eventBufferSizeInBytes: Long, origin: MutationOrigin = MutationOrigin.User): Boolean

Replaces a track's graph with a fresh one of the requested type. The event buffer size is the caller's: the project loader and the application model each supply their own.

Link copied to clipboard
abstract fun resizeClip(trackIndex: Int, clipId: Int, newDurationSamples: Long, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipAnchor(trackIndex: Int, clipId: Int, anchor: TimeReference, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipAudioWarps(trackIndex: Int, clipId: Int, warps: List<AudioWarpPointData>, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipEnabled(trackIndex: Int, clipId: Int, enabled: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipFilepath(trackIndex: Int, clipId: Int, filepath: String, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipGain(trackIndex: Int, clipId: Int, gain: Double, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipMarkers(trackIndex: Int, clipId: Int, markers: List<ClipMarkerData>, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipMuted(trackIndex: Int, clipId: Int, muted: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipName(trackIndex: Int, clipId: Int, name: String, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setClipNeedsFileSave(trackIndex: Int, clipId: Int, needsSave: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setDeviceInputChannels(trackIndex: Int, sourceNodeId: Int, channelIndices: List<UInt>, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setLatencyCompensationSettings(settings: LatencyCompensationSettings, origin: MutationOrigin = MutationOrigin.User): Boolean

The complete persisted latency/monitoring configuration, as one history step. To change one field, read the current settings, copy them with that field altered, and submit the whole snapshot.

Link copied to clipboard
abstract fun setMasterTrackMarkers(markers: List<ClipMarkerData>, origin: MutationOrigin = MutationOrigin.User): Boolean

The caller is responsible for validating marker identity and reference cycles before submitting.

Link copied to clipboard
abstract fun setPluginBypassed(instanceId: Int, bypassed: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setPluginGroup(instanceId: Int, group: UByte, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setPluginParameterValue(instanceId: Int, parameterIndex: Int, value: Double, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setPluginPerNoteControllerValue(instanceId: Int, contextType: Int, note: Int, channel: Int, group: Int, extra: Int, parameterIndex: Int, value: Double, origin: MutationOrigin = MutationOrigin.User): Boolean

Per-note edits share the plug-in's identity and history, so changing the selected key, channel or group does not silently bypass undo. contextType carries remidy::PerNoteControllerContextTypes bit flags.

Link copied to clipboard
abstract fun setTrackBypassed(trackIndex: Int, bypassed: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setTrackFreezePolicyEnabled(trackIndex: Int, enabled: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setTrackGain(trackIndex: Int, gain: Double, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setTrackMuted(trackIndex: Int, muted: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean
Link copied to clipboard
abstract fun setTrackSolo(trackIndex: Int, solo: Boolean, origin: MutationOrigin = MutationOrigin.User): Boolean