Skip to content
The Fenophone

Developer docs

Engine bindings

Thin, idiomatic bindings that embed the Fenophone engine as an adaptive-music runtime in native games. They all wrap one seam — a framework-free C interface — so every binding drives the same deterministic, seedable, tempo-syncable engine the web instrument and the DAW plugin run.

What's in the SDK

Getting the SDK. The runtime and its engine bindings ship privately today — join the waitlist for access (commercial titles and free game-jam builds both start there). These pages are the integration reference for what you get.

BindingLanguage / targetWhat it gives you
C++Header-only C++17fenophone::Instance — RAII over the C interface. The substrate for the Godot + Unreal bindings, and the lowest-friction path for any C/C++ engine. CI-built and run.
UnityC# / P/InvokeA FenophoneSource AudioSource + the instance wrapper, as a UPM package — plus the director sample with the regime listener.
Godot 4GDExtensionA FenophoneMusic node (an AudioStreamPlayer fed by the engine).
UnrealC++ pluginA UFenophoneMusicComponent (a USynthComponent), Blueprint-callable.

The shared shape

Every binding exposes the same small surface, because the C interface does:

How they're kept honest

The engine builds to a shared library and a static library from one crate, all exporting the identical C interface. The two bindings that re-state that interface (the C++ wrapper and the Unity P/Invoke layer) are pinned to the C header symbol-for-symbol by an automated test, and the C++ example is compiled and run in CI on every push — so a binding can never drift from the engine. Godot and Unreal consume the C++ wrapper rather than re-declaring the interface, so pinning the wrapper pins them too.

Licensing

Embedding the engine in a shipped game requires the Fenophone runtime license: a per-title, one-time, own-it-forever license, free for game jams and prototypes with a required credit ("adaptive music by Fenophone"). The bindings are covered by the same terms — nothing here grants a redistribution right the runtime license doesn't.

Where to go next