The priority of choosing this device as the driver in the graph. The driver is selected from all linked devices by selecting the device with the highest priority.
Normally, the session manager assigns higher priority to sources so that they become the driver in the graph. The reason for this is that adaptive resampling should be done on the sinks rather than the source to avoid signal distortion when capturing audio.
The name of the clock. This name is auto generated from the card index and stream direction. Devices with the same clock name will not use a resampler to align the clocks. This can be used to link devices together with a shared word clock.
In Pro Audio mode, nodes from the same device are assumed to have the same clock and no resampling will happen when linked togther. So, linking a capture port to a playback port will not use any adaptive resampling in Pro Audio mode.
In Non Pro Audio profile, no such assumption is made and adaptive resampling is done in all cases by default. This can also be disabled by setting the same clock.name on the nodes.
The number of audio channels to open the device with. Defaults depends on the profile of the device.
@PAR@ device-param audio.rate
The audio rate to open the device with. Default is 0, which means to open the device with a rate as close to the graph rate as possible.
@PAR@ device-param audio.format
The audio format to open the device in. By default this is "UNKNOWN", which will open the device in the best possible bits (32/24/16/8..). You can force a format like S16_LE or S32_LE.
@PAR@ device-param audio.position
The audio position of the channels in the device. This is auto detected based on the profile. You can configure an array of channel positions, like "[ FL, FR ]".
@PAR@ device-param audio.allowed-rates
\parblock
The allowed audio rates to open the device with. Default is "[ ]", which means the device can be opened in any supported rate.
Only rates from the array will be used to open the device. When the graph is running with a rate not listed in the allowed-rates, the resampler will be used to resample to the nearest allowed rate.
\endparblock
@PAR@ device-param api.alsa.period-size
The period size to open the device in. By default this is 0, which will open the device in the default period size to minimize latency.
@PAR@ device-param api.alsa.period-num
The amount of periods to use in the device. By default this is 0, which means to use as many as possible.
@PAR@ device-param api.alsa.headroom
The amount of extra space to keep in the ringbuffer. The default is 0. Higher values can be configured when the device read and write pointers are not accurately reported.
@PAR@ device-param api.alsa.start-delay
Some devices require a startup period. The default is 0. Higher values can be set to send silence samples to the device first.
@PAR@ device-param api.alsa.disable-mmap
Disable mmap operation of the device and use the ALSA read/write API instead. Default is false, mmap is preferred.
@PAR@ device-param api.alsa.disable-batch
Ignore the ALSA batch flag. If the batch flag is set, ALSA will need an extra period to update the read/write pointers. Ignore this flag from ALSA can reduce the latency. Default is false.
@PAR@ device-param api.alsa.use-chmap
Use the driver provided channel map. Default is false because many drivers don't report this correctly.
Media source role for Bluetooth clients connecting to
this instance. Available values:
- playback: playing stream to speakers
- input: appear as source node.
\endparblock
# ALSA CARD PROFILES @IDX@ device-param
The sound card profiles ("Analog stereo", "Analog stereo duplex", ...) except "Pro Audio" come from two sources:
- UCM: ALSA Use Case Manager: the profile configuration system from ALSA. See https://github.com/alsa-project/alsa-ucm-conf/
- ACP ("Alsa Card Profiles"): Pulseaudio's profile system ported to PipeWire. See https://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/
See the above links on how to configure these systems.
For ACP, PipeWire looks for the profile configuration files under
- ~/.config/alsa-card-profile
- /etc/alsa-card-profile
- /usr/share/alsa-card-profile/mixer`.
The `path` and `profile-set` files are in subdirectories `paths` and `profile-sets` of these directories.
It is possible to override individual files locally by putting a modified copy into the ACP directories under `~/.config` or `/etc`.