Package-level declarations

Types

Link copied to clipboard
data class AapUiHostDetails(val pluginPackageName: String, val pluginLocalName: String, val instanceId: Int)
Link copied to clipboard
data class AddinInfo(val packageId: String, val addinId: String, val name: String, val path: String, val libraryPath: String, val builtIn: Boolean, val state: AddinState, val message: String)
Link copied to clipboard

Host side of the uapmd addin system (uapmd 0.5.6). An addin is a package that attaches itself to named extension points a host publishes; ARA support is one such addin.

Link copied to clipboard
Link copied to clipboard

uapmd_anchor_origin_t: which end of the anchor the offset is measured from.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface AppModel

Host side of uapmd_app::AppModel (tools/uapmd-app-model) — the façade uapmd-app itself renders against, wrapped by c-api/uapmd-c-app.h.

Link copied to clipboard
data class AppProjectResult(val success: Boolean, val error: String?)

Mirrors uapmd_app_project_result_t.

Link copied to clipboard

Mirrors remidy::AudioBusRole.

Link copied to clipboard
data class AudioDeviceInfo(val directions: AudioIoDirection, val id: Int, val name: String, val sampleRate: UInt, val channels: UInt)
Link copied to clipboard
Link copied to clipboard
data class AudioFileProperties(val numFrames: Long, val numChannels: UInt, val sampleRate: UInt)
Link copied to clipboard
Link copied to clipboard
interface AudioIODevice
Link copied to clipboard
Link copied to clipboard
data class AudioWarpPointData(val clipPositionOffset: Double, val speedRatio: Double, val referenceType: WarpReferenceType = WarpReferenceType.Manual, val referenceClipId: String = "", val referenceMarkerId: String = "")
Link copied to clipboard
data class BlocklistEntry(val id: String, val format: String, val pluginId: String, val reason: String)
Link copied to clipboard
data class CatalogEntry(val format: String, val pluginId: String, val displayName: String, val vendor: String = "")
Link copied to clipboard
data class ClipAddress(val trackReferenceId: String, val clipReferenceId: String)

Stable document identity of one clip.

Link copied to clipboard
data class ClipAddResult(val clipId: Int, val sourceNodeId: Int, val success: Boolean, val error: String?)
Link copied to clipboard
data class ClipAudioEventsResult(val success: Boolean, val error: String?, val markers: List<ClipMarkerData>, val warps: List<AudioWarpPointData>)

Mirrors uapmd_clip_audio_events_result_t.

Link copied to clipboard
data class ClipData(val clipId: Int, val positionSamples: Long, val positionLegacyBeats: Double, val durationSamples: Long, val gain: Double, val muted: Boolean, val name: String, val filepath: String, val clipType: ClipType, val referenceId: String = "", val anchorReferenceId: String = "", val anchorOrigin: AnchorOrigin = AnchorOrigin.Start, val anchorOffsetSamples: Long = 0)
Link copied to clipboard

A clip detached from the document: the payload shared by an undo entry and a clipboard entry. Fragments obtained from TimelineFacade.captureClipFragment must be closed; those borrowed from a TrackFragment need not be.

Link copied to clipboard
data class ClipMarkerData(val markerId: String, val clipPositionOffset: Double, val referenceType: WarpReferenceType = WarpReferenceType.Manual, val referenceClipId: String = "", val referenceMarkerId: String = "", val name: String = "")
Link copied to clipboard
Link copied to clipboard
interface CommandManager

Groups several commands into one named history step.

Link copied to clipboard
data class ContentBounds(val hasContent: Boolean, val firstSample: Long, val lastSample: Long, val firstSeconds: Double, val lastSeconds: Double)
Link copied to clipboard
Link copied to clipboard

Minimal format manager – exposes available plugin formats by name.

Link copied to clipboard
Link copied to clipboard
interface FunctionBlock
Link copied to clipboard
Link copied to clipboard
interface FunctionDevice

Marker for a MIDI 2.0 function device (no public C API beyond retrieval).

Link copied to clipboard
data class GraphAudioBus(val name: String, val role: AudioBusRole, val enabled: Boolean, val channelLayoutName: String, val channelCount: UInt)

One audio bus of a graph node — remidy::AudioBusConfiguration.

Link copied to clipboard
Link copied to clipboard
data class GraphConnection(val id: Long, val busType: GraphBusType, val source: GraphEndpoint, val target: GraphEndpoint)
Link copied to clipboard
data class GraphConnectionsResult(val success: Boolean, val error: String?, val connections: List<GraphConnection>)
Link copied to clipboard
data class GraphEndpoint(val type: GraphEndpointType, val nodeId: String, val instanceId: Int, val busIndex: UInt)

