xref: /freebsd/share/man/man4/snd_hdsp.4 (revision 5687c71d5f369aa39cd295fa64b596b2dce2c997)
1*5687c71dSFlorian Walpen.\" Copyright (c) 2012 Ruslan Bukin <br@bsdpad.com>
2*5687c71dSFlorian Walpen.\" Copyright (c) 2024 Florian Walpen <dev@submerge.ch>
3*5687c71dSFlorian Walpen.\" All rights reserved.
4*5687c71dSFlorian Walpen.\"
5*5687c71dSFlorian Walpen.\" Redistribution and use in source and binary forms, with or without
6*5687c71dSFlorian Walpen.\" modification, are permitted provided that the following conditions
7*5687c71dSFlorian Walpen.\" are met:
8*5687c71dSFlorian Walpen.\" 1. Redistributions of source code must retain the above copyright
9*5687c71dSFlorian Walpen.\"    notice, this list of conditions and the following disclaimer.
10*5687c71dSFlorian Walpen.\" 2. Redistributions in binary form must reproduce the above copyright
11*5687c71dSFlorian Walpen.\"    notice, this list of conditions and the following disclaimer in the
12*5687c71dSFlorian Walpen.\"    documentation and/or other materials provided with the distribution.
13*5687c71dSFlorian Walpen.\"
14*5687c71dSFlorian Walpen.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*5687c71dSFlorian Walpen.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*5687c71dSFlorian Walpen.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*5687c71dSFlorian Walpen.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*5687c71dSFlorian Walpen.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*5687c71dSFlorian Walpen.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*5687c71dSFlorian Walpen.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*5687c71dSFlorian Walpen.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*5687c71dSFlorian Walpen.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*5687c71dSFlorian Walpen.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*5687c71dSFlorian Walpen.\" SUCH DAMAGE.
25*5687c71dSFlorian Walpen.\"
26*5687c71dSFlorian Walpen.Dd May 1, 2024
27*5687c71dSFlorian Walpen.Dt SND_HDSP 4
28*5687c71dSFlorian Walpen.Os
29*5687c71dSFlorian Walpen.Sh NAME
30*5687c71dSFlorian Walpen.Nm snd_hdsp
31*5687c71dSFlorian Walpen.Nd "RME HDSP bridge device driver"
32*5687c71dSFlorian Walpen.Sh SYNOPSIS
33*5687c71dSFlorian WalpenTo compile this driver into the kernel, place the following lines in your
34*5687c71dSFlorian Walpenkernel configuration file:
35*5687c71dSFlorian Walpen.Bd -ragged -offset indent
36*5687c71dSFlorian Walpen.Cd "device sound"
37*5687c71dSFlorian Walpen.Cd "device snd_hdsp"
38*5687c71dSFlorian Walpen.Ed
39*5687c71dSFlorian Walpen.Pp
40*5687c71dSFlorian WalpenAlternatively, to load the driver as a module at boot time, place the
41*5687c71dSFlorian Walpenfollowing line in
42*5687c71dSFlorian Walpen.Xr loader.conf 5 :
43*5687c71dSFlorian Walpen.Bd -literal -offset indent
44*5687c71dSFlorian Walpensnd_hdsp_load="YES"
45*5687c71dSFlorian Walpen.Ed
46*5687c71dSFlorian Walpen.Sh DESCRIPTION
47*5687c71dSFlorian WalpenThe
48*5687c71dSFlorian Walpen.Nm
49*5687c71dSFlorian Walpenbridge driver allows the generic audio driver
50*5687c71dSFlorian Walpen.Xr sound 4
51*5687c71dSFlorian Walpento attach to RME HDSP audio devices.
52*5687c71dSFlorian Walpen.Sh HARDWARE
53*5687c71dSFlorian WalpenThe
54*5687c71dSFlorian Walpen.Nm
55*5687c71dSFlorian Walpendriver supports the following audio devices:
56*5687c71dSFlorian Walpen.Pp
57*5687c71dSFlorian Walpen.Bl -bullet -compact
58*5687c71dSFlorian Walpen.It
59*5687c71dSFlorian WalpenRME HDSP 9632
60*5687c71dSFlorian Walpen.It
61*5687c71dSFlorian WalpenRME HDSP 9652
62*5687c71dSFlorian Walpen.El
63*5687c71dSFlorian Walpen.Pp
64*5687c71dSFlorian WalpenBy default, each
65*5687c71dSFlorian Walpen.Xr pcm 4
66*5687c71dSFlorian Walpendevice corresponds to a physical port on the sound card.
67*5687c71dSFlorian WalpenFor ADAT ports, 8 channel, 4 channel and 2 channel formats are supported.
68*5687c71dSFlorian WalpenThe effective number of ADAT channels is 8 channels at single speed
69*5687c71dSFlorian Walpen(32kHz-48kHz) and 4 channels at double speed (64kHz-96kHz).
70*5687c71dSFlorian WalpenOnly the HDSP 9632 can operate at quad speed (128kHz-192kHz), ADAT is
71*5687c71dSFlorian Walpendisabled in this mode.
72*5687c71dSFlorian WalpenDepending on sample rate and channel format selected, not all pcm channels can
73*5687c71dSFlorian Walpenbe mapped to ADAT channels and vice versa.
74*5687c71dSFlorian Walpen.Sh LOADER TUNABLES
75*5687c71dSFlorian WalpenThese settings can be entered at the
76*5687c71dSFlorian Walpen.Xr loader 8
77*5687c71dSFlorian Walpenprompt or in
78*5687c71dSFlorian Walpen.Xr loader.conf 5 .
79*5687c71dSFlorian Walpen.Bl -tag -width indent
80*5687c71dSFlorian Walpen.It Va hw.hdsp.unified_pcm
81*5687c71dSFlorian WalpenIf set to 1, all physical ports are combined into one unified pcm device.
82*5687c71dSFlorian WalpenWhen opened in multi-channel audio software, this makes all ports available
83*5687c71dSFlorian Walpenat the same time, and fully synchronized.
84*5687c71dSFlorian WalpenFor resulting channel numbers consult the following table:
85*5687c71dSFlorian Walpen.El
86*5687c71dSFlorian Walpen.Bl -column "Sound Card" "Single Speed" "Double Speed" "Quad Speed"
87*5687c71dSFlorian Walpen.Sy "Sound Card" Ta Sy "Single Speed" Ta Sy "Double Speed" Ta Sy "Quad Speed"
88*5687c71dSFlorian Walpen.It "" Ta "Play | Rec" Ta "Play | Rec" Ta "Play | Rec"
89*5687c71dSFlorian Walpen.It HDSP 9632 Ta " 12  |  12" Ta "  8  |   8" Ta "  4  |   4"
90*5687c71dSFlorian Walpen.It HDSP 9652 Ta " 26  |  26" Ta " 14  |  14" Ta "  -  |   -"
91*5687c71dSFlorian Walpen.El
92*5687c71dSFlorian Walpen.Sh SYSCTL TUNABLES
93*5687c71dSFlorian WalpenThese settings and informational values can be accessed at runtime with the
94*5687c71dSFlorian Walpen.Xr sysctl 8
95*5687c71dSFlorian Walpencommand.
96*5687c71dSFlorian WalpenIf multiple RME HDSP sound cards are installed, each device has a separate
97*5687c71dSFlorian Walpenconfiguration.
98*5687c71dSFlorian WalpenTo adjust the following sysctl identifiers for a specific sound card, insert
99*5687c71dSFlorian Walpenthe respective device number in place of
100*5687c71dSFlorian Walpen.Ql 0 .
101*5687c71dSFlorian Walpen.Bl -tag -width indent
102*5687c71dSFlorian Walpen.It Va dev.hdsp.0.sample_rate
103*5687c71dSFlorian WalpenSet a fixed sample rate from 32000, 44100, 48000, up to 192000.
104*5687c71dSFlorian WalpenThis is usually required for digital connections (AES, S/PDIF, ADAT).
105*5687c71dSFlorian WalpenThe default value of 0 adjusts the sample rate according to pcm device settings.
106*5687c71dSFlorian Walpen.It Va dev.hdsp.0.period
107*5687c71dSFlorian WalpenThe number of samples processed per interrupt, from 32, 64, 128, up to 4096.
108*5687c71dSFlorian WalpenSetting a lower value here results in less latency, but increases system load
109*5687c71dSFlorian Walpendue to frequent interrupt processing.
110*5687c71dSFlorian WalpenExtreme values may cause audio gaps and glitches.
111*5687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_list
112*5687c71dSFlorian WalpenLists possible clock sources to sync with, depending on the hardware model.
113*5687c71dSFlorian WalpenThis includes internal and external master clocks as well as incoming digital
114*5687c71dSFlorian Walpenaudio signals like AES, S/PDIF and ADAT.
115*5687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_preference
116*5687c71dSFlorian WalpenSelect a preferred clock source from the clock list.
117*5687c71dSFlorian WalpenHDSP cards will sync to this clock source when available, but fall back to
118*5687c71dSFlorian Walpenauto-sync with any other digital clock signal they receive.
119*5687c71dSFlorian WalpenSet this to
120*5687c71dSFlorian Walpen.Ql internal
121*5687c71dSFlorian Walpenif the HDSP card should act as master clock.
122*5687c71dSFlorian Walpen.It Va dev.hdsp.0.clock_source
123*5687c71dSFlorian WalpenShows the actual clock source in use (read only).
124*5687c71dSFlorian WalpenThis differs from what is set as clock preference when in auto-sync mode.
125*5687c71dSFlorian Walpen.It Va dev.hdsp.0.sync_status
126*5687c71dSFlorian WalpenDisplay the current sync status of all external clock sources.
127*5687c71dSFlorian WalpenStatus indications are
128*5687c71dSFlorian Walpen.Ql none
129*5687c71dSFlorian Walpenfor no signal at all,
130*5687c71dSFlorian Walpen.Ql lock
131*5687c71dSFlorian Walpenfor when a valid signal is present, and
132*5687c71dSFlorian Walpen.Ql sync
133*5687c71dSFlorian Walpenfor accurately synchronized signals (required for recording digital
134*5687c71dSFlorian Walpenaudio).
135*5687c71dSFlorian Walpen.El
136*5687c71dSFlorian Walpen.Pp
137*5687c71dSFlorian WalpenWhere appropriate these sysctl values are modeled after official RME software on
138*5687c71dSFlorian Walpenother platforms, and adopt their terminology.
139*5687c71dSFlorian WalpenConsult the RME user manuals for additional information.
140*5687c71dSFlorian Walpen.Sh SEE ALSO
141*5687c71dSFlorian Walpen.Xr sound 4
142*5687c71dSFlorian Walpen.Sh HISTORY
143*5687c71dSFlorian WalpenThe
144*5687c71dSFlorian Walpen.Nm
145*5687c71dSFlorian Walpendevice driver first appeared in
146*5687c71dSFlorian Walpen.Fx 15.0 .
147*5687c71dSFlorian Walpen.Sh AUTHORS
148*5687c71dSFlorian Walpen.An -nosplit
149*5687c71dSFlorian WalpenBased on
150*5687c71dSFlorian Walpen.Xr snd_hdspe 4
151*5687c71dSFlorian Walpenoriginally written by
152*5687c71dSFlorian Walpen.An Ruslan Bukin <br@bsdpad.com> .
153*5687c71dSFlorian WalpenAll adaptation to HDSP cards by
154*5687c71dSFlorian Walpen.An Florian Walpen <dev@submerge.ch> .
155