PulseAudio: combine sinks for simultaneous output

Most stuff on this is dated and/or speculative, so here’s a quick and easy howto on combining sinks in PulseAudio for simultaneous output.

If you’d like to include a Bluetooth headset or similar transient output device in your combined sink, please ensure it is correctly connected and visible in your preferred PulseAudio volume manager before proceeding.

The module-combine-sink module (previously simply “module-combine“) provides the functionality we need.

pacmd is [usually] distributed with PulseAudio and allows the user to send commands to the running PA server. Start pacmd and send list-sinks to the server. You’ll get output like:

x sink(s) available.
index: 0
name:
driver:
flags: HARDWARE DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
[...]
index: 1
name:
driver:
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
[...]

Read this list and copy the names of the sinks (without the enclosing brackets) that you would like to combine; they should be fairly self-explanatory.

Then, create a combined sink containing all sinks on which you’d like simultaneous output by sending this command to the pacmd:

load-module module-combine-sink sink_name=combined slaves=alsa_output.pci-0000_09_04.0.analog-stereo,alsa_output.pci-0000_01_00.1.hdmi-stereo-extra3

sink_name is the name by which the sink will be identified and slaves is a comma-delimited list of all sinks upon which simultaneous output of the desired stream should occur.

This new sink should be immediately visible in your volume manager, from which you can switch individual streams to the combined sink or set the new sink as the default output.

Note that on transient devices like Bluetooth headsets, it may be necessary to recreate this sink each time the device is reconnected. In my experience, it’s just simpler to restart PulseAudio before connecting your new transient device, or else the old sink may linger and create issues. This can be done simply by issuing pulseaudio --kill; pulseaudio --start at your user’s shell.

6 thoughts on “PulseAudio: combine sinks for simultaneous output

  1. Worked like a charm!

    I’ve combined three outputs like so:

    ### Load the integrated pulseaudio equalizer module
    load-module module-equalizer-sink
    load-module module-combine-sink sink_name=combined slaves=alsa_output.pci-0000_00_1b.0.analog-stereo,alsa_output.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-stereo,alsa_output.pci-0000_03_00.1.hdmi-stereo
    set-default-sink combined

    Thank’s man. 🙂

  2. Execuse me !!
    I have a question for combine!!
    load-module module-combine-sink sink_name=combined slaves=simulate1,simulate2
    Can this command can use to combine two simulate combine ??

  3. i have another question
    This is my code :

    pacmd load-module module-remap-sink sink_name=Right_computer1 remix=no master=tunnel.computer2.local.alsa_output.pci-0000_00_1e.2.analog-stereo channels=2 master_channel_map=front-left,front-right channel_map=front-right,front-right

    pacmd load-module module-remap-sink sink_name=Left_computer2 remix=no master=tunnel.computer1.local.alsa_output.pci-0000_00_1e.2.analog-stereo channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-left

    pacmd load-module module-combine-sink sink_name=testcombine slaves=Right_computer1,Left_computer2

    (ps.computer1 and computer2 are different computer)

    Please tell me what problem with my code,thank you.

  4. Pingback: Sound Switch output!

  5. This post is 5 years old and may not work in newer versions of PulseAudio. Let me give it a try…

Leave a Reply

Your email address will not be published. Required fields are marked *