One end of a graph connection.

Link copied to clipboard
Link copied to clipboard
data class GraphNode(val nodeId: String, val nodeType: String, val displayName: String, val instanceId: Int, val bypassed: Boolean, val latencyInSamples: UInt, val tailLengthInSeconds: Double, val hasAudioBuses: Boolean, val hasEventInputs: Boolean, val hasEventOutputs: Boolean, val audioInputBuses: List<GraphAudioBus>, val audioOutputBuses: List<GraphAudioBus>, val mainInputBusIndex: Int, val mainOutputBusIndex: Int)

One node of a track graph: uapmd_graph::AudioGraphNode plus the remidy::PluginAudioBuses facade it exposes.

Link copied to clipboard
data class GraphNodesResult(val success: Boolean, val error: String?, val nodes: List<GraphNode>, val graphAudioInputBusCount: UInt, val graphAudioOutputBusCount: UInt, val graphEventInputBusCount: UInt, val graphEventOutputBusCount: UInt)
Link copied to clipboard
Link copied to clipboard
object JniBridge

JNI bridge object — every method corresponds to a C function in uapmd_jni.cpp. Handles are jlong (opaque C pointer cast to uintptr_t). Callback objects are plain Kotlin lambdas / SAM interfaces.

Link copied to clipboard
class JsAddinManager : AddinManager
Link copied to clipboard
class JsAppModel : AppModel
Link copied to clipboard
class JsAudioDeviceManager : AudioDeviceManager
Link copied to clipboard
class JsAudioFileReader : AudioFileReader
Link copied to clipboard
class JsAudioIODevice : AudioIODevice
Link copied to clipboard
class JsClipFragment : ClipFragment
Link copied to clipboard
class JsCommandManager : CommandManager
Link copied to clipboard
class JsDeviceIODispatcher : DeviceIODispatcher
Link copied to clipboard
class JsFormatManager : FormatManager
Link copied to clipboard
class JsFunctionBlock : FunctionBlock
Link copied to clipboard
class JsFunctionBlockManager : FunctionBlockManager
Link copied to clipboard
class JsFunctionDevice : FunctionDevice
Link copied to clipboard
class JsMidiIO : MidiIO
Link copied to clipboard
class JsMidiIODevice : MidiIODevice
Link copied to clipboard
class JsMidiRecorder : MidiRecorder
Link copied to clipboard
class JsPluginGraph : PluginGraph
Link copied to clipboard
class JsPluginHost : PluginHost
Link copied to clipboard
class JsPluginInstance : PluginInstance
Link copied to clipboard
class JsPluginInstancing : PluginInstancing
Link copied to clipboard
class JsPluginNode : PluginNode
Link copied to clipboard
class JsProjectAddressBook : ProjectAddressBook
Link copied to clipboard
class JsProjectCommands : ProjectCommands
Link copied to clipboard
class JsRealtimeSequencer : RealtimeSequencer
Link copied to clipboard
class JsScanTool : ScanTool
Link copied to clipboard
class JsSequencerEngine : SequencerEngine
Link copied to clipboard
class JsSequencerTrack : SequencerTrack
Link copied to clipboard
class JsTimelineFacade : TimelineFacade
Link copied to clipboard
class JsTimelineTrack : TimelineTrack
Link copied to clipboard
class JsTrackFragment : TrackFragment
Link copied to clipboard
class JsTransportController : TransportController
Link copied to clipboard
class JsUndoEngine : UndoEngine
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface MidiIO
Link copied to clipboard
interface MidiIODevice

Marker for a platform MIDI I/O device handle.

Link copied to clipboard
data class MidiNoteData(val startSeconds: Double, val durationSeconds: Double, val note: Int, val velocity: Float)
Link copied to clipboard
interface MidiRecorder

uapmd::MidiRecorder — captures live MIDI input into a selected clip.

Link copied to clipboard

Who is making a change. User and Remote edits enter the undo history; Load, UndoRedo and Internal changes are applied without being recorded.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Whether an object being attached to the document keeps the identifiers it already carries (Restore, which is what undoing a delete requires) or is given fresh ones (Mint, which is what paste and duplicate require).

