Skip to content

JackDAW-Haiku stack 0.1 (hrev59846)

Choose a tag to compare

@rations rations released this 13 Jul 12:39

JackDAW-Haiku stack 0.1 (hrev59846)

Native audio production on Haiku. JackDAW is a multitrack DAW built on Haiku's
native Interface Kit, together with a USB-audio driver (UAC2), the JACK server, a
patchbay, and two VST3 plugins — NAMku (Neural Amp Modeler) and DRUMku (drum
sampler). Verified on Haiku nightly hrev59846 x86_64.

Looking for testers with a class-compliant USB Audio Class 2.0 interface to record,
and run the plugins. One kernel driver is built from source (guided below); the rest
installs as packages.


Prerequisites

  • Haiku nightly hrev59846, x86_64. The kernel driver is ABI-tied to this revision — on
    any other nightly you must rebuild it (same script, new HREV=).
  • A class-compliant UAC2 USB audio interface. Tested: Behringer UMC204HD
    (1397:0508), XMOS-based NUX USB Audio 2.0 (20b1:2018). Other UAC2 devices are
    expected to work but untested.

Step 1 — USB-audio driver (build from source, required first)

Stock Haiku sees UAC2 interfaces but won't publish an audio node for them, so JACK has no
device to open. Install the driver override from
haiku-kernel-usb — full steps in its
dist/INSTALL.md.

The build needs a Haiku source tree on the usb-audio-uac2 branch (this is where the
driver changes live) plus the Haiku build tools. Get the source, then build and install:

# 1. Haiku source with the driver changes (shallow clone is enough; a few GB)
git clone -b usb-audio-uac2 --depth 1 https://github.com/rations/haiku.git ~/haiku

# 2. Build tools
pkgman install -y jam nasm gcc_syslibs_devel zlib_devel zstd_devel

# 3. Build the three add-ons and install the override
git clone https://github.com/rations/haiku-kernel-usb
cd haiku-kernel-usb/dist
HREV=hrev59846 HAIKU_SRC=$HOME/haiku ./build-driver.sh
./install-driver.sh

Then reboot and tap Space at power-on to reach the boot menu → Select safe mode
options → Disable system components → add-ons → kernel → boot
→ toggle xhci → Return
back to main menu and select continue booting.
(This must be redone each boot; the persistent route is the haiku.hpkg swap in INSTALL.md.)

Verify:

listusb                       # your interface enumerates
ls /dev/audio/hmulti/          # an audio node appears (usb)

Step 2 — Install the stack

Download all .hpkg files below into one folder, then install them together in one
command
so pkgman can resolve the stack (external deps like glib2/libsndfile/libsamplerate
are pulled automatically from HaikuPorts):

pkgman install ./jack-*.hpkg ./jack_tools-*.hpkg ./jackgraph-*.hpkg \
  ./vst3_haiku-*.hpkg ./namku-*.hpkg ./drumku-*.hpkg ./jackdaw-*.hpkg

Install them as a group — jackdaw depends on jack, which is one of these files, not a
HaikuPorts package. Installing jackdaw.hpkg on its own will fail to resolve.

Step 3 — Run

Start the JACK server from Jack Settings in Jack Graph. In the settings window select usb/1
in Interface Sample rate 48000 Frames/period 256 Periods/buffer 3 check the boxes for MIDI driver
and Realtime.and click start. Then launch JackDAW from Deskbar (or JackDAW):
You can also start Jack from the terminal but will not be able to stop it using Jack Graph if you do.

jackd -X haikumidi -d hmulti -d /dev/audio/hmulti/usb/1 -r 48000 -p 256 -n 3

NAMku and DRUMku appear in JackDAW's plugin list. Load a .nam capture + an impulse-response
.wav in NAMku; point DRUMku at your .wav drum samples.


What's included

Package Role
jack JACK2 audio server + libraries
jack_tools JACK command-line tools (jack_lsp, jack_connect, …)
jackgraph Patchbay / connection GUI
vst3_haiku VST3 SDK host + example plugins
namku NAMku — Neural Amp Modeler VST3
drumku DRUMku — drum sampler VST3
jackdaw JackDAW — the multitrack DAW

The USB-audio driver is not a package (kernel add-ons are ABI-tied to the hrev) — build it
from source per Step 1.

Known caveats

  • Driver is not upstreamed; install it as the reversible non-packaged override above.
    Rollback: rm /boot/system/settings/packages and reboot.
  • The xhci boot-menu blacklist is per-boot unless you do the persistent haiku.hpkg swap.
  • VST3 CC / pitch-bend into plugins is implemented but only partially hardware-tested.

Reports welcome — please include your hrev, USB interface (ID from listusb), and JACK
buffer settings.