Releases: caseypaite/AudioKitSynthOne
Release list
Synth One 0.2.0 — audio device picker, Windows build, Raspberry Pi
Second pre-release of the Linux/Windows port. Adds output device selection, a
Windows cross build that works on current toolchains, and the fixes needed to
run on a Raspberry Pi with a DSI panel.
Pick your audio output
The GUI has an AUDIO dialog listing every output the backend can open,
grouped by driver family, with sample rate and buffer size and a readout of
what the running stream actually settled on. Both hosts also take
--list-devices and --device (an index, or any unambiguous part of a device
name).
The choice is remembered in $XDG_DATA_HOME/synthone/audio.json —
deliberately outside the preset directory, since which speaker a machine uses
must not travel with a preset collection. Device indices are not stable, so the
name is stored alongside the index and both must still agree.
Applying reopens the stream between frames; a sample-rate change rebuilds the
DSP kernel and restores the preset and tuning. Every failure path leaves the
synth audible on the device it had before.
Raspberry Pi
- OpenGL 3.1 fallback. The GUI asked for 3.2 core unconditionally. A Pi 4's
V3D driver tops out at 3.1 and the request does not degrade — it fails with
GLXBadFBConfig, so the window was never created and the kiosk restart-looped.
It now tries 3.2 core, falls back to 3.1, and carries the matching GLSL
version with the context. - The kiosk no longer blanks its own display. X blanked after ten minutes
and powered the panel down after twenty. On a DSI panel that is a one-way
trip: the backlight lands atbl_power=4and nothing wakes it. The X server
now runs with-s 0 -dpms. - Larger controls on roomier panels. Compact sizing scales with the display
rather than being fixed at 800x480. A Waveshare 7" (C) at 1024x600 gets knobs
and panel tabs a quarter larger; FX, which had no room to spare at 800x480,
reflows to three shelves there and takes 72px faces instead of 40px. 800x480
renders exactly as before.
Tested end to end on a Pi 4 Model B, Raspberry Pi OS Bookworm (arm64), with a
Waveshare 7" DSI LCD (C). That panel needs its own overlay — see the kiosk
section of linux/README.md. Driving it with the official display's
vc4-kms-dsi-7inch renders correctly but never lights the backlight, because
that overlay binds an ATTINY at 0x45 which the panel does not have.
Fixes
- Windows cross build repaired. CMake 4 dropped compatibility with
cmake_minimum_requiredbelow 3.5, which broke both fetched dependencies, and
the audio-config path assumed POSIXfilesystem::pathsemantics. - Sequencer step indicator. The kernel's beat counter free-runs — a single
held note walks it past 260 — and the UI never folded it back, so the lit step
went dark once a held note outlasted one pass of the sequence. It now wraps,
and rests on step 1 when nothing is held, matching the iOS panel. - Audio config moved out of the preset directory, where a bank named
"audio" would have collided with it.
Downloads
| file | platform |
|---|---|
synthone-linux-x86_64.zip |
Linux x86_64 |
synthone-linux-aarch64.zip |
Linux arm64 (Raspberry Pi 4/5, 64-bit OS) |
synthone-windows-x86_64.zip |
Windows 10/11 x86_64 |
Linux: unzip and run ./install.sh (add --kiosk on a Pi to boot straight
into the synth). Windows: unzip and run synthone-gui.exe — the binaries are
statically linked and import only Windows' own DLLs.
Each archive has a .sha256 beside it; verify with sha256sum -c.
The aarch64 archive was compiled natively on a Raspberry Pi 4; the other two
were built on Linux x86_64, Windows cross-compiled with MinGW-w64.
Synth One 0.1.0 — Linux and Windows
Native Linux and Windows builds of AudioKit Synth One — the engine, a
standalone host, and a Dear ImGui front end. The DSP is the original iOS kernel
compiled in place against a compatibility layer, not a reimplementation, so it
is the same synth and the same factory preset banks. The Linux and Windows
binaries render the same preset to byte-identical audio.
This is a pre-release: it is built and tested on x86_64 Linux. The
Raspberry Pi kiosk path has not been run on real Pi hardware, and the Windows
binaries are cross-compiled and exercised under WSL rather than on a Windows
machine with real audio hardware.
Downloads
| File | For |
|---|---|
synthone-linux-x86_64.zip |
Desktop / laptop Linux (Intel, AMD) |
synthone-linux-aarch64.zip |
Raspberry Pi 4/5 and other ARM64 Linux |
synthone-windows-x86_64.zip |
Windows 10/11, 64-bit |
Linux
unzip synthone-linux-x86_64.zip
cd synthone-linux-x86_64
./install.sh # ~/.local, adds a menu entry
sudo ./install.sh --prefix /usr/local # or system-wideThe archives carry the binaries and their data but link against your system
libraries: alsa-lib, glfw, libGL, jack or pipewire-jack, portaudio, libX11.
Windows
Unzip it and run synthone-gui.exe — there is no installer and nothing to
register. Everything third-party is linked statically, so the binaries import
nothing but Windows' own DLLs; there is no redistributable to install.
Keep the resources\ and data\ folders next to the executables, which is
where they look first.
Audio goes out through PortAudio, which wraps four Windows driver families.
The default prefers WASAPI, then DirectSound, over the MME device Windows
would otherwise hand back; override it per machine with
--host-api wasapi|directsound|mme|wdmks. MIDI in is WinMM: --list-midi
numbers your devices and --midi N opens one, all (the default) opens every
one.
Either way you then get synthone-gui for the graphical front end, synthone
for the headless MIDI-driven host, or synthone-offline to render a preset to
a WAV with no audio hardware at all.
Raspberry Pi
sudo ./install.sh --kiosk --kiosk-user pi adds a systemd service that boots
straight into the synth — a bare X server on tty1 with the GUI as its only
client, no desktop and no window manager. The interface lays itself out for the
official 7" 800x480 display: every panel fits without scrolling, and controls
are sized for a fingertip. Settings live in /etc/synthone/kiosk.conf.
Verifying
1a54dae531fdb15f674bcea488988ea3388188a8eb7f98088a7609bd992e88ad synthone-linux-x86_64.zip
93f23b555f1df7fc9315cab1f9b8f7b9967c0b2d8022c7372eb3b413563fdbe7 synthone-linux-aarch64.zip
b0c71d5c55c2e4a6e94db1d869e4f764e9554bd69eac9de479674bb3ba7f7a62 synthone-windows-x86_64.zip
Known limitations
- The kiosk service is untested on real Pi hardware; the ARM64 binaries are
built under emulation. - On Windows, WASAPI exclusive mode and ASIO — the two routes to genuinely
low latency — are not available; ASIO needs a licensed SDK that cannot be
shipped. Round-trip latency has not been measured on a Windows machine. - JACK is not built for Windows; PortAudio reaches the same drivers.
- The GUI is a rebuild, not a port of the PaintCode artwork, so it does not
look like the iOS app. - Ableton Link is not included.
- Nothing here changes the iOS project, which still needs macOS and Xcode.
See linux/README.md
for the design and the full build instructions.