Link copied to clipboard
data class OfflineRenderProgress(val progress: Double, val renderedSeconds: Double, val totalSeconds: Double, val renderedFrames: Long, val totalFrames: Long)
Link copied to clipboard
data class OfflineRenderResult(val success: Boolean, val canceled: Boolean, val renderedSeconds: Double, val errorMessage: String?)
Link copied to clipboard
data class OfflineRenderSettings(val outputPath: String, val startSeconds: Double, val endSeconds: Double? = null, val useContentFallback: Boolean = true, val contentBoundsValid: Boolean = false, val contentStartSeconds: Double = 0.0, val contentEndSeconds: Double = 0.0, val tailSeconds: Double = 0.0, val enableSilenceStop: Boolean = false, val silenceDurationSeconds: Double = 3.0, val silenceThresholdDb: Double = -60.0, val sampleRate: Int = 44100, val bufferSize: UInt, val outputChannels: UInt, val umpBufferSize: UInt)
Link copied to clipboard
data class OpResult(val success: Boolean, val error: String?)

Mirrors uapmd_op_result_t.

Link copied to clipboard
data class ParameterMetadata(val index: UInt, val stableId: String, val name: String, val path: String, val defaultPlainValue: Double, val minPlainValue: Double, val maxPlainValue: Double, val automatable: Boolean, val hidden: Boolean, val discrete: Boolean, val namedValues: List<ParameterNamedValue>)
Link copied to clipboard
data class ParameterNamedValue(val value: Double, val name: String)
Link copied to clipboard
data class PluginAddress(val trackReferenceId: String, val nodeId: String)

Stable document identity of one plug-in node. A runtime instance id is not usable in history: removing and restoring a plug-in produces a new one.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface PluginInstance
Link copied to clipboard
data class PluginInstanceConfig(val apiName: String = "default", val deviceName: String = "", val manufacturer: String = "UAPMD Project", val version: String = "0.1", val stateFile: String = "")

Mirrors uapmd_plugin_instance_config_t; empty strings take the C defaults.

Link copied to clipboard
data class PluginInstanceResult(val instanceId: Int, val pluginName: String, val error: String?)

Mirrors uapmd_plugin_instance_result_t.

Link copied to clipboard

Lifecycle manager for a single plugin's instantiation process. Created per (format, pluginId) pair via createPluginInstancing.

Link copied to clipboard
interface PluginNode
Link copied to clipboard
data class PluginUiCapabilities(val hasUiSupport: Boolean, val supportsEmbeddedPresentations: Boolean = hasUiSupport, val supportsFloatingPresentations: Boolean = hasUiSupport, val supportsMultiplePresentations: Boolean = false)
Link copied to clipboard
sealed interface PluginUiHost
Link copied to clipboard
Link copied to clipboard
data class PluginUiPresentationRequest(val host: PluginUiHost = PluginUiHost.FloatingWindow, val role: PluginUiPresentationRole = PluginUiPresentationRole.FULL, val resizeHandler: (UInt, UInt) -> Boolean? = null)
Link copied to clipboard

A project file made loadable. .uapmdz archives are unpacked to a temporary directory; a plain .uapmd resolves to itself. Close it after loading to remove any temporary files.

Link copied to clipboard
data class PresetMetadata(val bank: UByte, val index: UInt, val stableId: String, val name: String, val path: String)
Link copied to clipboard

Translation between the persistent identities a history step carries and the runtime indexes the engine works with. Not thread safe; call on the model thread only.

Link copied to clipboard
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.

Link copied to clipboard
data class ProjectResult(val success: Boolean, val error: String?)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface ScanObserver
Link copied to clipboard
Link copied to clipboard
interface SequencerEngine
Link copied to clipboard
interface SequencerTrack
Link copied to clipboard
data class SlowScanProgress(val running: Boolean = false, val processedBundles: UInt, val totalBundles: UInt, val currentBundle: String = "")

Progress of a slow plug-in scan, mirroring AppModel::SlowScanProgressState.

Link copied to clipboard
Link copied to clipboard
data class TempoPoint(val timeSeconds: Double, val tickPosition: Long, val bpm: Double)

A tempo change on the master track; uapmd_tempo_point_t.

