Skip to content

Releases: ismail-bahloul/babyface-pro-linux

snd-usb-babyface-pro 0.2.2

Choose a tag to compare

@ismail-bahloul ismail-bahloul released this 27 Oct 11:52

snd-usb-babyface-pro 0.2.2.

Fixed

  • The front panel's OUT wheel moved ADAT7/8 when Opt was selected. It moves AS1/2, the first optical pair, which is the same mixer output in ADAT and S/PDIF mode, so the target no longer depends on the Optical Out Format setting (#12).

Changed

  • The series under patches/ is the one submitted upstream on 2026-10-27, [PATCH v7 0/8], rebased on next-20261026.

Known open

  • Turning the wheel with OUT=Opt is still the check that confirms the pair on hardware. The AS1/2 signal itself on the fibre needs S/PDIF-only gear to verify.

Install (Arch): paru -S snd-usb-babyface-pro-dkms

Full changelog: https://github.com/ismail-bahloul/babyface-pro-linux/blob/main/CHANGELOG.md

snd-usb-babyface-pro 0.2.1

Choose a tag to compare

@ismail-bahloul ismail-bahloul released this 27 Oct 09:39

snd-usb-babyface-pro 0.2.1.

Fixed

  • The crosspoint map had AN1/2 and PH3/4 swapped and shifted every pair after them, so a mix into one output landed in the next pair's submix. The driver now writes 0x34 * pair + 0x1A * side + source, checked on an FS with a per-pair loopback matrix (#36, from the captures in #31).
  • The EQ's alpha is sin(w0 / (2Q)), as TotalMix computes it, which removes the high-frequency warping the notes still listed as open (#35, #31).

