Properties

Link copied to clipboard

SequencerEngine::audioWorkers(): parallel processing of independent tracks.

Link copied to clipboard

Lifetime count of plugin parameter notifications dropped at the bounded audio-to-UI handoff; wraps modulo 2^32.

Link copied to clipboard

Lifetime count of MIDI preset requests discarded (offline/freeze rendering, or control-queue overflow); wraps modulo 2^32.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract val isProjectDirty: Boolean

True when the project document differs from its saved history node, or an asynchronous project mutation is still being committed.

Link copied to clipboard
Link copied to clipboard
abstract val masterTrackLatency: UInt
Link copied to clipboard

Project-wide markers, owned by the engine alongside the master track. The setter applies markers directly; use ProjectCommands.setMasterTrackMarkers instead when the change should be undoable.

Link copied to clipboard
Link copied to clipboard
abstract val midiRecorder: MidiRecorder?

Live MIDI capture into one clip, or null when the extension is absent. Backed by uapmd::MidiRecorder.

Link copied to clipboard
Link copied to clipboard
abstract var playbackPosition: Long
Link copied to clipboard
abstract val pluginHost: PluginHost
Link copied to clipboard
Link copied to clipboard
abstract var sampleRate: Int
Link copied to clipboard
abstract val timeline: TimelineFacade
Link copied to clipboard
abstract val trackCount: UInt

Functions

Link copied to clipboard
abstract fun addEmptyTrack(): Int
Link copied to clipboard
fun SequencerEngine.addParameterMetadataChangedListener(instanceId: Int, dispatch: (() -> Unit) -> Unit = { it() }, replayCurrent: Boolean = true, onError: (Throwable) -> Unit = { println("Parameter metadata listener failed: $it") }, listener: (ParameterMetadataSnapshot) -> Unit): AutoCloseable

Snapshot/replay convenience over the existing native graph metadata event. Metadata is copied on the callback thread, before dispatching to the UI. No periodic reads. The dispatcher defaults to the native control thread; UI callers should supply their dispatcher. Close subscriptions before destroying the engine.

Link copied to clipboard
abstract fun addPluginToTrack(trackIndex: Int, format: String, pluginId: String, callback: (instanceId: Int, trackIndex: Int, error: String?) -> Unit)
Link copied to clipboard
abstract fun cleanupEmptyTracks()
Link copied to clipboard
abstract fun clearTrackDirtyState()
Link copied to clipboard
abstract fun enqueueUmp(instanceId: Int, ump: UIntArray, timestamp: Long)
Link copied to clipboard
abstract fun findTrackForInstance(instanceId: Int): Int
Link copied to clipboard
abstract fun getInputSpectrum(numBars: Int): FloatArray
Link copied to clipboard
abstract fun getInstanceGroup(instanceId: Int): UByte
Link copied to clipboard
abstract fun getOutputSpectrum(numBars: Int): FloatArray
Link copied to clipboard
abstract fun getPluginInstance(instanceId: Int): PluginInstance?
Link copied to clipboard
abstract fun getTrack(index: UInt): SequencerTrack
Link copied to clipboard
abstract fun getTrackLatency(trackIndex: Int): UInt
Link copied to clipboard
abstract fun getTrackRenderLead(trackIndex: Int): UInt
Link copied to clipboard
abstract fun isTrackBusy(trackIndex: Int): Boolean

True while a freeze render is in flight; the legend disables the track's controls.

Link copied to clipboard
abstract fun isTrackDirty(trackIndex: Int): Boolean

Track render/cache dirtiness: runtime state owned by the engine, separate from project-document history dirtiness.

Link copied to clipboard
abstract fun markTrackDirty(trackIndex: Int, dirty: Boolean = true)
Link copied to clipboard
abstract fun notifyPluginEditorVisibilityChanged(instanceId: Int, visible: Boolean)

SequencerEngine::notifyPluginEditorVisibilityChanged(). A host that shows or hides a plug-in editor itself (not through AppModel's plug-in UI requests, which notify on its behalf) must call this: true before the editor is shown, so an ARA editor view receives the current selection during setup, and false when it is hidden or fails to show.

Link copied to clipboard
abstract fun pausePlayback()
Link copied to clipboard

Publishes every extension point this engine offers into manager. Call before AddinManager.initialize.

Link copied to clipboard
abstract fun removePluginInstance(instanceId: Int): Boolean
Link copied to clipboard
abstract fun removeTrack(trackIndex: Int): Boolean
Link copied to clipboard
abstract fun renderOffline(settings: OfflineRenderSettings, progressCallback: (OfflineRenderProgress) -> Unit? = null, shouldCancel: () -> Boolean? = null): OfflineRenderResult
Link copied to clipboard
abstract fun resumePlayback()
Link copied to clipboard
abstract fun sendChannelPressure(instanceId: Int, pressure: Float)
Link copied to clipboard
abstract fun sendNoteOff(instanceId: Int, note: Int)
Link copied to clipboard
abstract fun sendNoteOn(instanceId: Int, note: Int)
Link copied to clipboard
abstract fun sendPitchBend(instanceId: Int, value: Float)
Link copied to clipboard
abstract fun setActive(active: Boolean)
Link copied to clipboard
abstract fun setDefaultChannels(inputChannels: UInt, outputChannels: UInt)
Link copied to clipboard
abstract fun setExternalPump(enabled: Boolean)
Link copied to clipboard
abstract fun setInstanceGroup(instanceId: Int, group: UByte): Boolean
Link copied to clipboard
abstract fun setParameterValue(instanceId: Int, index: Int, value: Double)
Link copied to clipboard
abstract fun startPlayback()
Link copied to clipboard
abstract fun stopPlayback()
Link copied to clipboard
abstract fun trackFreezePolicy(trackIndex: Int): FreezePolicy

FrozenTrackManager::freezePolicyForTrack — what the user asked for.

Link copied to clipboard

Progress of the track's freeze render, or null when it is not rendering. FrozenTrackManager::renderProgressForTrack returns an optional for the same reason: only one track renders at a time, and only while Rendering.

Link copied to clipboard
abstract fun trackFreezeState(trackIndex: Int): FreezeRuntimeState

FrozenTrackManager::runtimeStateForTrack — what the engine is doing.