Link copied to clipboard
interface TimelineFacade
Link copied to clipboard
data class TimelinePosition(val samples: Long, val legacyBeats: Double)
Link copied to clipboard
data class TimelineState(val playheadPosition: TimelinePosition, val isPlaying: Boolean, val loopEnabled: Boolean, val loopStart: TimelinePosition, val loopEnd: TimelinePosition, val tempo: Double, val timeSignatureNumerator: Int, val timeSignatureDenominator: Int, val sampleRate: Int)
Link copied to clipboard
interface TimelineTrack
Link copied to clipboard
data class TimeReference(val type: TimeReferenceType = TimeReferenceType.ContainerStart, val referenceId: String = "", val offset: Double = 0.0)
Link copied to clipboard
Link copied to clipboard
data class TimeSignaturePoint(val timeSeconds: Double, val tickPosition: Long, val numerator: Int, val denominator: Int)

A time-signature change on the master track; uapmd_time_signature_point_t.

Link copied to clipboard
data class TrackAttachOptions(val idPolicy: ObjectIdPolicy = ObjectIdPolicy.Mint, val insertionIndex: Int = -1, val includePlugins: Boolean = true, val includePluginState: Boolean = true, val includeClips: Boolean = true)

Which parts of a captured track are applied when it is attached.

Link copied to clipboard

A track detached from the document. Unlike a clip, a track owns live plug-in instances, so both capturing and attaching one are asynchronous.

Link copied to clipboard
data class TrackPluginFragment(val nodeId: String, val pluginId: String, val format: String, val displayName: String, val groupIndex: Int, val state: ByteArray)
Link copied to clipboard

uapmd_app::TransportController. Owned by the AppModel.

Link copied to clipboard
external interface UapmdCApiModule : JsAny

The Emscripten-compiled uapmd-c-api module. Call initUapmdWasm to initialize before using any functions.

Link copied to clipboard
data class UiSize(val width: UInt, val height: UInt)
Link copied to clipboard
data class UmpEvent(val tick: Long, val words: UIntArray)

One UMP event in a MIDI clip: a tick plus the 1-4 words of the message.

Link copied to clipboard
data class UmpEventsResult(val success: Boolean, val error: String?, val events: List<UmpEvent>)

Mirrors uapmd_ump_events_result_t.

Link copied to clipboard
interface UmpInputMapper
Link copied to clipboard
interface UmpOutputMapper
Link copied to clipboard
interface UndoEngine

Thread-affine asynchronous project history. Its methods are called on the model thread; completions may arrive on any thread.

Link copied to clipboard
data class UndoResult(val status: UndoStatus, val error: String?)
Link copied to clipboard
data class UndoState(val busy: Boolean, val compoundOpen: Boolean, val gestureOpen: Boolean, val canUndo: Boolean, val canRedo: Boolean, val dirty: Boolean, val compoundDescription: String, val undoDescription: String, val redoDescription: String, val historySizeInBytes: Long, val maximumHistorySizeInBytes: Long, val currentStateId: Long, val savedStateId: Long)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class WasmJsAddinManager : AddinManager
Link copied to clipboard
class WasmJsAppModel : AppModel
Link copied to clipboard
class WasmJsAudioDeviceManager : AudioDeviceManager
Link copied to clipboard
class WasmJsAudioFileReader : AudioFileReader
Link copied to clipboard
class WasmJsAudioIODevice : AudioIODevice
Link copied to clipboard
class WasmJsClipFragment : ClipFragment
Link copied to clipboard
class WasmJsCommandManager : CommandManager
Link copied to clipboard
class WasmJsDeviceIODispatcher : DeviceIODispatcher
Link copied to clipboard
class WasmJsFormatManager : FormatManager
Link copied to clipboard
class WasmJsFunctionBlock : FunctionBlock
Link copied to clipboard
class WasmJsFunctionBlockManager : FunctionBlockManager
Link copied to clipboard
class WasmJsFunctionDevice : FunctionDevice
Link copied to clipboard
class WasmJsMidiIO : MidiIO
Link copied to clipboard
class WasmJsMidiIODevice : MidiIODevice
Link copied to clipboard
class WasmJsMidiRecorder : MidiRecorder
Link copied to clipboard
class WasmJsPluginGraph : PluginGraph
Link copied to clipboard
class WasmJsPluginHost : PluginHost
Link copied to clipboard
class WasmJsPluginInstance : PluginInstance
Link copied to clipboard
class WasmJsPluginInstancing : PluginInstancing
Link copied to clipboard
class WasmJsPluginNode : PluginNode
Link copied to clipboard
class WasmJsProjectAddressBook : ProjectAddressBook
Link copied to clipboard
class WasmJsProjectCommands : ProjectCommands
Link copied to clipboard
class WasmJsRealtimeSequencer : RealtimeSequencer
Link copied to clipboard
class WasmJsScanTool : ScanTool
Link copied to clipboard
class WasmJsSequencerEngine : SequencerEngine
Link copied to clipboard
class WasmJsSequencerTrack : SequencerTrack
Link copied to clipboard
class WasmJsTimelineFacade : TimelineFacade
Link copied to clipboard
class WasmJsTimelineTrack : TimelineTrack
Link copied to clipboard
class WasmJsTrackFragment : TrackFragment
Link copied to clipboard
class WasmJsTransportController : TransportController
Link copied to clipboard
class WasmJsUndoEngine : UndoEngine

