A Linux kernel ALSA driver for the MOTU MicroBook mk1 USB audio interface
(07fd:0004). This is a custom (non-UAC) device: mainline snd-usb-audio has a
quirk for the MicroBook II that matches the same USB ID, but it cannot drive
the mk1. This module implements the vendor control protocol and isochronous
audio transport directly.
- Playback: 2-channel, 24-bit packed (S24_3LE), 44.1 and 48 kHz
- Capture: 4-channel, 24-bit packed (S24_3LE), 44.1 and 48 kHz
- Mixer controls: Headphone / Line / PCM volumes, mic trim, phantom power, pad, guitar trim — via ALSA mixer (alsamixer, amixer)
- Hardware direct monitoring: per-input zero-latency monitor levels
(
Guitar/Mic/Line Monitor Volume), decoded from the device's DSP mixer matrix - Low latency: ~15 ms round trip at 48 kHz out of the box, tunable to under 10 ms; sample rate is locked while both directions are open so a rate change cannot reboot the device under a running stream
- PipeWire/Cinnamon integration: split stereo sources, batch-aware timing, and persistent rate/quantum configuration
- Half-duplex guard: prevents crackling through USB hub transaction
translators;
allow_duplex=1for direct USB connections - debugfs register probe: raw access to the device's DSP address space for further reverse engineering
driver/ kernel module (motu-microbook.ko)
re/ reverse engineering notes and register maps
contrib/ WirePlumber/PipeWire/modprobe configuration
tools/ motu-probe.sh — DSP register probe (needs the driver's debugfs)
COPYING GPL-2.0 license
cd driver && make
sudo insmod motu-microbook.ko allow_duplex=1
speaker-test -D plughw:CARD=MOTU -c 2 -r 48000 -f 440 -t sine -p 5
alsamixer -c MOTUallow_duplex=1 is right for a direct USB port; leave it off through a hub.
For a permanent setup — module options, desktop integration and low-latency
configuration that survive a reboot — see contrib/README.md.
See driver/README.md for full build/load/test instructions
and the latency model, and re/ANALYSIS.md plus
re/cuemix_registers.md for the reverse engineering work.
GPL-2.0-only. See COPYING.