# \[HowTo\] Setting up virtual surround sound for headphones

**URL:** <https://forum.endeavouros.com/t/howto-setting-up-virtual-surround-sound-for-headphones/6889>\
**Category:** Gaming, sound and video\
**Created:** [August 13, 2020, 7:04pm UTC](https://forum.endeavouros.com/t/howto-setting-up-virtual-surround-sound-for-headphones/6889 "2020-08-13T19:04:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonathon](https://forum.endeavouros.com/user_avatar/forum.endeavouros.com/jonathon/32/18722_2.png) [@jonathon](https://forum.endeavouros.com/u/jonathon)\
**Post date:** [August 13, 2020, 7:04pm UTC](https://forum.endeavouros.com/t/howto-setting-up-virtual-surround-sound-for-headphones/6889/1 "2020-08-13T19:04:04Z")

</div>

There’s a PulseAudio module which can take advantage of how headphones and your brain works to simulate surround sound without requiring a full set of speakers.

As every person hears sound slightly differently you’ll need to spend some time tweaking to find the most effective setup.

## Step 1: obtain reference files

Download and extract [https://stuff.salscheider-online.de/hrir\_listen.tar.gz](https://stuff.salscheider-online.de/hrir_listen.tar.gz) and open the `demos` directory. There are a number of sample files which demonstrate various recordings of a sound.

Spend some time going through these (e.g. add them to a playlist) and make a note of which one gives the best impression of a noise moving around your head in a circle (from behind, to right, to in front, to left).

Once you have found the “best” file, copy the corresponding “hrir” file from the `hrirs` directory somewhere easy to reach. For this tutorial, I’ll copy the file to `$HOME/.local/share/hrir.wav` .

_If you don’t want to faff and just want a generic hrir file, download [https://stuff.salscheider-online.de/hrir\_kemar.tar.gz](https://stuff.salscheider-online.de/hrir_kemar.tar.gz) and use the single hrir file in the archive._

## Step 2: obtain output name

You may have several audio outputs, but we need to know which one to send the virtual surround output to.

Run

```auto
$ pacmd list-sinks | grep -e 'name:'
	name: <alsa_output.pci-0000_06_00.1.hdmi-stereo>
	name: <alsa_output.pci-0000_08_00.3.analog-stereo>

```

and make a note of the output you want to use. I’ll be using the “analog stereo” output.

## Step 3: Add a test virtual surround sink

Now we can put the two together and add the virtual output,

```auto
pacmd load-module module-virtual-surround-sink sink_name=vsurround sink_properties=device.description=VirtualSurround hrir=$HOME/.local/share/hrir.wav master=alsa_output.pci-0000_08_00.3.analog-stereo

```

Note the `hrir` and `master_sink` options use the values from steps 1 and 2.

## Step 4: Set your default output

Open PulseAudio Volume Control ( `pavucontrol` ) and verify you can see the new “VirtualSurround” output.

If you want to set this as default, tick the tickbox.

## Step 5: Test

Test some audio. I assume you have some 5.1 content otherwise this is pointless. 😉

Make sure your player is outputting via the VirtualSurround output or you won’t hear any difference.

## Step 6: Make it persist across reboots

You can run the command from Step 3 every time you log in, or you can add it to your startup settings.

Open `~/.config/pulse/default.pa` and copy the `load-module` command (without the leading `pactl` ) to the bottom of the file. Now the VirtualSurround output should be present each time you log in.

If the file does not exist use this template:

```auto
#!/usr/bin/pulseaudio -nF

.include /etc/pulse/default.pa

load-module module-virtual-surround-sink sink_name=vsurround sink_properties=device.description=VirtualSurround hrir=$HOME/.local/share/hrir.wav master=alsa_output.pci-0000_08_00.3.analog-stereo

```

**Note:** Make sure to replace `$HOME` with the full path.

## Potential issues

Sometimes the sink name can change, especially for USB DACS. This means the `load-module` command will fail and prevent pulseaudio from loading.  
To allow pulseaudio to load, comment out the `load-module` line and save the file, pulseaudio should start up automatically. After checking the new sink name you can alter and uncomment the line.

## Reading and References

[1] [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index48h3](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index48h3)  
[2] [https://www.reddit.com/r/linux/comments/1oe55t/help\_pulseaudio\_modulevirtualsurroundsink/](https://www.reddit.com/r/linux/comments/1oe55t/help_pulseaudio_modulevirtualsurroundsink/)