Functions

Link copied to clipboard
actual fun cleanupAppModel()
expect fun cleanupAppModel()
actual fun cleanupAppModel()
actual fun cleanupAppModel()
actual fun cleanupAppModel()
actual fun cleanupAppModel()
Link copied to clipboard
actual fun createAddinManager(): AddinManager
actual fun createAddinManager(): AddinManager
Link copied to clipboard
actual fun createAudioFileReader(filepath: String): AudioFileReader
actual fun createAudioFileReader(filepath: String): AudioFileReader
Link copied to clipboard
actual fun createFormatManager(): FormatManager
actual fun createFormatManager(): FormatManager
Link copied to clipboard
actual fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
expect fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
actual fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
actual fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
actual fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
actual fun createPluginGraph(eventBufferSizeInBytes: Long): PluginGraph
Link copied to clipboard
actual fun createPluginHost(): PluginHost
actual fun createPluginHost(): PluginHost
Link copied to clipboard
actual fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
expect fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
actual fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
actual fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
actual fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
actual fun createPluginInstancing(scanTool: ScanTool, format: String, pluginId: String): PluginInstancing
Link copied to clipboard
actual fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
expect fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
actual fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
actual fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
actual fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
actual fun createRealtimeSequencer(bufferSize: UInt, umpBufferSize: UInt, sampleRate: Int, dispatcher: DeviceIODispatcher): RealtimeSequencer
Link copied to clipboard
Link copied to clipboard
actual fun createScanTool(): ScanTool
expect fun createScanTool(): ScanTool
actual fun createScanTool(): ScanTool
actual fun createScanTool(): ScanTool
actual fun createScanTool(): ScanTool
actual fun createScanTool(): ScanTool
Link copied to clipboard
actual fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
expect fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
actual fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
actual fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
actual fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
actual fun createSequencerEngine(sampleRate: Int, audioBufferSize: UInt, umpBufferSize: UInt): SequencerEngine
Link copied to clipboard
actual fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

expect fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

actual fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

actual fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

actual fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

actual fun createSilentAudioFileReader(numFrames: Long, numChannels: Int, sampleRate: Int): AudioFileReader

A reader that yields silence, for clips with no source file.

Link copied to clipboard
Link copied to clipboard

Offers a file written into MEMFS to the user. Returns false when nothing was written there — a render that failed, say — so the caller can say so rather than trigger an empty download.

Link copied to clipboard
fun extractProjectArchive(archivePath: String, destDir: String): String?

Extracts a .uapmdz archive into destDir (which must not already exist). Returns the path of the extracted .uapmd project file, or null on failure. Call removeExtractedArchive when the project has been loaded.

Link copied to clipboard
actual fun getAppModel(): AppModel
expect fun getAppModel(): AppModel
actual fun getAppModel(): AppModel
actual fun getAppModel(): AppModel
actual fun getAppModel(): AppModel
actual fun getAppModel(): AppModel
Link copied to clipboard
expect fun getAudioDeviceManager(driverName: String = ""): AudioDeviceManager
actual fun getAudioDeviceManager(driverName: String): AudioDeviceManager
actual fun getAudioDeviceManager(driverName: String): AudioDeviceManager
Link copied to clipboard
Link copied to clipboard
actual fun getMidiIODevice(driverName: String): MidiIODevice
expect fun getMidiIODevice(driverName: String = ""): MidiIODevice
actual fun getMidiIODevice(driverName: String): MidiIODevice
actual fun getMidiIODevice(driverName: String): MidiIODevice
actual fun getMidiIODevice(driverName: String): MidiIODevice
actual fun getMidiIODevice(driverName: String): MidiIODevice
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
suspend fun initUapmdJs(factory: dynamic)

Initialize the uapmd JS module from an Emscripten factory function.

Link copied to clipboard
suspend fun initUapmdWasm(factory: JsAny, wasmUrl: String = "uapmd-c-api.wasm")

Initialize the uapmd Wasm module from an Emscripten factory Promise. Typically called once at app startup:

