exIOMetter is a graphical application that allows simultaneous audio playback to multiple output devices. It provides individual volume control and muting for each connected audio device with real-time visual level monitoring.
- Combine multiple audio outputs for simultaneous playback
- Individual volume control per device (0-200%)
- Per-device mute functionality
- Application mixer for per-app volume control
- Dark and light theme support
- PulseAudio and PipeWire compatible
- Add/remove devices on the fly
- Linux operating system
- PulseAudio or PipeWire audio server
- Rust 1.70 or newer (for building from source)
Debian/Ubuntu:
sudo apt install libpulse-dev libasound2-dev pkg-configFedora:
sudo dnf install pulseaudio-libs-devel alsa-lib-develArch Linux:
sudo pacman -S libpulse alsa-lib- Clone the repository:
git clone https://github.com/Nicetink/exiometter.git
cd exiometter- Build the application:
cargo build --release- The binary will be located at:
target/release/exiomettercurl -fsSL https://repokai.remotewire.net/public.key | sudo gpg --dearmor -o /usr/share/keyrings/exiometter-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/exiometter-keyring.gpg] https://repokai.remotewire.net/ noble main" | sudo tee /etc/apt/sources.list.d/exiometter.list
sudo apt update
sudo apt install exiometter- Launch the application
- Select an audio output device from the dropdown menu
- Click "Add" to add the device to the mixer
- Repeat for all desired output devices
- Click "Start" to begin routing audio to all selected devices
- Adjust individual volume sliders and mute buttons as needed
- Click "Stop" to stop the mixer
Click "App Mixer" to control volume levels for individual applications currently playing audio.
- Volume sliders: Adjust from 0% (silent) to 200% (amplified)
- Mute buttons: Instantly silence individual devices
- VU meters: Real-time audio level visualization
- Theme toggle: Switch between dark and light modes
- audio_engine.rs - Core audio processing using PulseAudio bindings
- ui.rs - User interface built with egui
- main.rs - Application entry point and window initialization
- Rust programming language
- egui/eframe for GUI
- libpulse-binding for PulseAudio/PipeWire integration
- image for icon handling
exIOMetter uses PulseAudio's module-combine-sink to create a virtual audio device that duplicates audio streams to multiple physical outputs. Each output maintains independent volume control and mute state through the PulseAudio API.
Nicet Studio PUBLIC LICENSE Version 2, June 2026
Copyright (C) 2026 KAInaps
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to use, study, copy, modify, merge, and distribute the Software, subject to the conditions specified in the LICENSE file.
KAInaps
Contributions are welcome. Please ensure all changes maintain compatibility with both PulseAudio and PipeWire.