Changed

  • From a 128-frame period the driver keeps one and a half periods of URBs in flight, splitting the period in two. Through PipeWire the round trip drops from 554 to 490 frames at 128 and from 1066 to 938 at 256 (#37).
  • Documentation: the latency page explains the settings and the measured round trip, tools/delay-sweep.sh measures it, and the places where the captures in #31 disagree with ours are marked disputed (#32, #33, #34).

Known open

  • The level of a joined stereo pair (point 3 of #31) is still being settled with the reporter: our FS captures and theirs disagree on what TotalMix writes for a linked pair at 0 dB.
  • The front-panel wheel uses the corrected crosspoint addressing but has not been checked on the physical panel.

Install (Arch): paru -S snd-usb-babyface-pro-dkms

Full changelog: https://github.com/ismail-bahloul/babyface-pro-linux/blob/main/CHANGELOG.md

snd-usb-babyface-pro 0.2.0

Choose a tag to compare

@ismail-bahloul ismail-bahloul released this 23 Oct 21:02
3a24346

Third tagged release of the out-of-tree ALSA driver for the RME Babyface Pro FS in proprietary USB mode.

Playback underruns

  • The PCM core now sees playback underruns, so a late write is reported instead of being swallowed silently (thanks to @davfre, #25).
  • New tools/pcmlate checks it: a delayed write now returns -EPIPE instead of hanging.
  • pcmxrun primes playback before restarting after an xrun. The frozen restart was the probe, not the driver.

Capture order

  • Capture is exposed in the device's own channel order: ch0-3 AN1-4, ch4/5 AS1/2, ch6-11 ADAT3-8.
  • The tools (pcmxrun, pcmreneg, looplat, pcmlate, latency-test.sh, regress.sh) read the AS1/2 loopback on capture channels 4/5.
  • This is user-visible: TuxMix 0.3.1 or later is required. Older TuxMix versions mislabel AS1/2 and ADAT3-8 with this driver.

PipeWire and latency

  • The card defaults to 256 frames through PipeWire and follows the PipeWire quantum through the updated WirePlumber rule.
  • The low-latency modprobe template follows the period-following URBs and the latest soak results.
  • Documentation: shorter README, with install, latency and features moved to docs/; real-time low-period soaks (32/24/16 frames clean, xruns are system events).

Validation

Full hardware run on the Pro FS, kernel 7.2.11-1-cachyos, full-duplex at 48 kHz:

  • tools/kernel/regress.sh --mixer-restore --disconnect-test: 41 passed, 0 failed, 0 skipped.
  • mmap sweep (PCMX_MMAP=1): 38 passed.
  • pcmlate at 48 kHz, periods 256/1024/2048: pass.
  • dmix with a 1 s tone: exits 0.
  • AS1/2 loopback tap: -30 dBFS on capture channels 4/5.

Packaging

  • AUR snd-usb-babyface-pro-dkms and the DKMS path are bumped to 0.2.0, with the real tarball checksum in the follow-up commit.
  • PR #25 merged, which also adds tools/pcmlate.

Install

Arch:

paru -S snd-usb-babyface-pro-dkms

The AUR 0.2.0-1 update may lag this GitHub release.

Manual:

make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules
sudo make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules_install

Drop LLVM=1 on a gcc-built kernel. See KERNEL-DRIVER.md for DKMS and test notes.

Known gaps

  • The S/PDIF signal itself on the fibre is still unmeasured; the Optical Out Format control from 0.1.1 is verified in state only.
  • Front-panel behaviour with OUT set to Opt in S/PDIF mode is still unverified (#12).
  • The v7 series is cut on next-20261002 but not submitted yet; this tag is the reference for the current out-of-tree build.

snd-usb-babyface-pro 0.1.1

Choose a tag to compare

@ismail-bahloul ismail-bahloul released this 18 Oct 08:58

Second tagged release of the out-of-tree ALSA driver for the RME Babyface Pro FS in proprietary USB mode.

Optical output format

  • New Optical Out Format enum control (ADAT / S/PDIF), exposed through ALSA and implemented like Sample Clock Source. The driver now keeps the format in chip->optical_spdif and ORs bit 10 into every settings word, including the combined write during cold init. ADAT remains the default, so existing behaviour is unchanged.
  • Verified live on the Pro FS: the control appears after reload, defaults to ADAT, switches to S/PDIF and back, and the clock control still works.
  • TuxMix 0.2.1 already drives this control on its ALSA backend.

Regression coverage

  • tools/kernel/regress.sh now enables the AS1/2 loopback around the sweep and renegotiation tests, and restores the previous mixer state. Without the loopback the tap is silent, since 0.1.0 exposes real AS1/2 on capture channels 10/11 instead of the old playback echo.
  • Full hardware run on the Pro FS with this source: 41 passed, 0 failed, 0 skipped.

Packaging

  • The AUR package and the documented DKMS path are bumped to 0.1.1, with the real tarball checksum in the follow-up commit.
  • PR #19 dropped the separator comments; no functional change.

Known gaps

  • The S/PDIF signal itself on the fibre was not measured, only the control state and the settings write.
  • The front-panel behaviour with OUT set to Opt in S/PDIF mode is still unverified: it is not known whether the wheel moves AS1/2 instead of ADAT7/8 there.

Install

Arch:

paru -S snd-usb-babyface-pro-dkms

The AUR 0.1.1-1 update may lag this GitHub release.

Manual:

make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules
sudo make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules_install

Drop LLVM=1 on a gcc-built kernel. See KERNEL-DRIVER.md for DKMS and test notes.

Notes

  • Tested on 7.2.9-2-cachyos (clang-built), full-duplex at 48 kHz.
  • The module is still under upstream review; this tag is the reference for the current out-of-tree build.

snd-usb-babyface-pro 0.1.0

Choose a tag to compare

@ismail-bahloul ismail-bahloul released this 17 Oct 21:06

First tagged release of the out-of-tree ALSA driver for the RME Babyface Pro FS in proprietary USB mode.

What it does

  • Full mixer control surface through ALSA: 6 output masters, the 6x14 crosspoint matrix, preamp gains, 48V/PAD, clock source, ref level, phase, trim, stereo split, loopback, width, FX send, MS processing, input link and AN 1>2.
  • 2 to 12 channel PCM, 32 kHz to 192 kHz, S32_LE.
  • DSP EQ (4 strips, 3-band plus low cut) through the bulk endpoint.
  • Front-panel readback (OUT/MIX/DIM, wheel, IN/OUT selection).

Capture map in 0.1.0

  • ch0-3 = AN1-4
  • ch4-9 = ADAT3-8
  • ch10/11 = AS1/2 (device words 4/5)

AS1/2 was confirmed with the device's own loopback. The old playback echo tap (words 12/13) is no longer exposed. If you record from the card, channels 0-9 keep their previous meaning; 10/11 now carry AS1/2 instead of the tap. This is the map TuxMix v0.2.0 needs for its 12-input meters.

Install

Arch: the packaging in aur/snd-usb-babyface-pro-dkms is updated for this tag; push it to the AUR if it is not published yet.

Manual:

make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules
sudo make LLVM=1 -C /lib/modules/$(uname -r)/build M=$PWD/tools/kernel modules_install

Drop LLVM=1 on a gcc-built kernel. Kernel headers for the running kernel are required. See KERNEL-DRIVER.md for the full build, test and DKMS notes.

Notes

  • Tested on 7.2.9-2-cachyos (clang-built), full-duplex at 48 kHz.
  • The module is still under upstream review; this tag is the reference for the current out-of-tree build.