Link copied to clipboard
actual fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

expect fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

actual fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

actual fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

actual fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

actual fun instantiateAppModel()

Creates the process-wide AppModel. Install an event loop first (see the note on AppModel). Calling it twice replaces the previous instance.

Link copied to clipboard

True when path is a packed project (.uapmdz) rather than a bare .uapmd.

Link copied to clipboard
fun pickDocumentToOpen(app: AppModel, label: String, extensions: List<String>, callback: (String?) -> Unit)

Opens the browser's file picker through uapmd's Emscripten document provider, which creates a hidden <input type=file>, copies the chosen file into MEMFS and hands back a path the engine can open (DocumentProviderEmscripten.cpp:93).

Link copied to clipboard

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

actual fun prepareProjectLoad(filePath: String): PreparedProject

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

actual fun prepareProjectLoad(filePath: String): PreparedProject

Unpacks a .uapmdz archive (or passes a .uapmd through) before loading.

Link copied to clipboard
Link copied to clipboard
fun saveProjectAsDocument(app: AppModel, defaultName: String, onDone: (String?) -> Unit)

Saves the project the way uapmd-app does (MainWindow::handleSaveProject): ask the provider for a save handle, then hand it to the app model, which packs the project tree into a .uapmdz and writes it through the provider — a download, in a browser. Writing to a path cannot replace this: a saved project is a directory, so a single-file write would deliver only its manifest.

Link copied to clipboard

Remote scanning needs a launchable process; this platform has none.

Points remote plug-in scanning at a standalone scanner executable.

Remote scanning needs a launchable process; this platform has none.

Points remote plug-in scanning at a standalone scanner executable.

Remote scanning needs a launchable process; this platform has none.

Remote scanning needs a launchable process; this platform has none.

Link copied to clipboard

Drives pending picks; the provider completes them from its own tick.

Link copied to clipboard
fun uapmdDispatchAddPlugin(cbId: Int, instanceId: Int, trackIndex: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchCreateInstance(cbId: Int, instanceId: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchDocumentPath(cbId: Int, resultPtr: Int, pathPtr: Int)
Link copied to clipboard
fun uapmdDispatchDocumentPick(cbId: Int, resultPtr: Int)
Link copied to clipboard
fun uapmdDispatchDocumentWrite(cbId: Int, resultPtr: Int)

Reports null on success, or the engine's message on failure.

Link copied to clipboard
fun uapmdDispatchErrorOnly(cbId: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchEventOutput(cbId: Int, instanceId: Int, dataPtr: Int, size: Int)
Link copied to clipboard
fun uapmdDispatchImportMidiTracks(cbId: Int, success: Int, errorPtr: Int, importedTrackCount: Int)
Link copied to clipboard
fun uapmdDispatchInstanceCreated(cbId: Int, resultPtr: Int)

The C callback takes uapmd_plugin_instance_result_t by value, which Emscripten passes as a pointer. Layout on wasm32: int32 id @0, char* name @4, char* err @8.

Link copied to clipboard
fun uapmdDispatchLoadState(cbId: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchMakeAlive(cbId: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchMidiInput(cbId: Int, messagesPtr: Int, count: Int, timestamp: Double)
Link copied to clipboard
fun uapmdDispatchProjectSave(cbId: Int, resultPtr: Int)

uapmd_app_project_result_t by value = a pointer. wasm32: bool @0, char* @4.

Link copied to clipboard
Link copied to clipboard
fun uapmdDispatchRenderProgress(cbId: Int, progress: Double, renderedSec: Double, totalSec: Double, renderedFrames: Double, totalFrames: Double)
Link copied to clipboard
fun uapmdDispatchRequestState(cbId: Int, dataPtr: Int, size: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchSavePick(cbId: Int, resultPtr: Int)

Hands the first handle's address on, so the save can use it without copying.

Link copied to clipboard
Link copied to clipboard
fun uapmdDispatchScanBundleStart(cbId: Int, pathPtr: Int)
Link copied to clipboard
Link copied to clipboard
fun uapmdDispatchScanError(cbId: Int, msgPtr: Int)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun uapmdDispatchTrackFragment(cbId: Int, fragmentPtr: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchTrackMutation(cbId: Int, trackIndex: Int, errorPtr: Int)
Link copied to clipboard
fun uapmdDispatchUndoCompletion(cbId: Int, resultPtr: Int)

The C callback takes uapmd_undo_result_t by value, i.e. as a pointer.