Treefall SDK documentation
Build playback, recording, routing, and media workflows with the Treefall SDK. Start with Get started to choose an integration path, then build and install the package before connecting it to your application.
Choose a task
Section titled “Choose a task”- Build a package: Build and install separates a source build from an installed package and shows the CMake provider requirement.
- Connect the SDK to your application: Link the SDK shows package discovery and the
Treefall::transporttarget. - Read or write media: Audio files gives the control-thread sequence for capability checks, preflight, probing, reading, writing, and cleanup.
- Use the C interface: C ABI negotiation shows how to request ABI 1.0 and reject an incompatible table.
What runs where
Section titled “What runs where”The host-neutral core, session, transport, routing, analysis, and file APIs are the portable starting point. They can be used for offline work without opening an audio device. The Dummy driver is available for device-free integration and tests.
Device playback is a separate choice. CoreAudio is the shipped production device backend on macOS. Linux ships no production device backend; use host-neutral APIs or Dummy there. Windows WASAPI is source/package validation only and is not release-supported. A backend being present in source or compiling successfully does not establish device support—check the installed target and runtime capability result for the package you built.
Realtime rule of thumb
Section titled “Realtime rule of thumb”Prepare files, source data, routing, and commands before the callback. Call processAudio() from exactly one non-reentrant audio thread with the configured planar buffers and no more than the configured frame limit. The callback must not allocate, lock, block, perform file or network I/O, log, or invoke host callbacks. Drain transport events and telemetry from the control/message thread.
Version and source
Section titled “Version and source”These pages describe Treefall SDK 0.9.0. The API references below point to source revision b8c8b87540fe585b5c7d5c8f25d193c1a1af93d5; use that revision and an isolated install prefix when reproducing the package.