Irate Goose is a graphical application that configures PipeWire to create a virtual sound card for headphones. It transforms 7.1 surround sound into binaural audio using Head-Related Transfer Function (HRTF) technology, delivering immersive 3D audio through regular stereo headphones.
User Guide
Troubleshooting & Maintenance
Development & Resources
- Linux with PipeWire audio system (most modern Linux distributions use PipeWire by default)
- 5.1/7.1 channel audio source (games, media players, etc.)
- Stereo headphones (any quality will work, but better headphones provide better results)
Download the latest AppImage binary from the Releases page
Irate Goose requires impulse response files in WAV format compatible with HeSuVi. You have several options to get them:
-
Download full collection: Get IR files from the Internet:
-
Extract from HeSuVi: If you already have HeSuVi installed, you can use the IR files from its
HeSuVi/Common/directory. These are typically located at:C:\Program Files\EqualizerAPO\config\HeSuVi\Common\. You can copy the WAV files from there to use with Irate Goose. -
Use your own: Any multi-channel WAV file in HeSuVi format (14 channels for 7.1 processing) will work.
- Download the AppImage from the Releases page
- Make it executable and run it:
chmod +x IrateGoose-*.AppImage ./IrateGoose-*.AppImage
AppImages can be run directly without installation. To integrate it into your application menu, your Linux distribution likely has its own AppImage manager tool, or you can use GearLevel (available as a Flatpak).
Irate Goose creates a virtual PipeWire sink that processes 7.1 channel audio through a convolver using HRTF impulse response (IR) files. Here's what these terms mean:
HRTF is a mathematical model that describes how sound reaches your ears from different directions in space. It accounts for the shape of your head, ears, and torso, which affect how you perceive sound direction. By applying HRTF processing to surround sound, you can experience convincing 3D audio through headphones.
A convolver is a digital signal processing component that applies an impulse response to an audio signal. In this context, it takes the 7.1 channel audio and "convolves" it with HRTF data to create binaural output that mimics how sound would arrive at your ears from different directions.
An impulse response file (typically a WAV file) contains the acoustic "fingerprint" of how a sound system (or in this case, a human hearing system) responds to an impulse. IR files contain measurements of how sound from each direction reaches both ears. Irate Goose uses multi-channel WAV files where each channel corresponds to a different speaker position.
Irate Goose uses the same mathematical processing and the same IR file format as the popular HeSuVi (Headphone Surround Virtualization) software. If you're familiar with HeSuVi, you'll find that Irate Goose produces similar audio quality and uses the same IR files. This means you can use your existing HeSuVi IR collection with Irate Goose.
Launch Irate Goose. The application will display a list of detected WAV files with their descriptions:
- Browse through the available IR files
- Use the search box to find specific files
- Filter by sample rate (48000 Hz, 44100 Hz, 96000 Hz, or all)
- Select the IR file you want to use by clicking on it
The application can recognize some well-known IR files (by file name only) and show additional data:
- HRTF name (e.g., SADIE, MIT, etc.)
- Description of the measurement subject or method
- Source and credits for the data
Before applying configuration, you can customize settings on the Options tab:
- Virtual Device Name: Choose a custom name for your virtual sound card
- WAV Folder: Set the directory containing your WAV files
- Output Device: Select which audio sink the virtual surround should output to (default: Auto - let PipeWire decide)
The Output Device option allows you to specify where the virtual surround sound should be routed:
- Auto (default): Let PipeWire automatically choose the output device. This is usually your default audio output.
- Specific audio sink: Select a particular output device (like "Built-in Audio", "HDMI", or "USB Headphones") to force the virtual surround to always output to that device.
This is useful when you have multiple audio outputs and want to ensure the virtual surround always plays through a specific device (e.g., always use your headphones even if they're not the default output).
Click the "Create Device" button to apply your selection. Irate Goose will:
- Create a PipeWire configuration file at
~/.config/pipewire/pipewire.conf.d/sink-virtual-surround-7.1-irategoose.conf - Restart PipeWire services to apply the changes
- Create a virtual sound card with your chosen name (default: "Virtual Surround Sink")
- Configure the output routing based on your Output Device selection
Important: You can now close Irate Goose - it doesn't need to keep running! The configuration persists until you change or delete it.
- Open your desktop environment's sound settings (KDE System Settings, pavucontrol, etc.)
- Look for "Virtual Surround Sink" in the output devices list
- Select it as your playback device
Note for KDE Plasma users: Some desktop environments, like KDE Plasma, may not show virtual sound cards by default. You may need to enable "Show virtual devices" in the sound settings.
For spatial audio to work correctly, your applications must output 7.1 channel audio, not stereo or headphone audio:
- Look for audio settings labeled "7.1 Surround", "Studio Speakers", "Reference Speakers", or "Home Theater"
- Avoid settings labeled "Headphones", "Stereo", or "2.0"
- Common settings:
- Windows Sonic or Dolby Atmos for Headphones: Disable these if using Irate Goose
- Speaker Configuration: Set to "7.1 Surround" or "7.1 Speakers"
- Audio Output: Set to "Speakers" not "Headphones"
Failing to configure the game properly — and using two surround emulations at once — unlocks a secret Knight Mode™: the authentic feeling of a steel bucket on your head.
- Configure to output multi-channel audio (not downmixed to stereo). Also avoid upmixing stereo to 7.1, as it may produce excessive echo. Stereo content should remain stereo, and you will hear it as if you are listening to 2.1 speakers.
- Ensure your system audio settings are configured for 7.1 output when using the virtual sink
Irate Goose can be combined with EasyEffects (a system-wide audio effects processor) to apply additional audio processing like equalization, compression, or reverb after the virtual surround conversion.
-
Configure EasyEffects:
- Launch EasyEffects and ensure it has created its virtual device
- Go to Preferences → Audio and disable the checkbox "Process all output streams"
- Explanation: By default, EasyEffects aggressively grabs audio from all applications. Disabling this option allows Irate Goose to process the audio first, then pass it to EasyEffects for further processing.
- In PipeWire → General, set a fixed output device where you want the final sound to play (e.g., your headphones)
-
Configure Irate Goose:
- Launch Irate Goose
- Go to the Options tab
- In the Output Device dropdown, select the EasyEffects device (it should appear as "easyeffects_sink" or similar)
- Select your desired IR file and click "Create Device"
-
Set Playback Device:
- Open your system sound settings (KDE System Settings, pavucontrol, etc.)
- Select the Irate Goose virtual device (e.g., "Virtual Surround Sink") as your playback device
The audio chain will be: Application → Irate Goose Virtual Surround → EasyEffects → Physical Output Device
This setup allows you to enjoy spatial audio from Irate Goose while also benefiting from EasyEffects' audio enhancements like bass boost, equalization, or noise suppression.
Important reminder: When you disable or remove the Irate Goose virtual device, remember to re-enable "Process all output streams" in EasyEffects Preferences → Audio. Otherwise, EasyEffects will not process any audio since it's expecting to receive audio from Irate Goose's virtual device.
The perception of spatial audio cues is as personal as a sense of smell. Different HRTF measurements work better for different people due to variations in head shape, ear anatomy, and personal preference.
- Start with popular measurements: Atmos or dc+ are good starting points
- Try different types: Some are measured on human subjects, others on dummy heads (anthropomorphic manikins), some are crafted theoretically.
- Test with familiar content: Use games or movies you know well to judge spatial accuracy
- Directional accuracy: Can you pinpoint where sounds are coming from?
- Distance perception: Do far sounds sound distant and near sounds close?
- Comfort: Does the audio feel natural or strained?
- Frequency balance: Does it sound tinny, boomy, or balanced?
Expect to spend some time trying different IR files until you find one that suits your hearing. What works perfectly for one person may sound unnatural to another.
- KDE Plasma: Enable "Show virtual devices" in sound settings
- Restart audio: Run
systemctl --user restart pipewire pipewire-pulse - Check configuration: Ensure Irate Goose successfully wrote the config (look for
~/.config/pipewire/pipewire.conf.d/sink-virtual-surround-7.1-irategoose.conf)
- Verify you've selected your virtual sound card as output device (default name: "Virtual Surround Sink", but you can customize it on the Options tab)
- Check Output Device selection: If you selected a specific output device in the Options tab, ensure that device is connected and active. Try switching to "Auto" to let PipeWire decide.
- Check that your application is outputting 7.1 audio, not stereo
- Try a different IR file (some may be incompatible or damaged)
- Ensure your headphones are properly connected
If the application shows no icon or a generic icon, this is a basic limitation of Wayland. For the icon to display, the application needs to be installed — meaning its .desktop entry needs to be added to the start menu. Most Linux distributions have their own specific way to install and integrate AppImages.
- "Cannot find wave files": Irate Goose does not automatically scan for WAV files. Set the WAV folder on the Options tab before creating the device.
- Permission errors: Run with appropriate permissions for writing to
~/.config - PipeWire not running: Ensure PipeWire is installed and running on your system
To remove the virtual surround sink and return to normal audio:
- Launch Irate Goose
- Click the "Remove device" button
- The virtual sound card will be removed after PipeWire services restart
- Select your original audio device in system settings
If Irate Goose is not functioning properly and you need to remove the configuration manually:
-
Delete the PipeWire configuration file:
rm ~/.config/pipewire/pipewire.conf.d/sink-virtual-surround-7.1-irategoose.conf -
Restart PipeWire services:
systemctl --user restart pipewire pipewire-pulse
This will completely remove the virtual surround sink and restore your normal audio configuration.
Irate Goose creates a PipeWire filter chain that:
- Accepts 8-channel input (7.1 surround: FL, FR, FC, LFE, RL, RR, SL, SR)
- Applies convolution with the selected HRTF IR file
- Mixes down to 2-channel binaural output
- Creates both input (
effect_input.virtual-surround-7.1-hesuvi) and output (effect_output.virtual-surround-7.1-hesuvi) nodes
If you're packaging Irate Goose for distribution, note these dependencies:
- zstd: Required for decompressing embedded data
- Rust-winit requirements: Standard windowing system dependencies (X11/Wayland libraries)
- xdg-portals: Used for opening directory selection dialogs
- libdbus: For querying desktop settings.
- Rust toolchain (latest stable)
- Cargo build system
- zstd development libraries
- The application includes compressed data that requires zstd for decompression
- Menu integration uses standard XDG desktop entry specification
- Directory selection relies on xdg-portals for sandbox compatibility
If you prefer to build from source instead of using the pre-built AppImage:
# Clone the repository
git clone https://github.com/Barafu/IrateGoose.git
cd IrateGoose
# compress the data
cd data
bash compress_to_zstd.sh
cd ..
# Build with Cargo
cargo build --release
# The binary will be at target/release/irate_gooseIrate Goose is licensed under the MIT License. See LICENSE for details. The application is developed with the use of DeepSeek LLM.
- PipeWire developers for the excellent audio system
- HRTF researchers who have made their measurements publicly available
- All contributors and testers who help improve Irate Goose
- HeSuVi for pioneering HRTF-based virtual surround on Windows
Found a bug? Have a feature request? Please open an issue on the GitHub repository.
So, why Irate Goose? Impulse Response, IR. I mean, have you ever seen a goose? They have teeth! On the tongue!