SND_HDSPE(4)
β¨ snd_hdspe β RME HDSPe bridge device driver β¨
okay bestie so this whole page is SND_HDSPE(4) from the Kernel Interfaces Manual, and it's literally about making bougie German audio hardware work on your machine. let's get into it π
πΈ NAME πΈ
snd_hdspe β the RME HDSPe bridge device driver. that's it, that's the vibe π
π¦ SYNOPSIS π¦
so if you wanna bake this driver right into your kernel (main character energy, love that for you), you drop these lines into your kernel configuration file:
device sound
device snd_hdspe
or, if you'd rather load it as a module at boot time (lowkey more chill ngl), put this line in loader.conf(5):
snd_hdspe_load="YES"
either way, sound is happening π
π DESCRIPTION π
the snd_hdspe bridge driver is literally the matchmaker π β it lets the generic audio driver sound(4) attach to RME HDSPe audio devices. bridge driver doing bridge things, we stan a connector.
π§ HARDWARE π§
here's the hardware glow-up list β the snd_hdspe driver supports these audio devices:
- RME HDSPe AIO (with optional
AO4S-192andAI4S-192extension boards) π - RME HDSPe RayDAT π
by default, each pcm(4) device corresponds to a physical port on the sound card. for ADAT ports, the 8 channel, 4 channel and 2 channel formats are supported. the effective number of ADAT channels is 8 channels at single speed (32kHz-48kHz), 4 channels at double speed (64kHz-96kHz), and 2 channels at quad speed (128kHz-192kHz). depending on the sample rate and channel format you picked, not all pcm channels can be mapped to ADAT channels and vice versa β so like, some combos just don't line up, no cap π
π§ LOADER TUNABLES π§
these settings can be entered at the loader(8) prompt or in loader.conf(5). very set-it-up-front, very prepared queen π
hw.hdspe.unified_pcmβ if you set this to1, all physical ports get combined into one unified pcm device. when it's opened in multi-channel audio software, this makes all ports available at the same time, and fully synchronized β like a group chat where everyone actually shows up π«Ά for the resulting channel numbers, consult the following:- HDSPe AIO β single speed: play
20| rec18; double speed: play16| rec14; quad speed: play14| rec12 - HDSPe RayDAT β single speed: play
36| rec36; double speed: play20| rec20; quad speed: play12| rec12
- HDSPe AIO β single speed: play
β SYSCTL TUNABLES β
these settings and informational values can be accessed at runtime with the sysctl(8) command. if multiple RME HDSPe sound cards are installed, each device has a separate configuration β every card gets its own personality, iconic π to adjust the following sysctl identifiers for a specific sound card, insert the respective device number in place of 0.
dev.hdspe.0.sample_rateβ set a fixed sample rate from32000,44100,48000, up to192000. this is usually required for digital connections (AES, S/PDIF, ADAT). the default value of0adjusts the sample rate according to pcm device settings.dev.hdspe.0.periodβ the number of samples processed per interrupt, from32,64,128, up to4096. setting a lower value here results in less latency, but increases system load due to frequent interrupt processing. extreme values may cause audio gaps and glitches β so like, don't be extra about it πdev.hdspe.0.clock_listβ lists possible clock sources to sync with, depending on the hardware model. this includes internal and external master clocks as well as incoming digital audio signals like AES, S/PDIF and ADAT.dev.hdspe.0.clock_preferenceβ select a preferred clock source from the clock list. HDSPe cards will sync to this clock source when available, but fall back to auto-sync with any other digital clock signal they receive. set this tointernalif the HDSPe card should act as master clock πdev.hdspe.0.clock_sourceβ shows the actual clock source in use (read only). this differs from what is set as clock preference when in auto-sync mode. it's giving "who am i really" π¦dev.hdspe.0.sync_statusβ display the current sync status of all external clock sources. status indications arenonefor no signal at all,lockfor when a valid signal is present, andsyncfor accurately synchronized signals (required for recording digital audio). three moods, all valid π
the following tunables are applicable to HDSPe AIO devices only:
dev.hdspe.0.input_levelβ select the sensitivity of the analog line input. available reference levels for the input signal areLowGain,+4dBuand-10dBV.dev.hdspe.0.output_levelβ select the gain level of the analog line output. available reference levels for the output signal areHighGain,+4dBuand-10dBV.dev.hdspe.0.phones_levelβ adjust the gain level of the phones output, separately from the analog line output. available reference levels for the output signal areHighGain,+4dBuand-10dBV. headphones doing their own thing, we love independence π§
where appropriate these sysctl values are modeled after official RME software on other platforms, and adopt their terminology. consult the RME user manuals for additional information π«Ά
π₯ SEE ALSO π₯
π HISTORY π
the snd_hdspe device driver first appeared in FreeBSD 10.0. elder emoji moment, respect the OG β
π«Ά AUTHORS π«Ά
the snd_hdspe driver was written by Ruslan Bukin <br@bsdpad.com>. Florian Walpen <dev@submerge.ch> contributed clock source settings and restructured the pcm device mapping β clock icon behavior fr fr π
and that's the whole page bestie!! this one's from Debian, dated November 2, 2024, page SND_HDSPE(4) β go forth and make beautiful synchronized audio, mwah ππ
π¦ where this page comes from
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2012 Ruslan Bukin <br@bsdpad.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms