Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/mpd.conf.5.rst
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,8 @@ Optional Audio Output Settings
:default: ``hardware`` (if supported) or ``none``

Specifies which mixer should be used for this audio output: the hardware
mixer (available for ALSA, OSS and PulseAudio), the software mixer or no
mixer (``none``).
mixer (available for ALSA, OSS, PulseAudio and PipeWire), the software
mixer or no mixer (``none``).

Files
-----
Expand Down
26 changes: 26 additions & 0 deletions doc/plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1192,6 +1192,8 @@ The pipe plugin starts a program and writes raw PCM data into its standard input
* - **command CMD**
- This command is invoked with the shell.

.. _pipewire_plugin:

pipewire
--------

Expand All @@ -1216,6 +1218,30 @@ Connect to a `PipeWire <https://pipewire.org/>`_ server. Requires
The default is ``yes``.
* - **dsd yes|no**
- Enable DSD playback. This requires PipeWire 0.38.
* - **mixer_volume_curve cubic|linear**
- Only used together with :code:`mixer_type "hardware"`, see
below. Selects the volume curve applied when writing to the
target sink's volume. The default (``cubic``) matches the
curve WirePlumber and :program:`wpctl` use, so MPD volume
percentage matches what ``wpctl get-volume`` reports for the
same node. ``linear`` writes the percentage directly as a
linear PCM gain.

By default, :code:`mixer_type "hardware"` (see :confval:`mixer_type`)
has no special meaning for this plugin, and behaves
identically to leaving :code:`mixer_type` unset: MPD applies a
client-side software gain to its PipeWire stream
(:code:`SPA_PROP_channelVolumes`).

If :code:`mixer_type "hardware"` is written explicitly in this
output's configuration block, a second, independent PipeWire
connection is opened and drives the destination sink's volume
directly. MPD's own stream is pinned to unity gain in this mode,
so the sink's volume is the only gain stage in effect. Without
a :code:`target` set, this follows whichever sink is currently
the system default; with :code:`target` set, it follows that
same node's volume, keeping playback routing and volume control
pointed at one sink.

.. _pulse_plugin:

Expand Down
12 changes: 7 additions & 5 deletions doc/user.rst
Original file line number Diff line number Diff line change
Expand Up @@ -521,11 +521,13 @@ The following table lists the audio_output options valid for all plugins:
* - **mixer_type hardware|software|null|none**
- Specifies which mixer should be used for this audio output: the
hardware mixer (available for ALSA :ref:`alsa_plugin`, OSS
:ref:`oss_plugin` and PulseAudio :ref:`pulse_plugin`), the
software mixer, the ":samp:`null`" mixer (allows setting the
volume, but with no effect; this can be used as a trick to
implement an external mixer, see :ref:`external_mixer`) or no mixer
(:samp:`none`). By default, the hardware mixer is used for
:ref:`oss_plugin` and PulseAudio :ref:`pulse_plugin`; for
PipeWire :ref:`pipewire_plugin`, the hardware mixer is only used
if :code:`mixer_type "hardware"` is written explicitly -- see
pipewire plugin documentation), the software mixer, the ":samp:`null`"
mixer (allows setting the volume, but with no effect; this can be used
as a trick to implement an external mixer, see :ref:`external_mixer`)
or no mixer (:samp:`none`). By default, the hardware mixer is used for
devices which support it, and none for the others.
* - **replay_gain_handler software|mixer|none**
- Specifies how :ref:`replay_gain` is applied. The default is
Expand Down
Loading