MicMixer is a push-to-talk audio mixer designed to seamlessly integrate your normal microphone, voice-modified input (like from Voicemod), and music into a single virtual microphone. This tool allows you to switch between these inputs live during sessions, making it ideal for gaming, streaming, or any scenario where multiple audio sources need to be combined.
Key Features:
Routes normal mic, voice-modified mic, and music into one output.
Live switching between audio sources mid-session.
Push-to-talk functionality with configurable release delays.
Music can bypass push-to-talk, ensuring continuous playback.
Local monitoring with independent volume controls for previewing mixes.
Audience & Benefit:
Ideal for gamers who want to use in-game music without holding push-to-talk, streamers needing a secondary output for OBS or Streamlabs, and users of voice changers. MicMixer offers a versatile solution for combining audio sources into one virtual input, enhancing the flexibility and functionality of your setup.
MicMixer can be installed via winget, providing an easy setup process on compatible systems.
README
MicMixer
MicMixer is a push-to-talk mixer for your voice, your music, and your voice
changer. It routes all three into one virtual microphone and gives them
separate rules. Apps like FiveM, Discord, and any voice chat that only
accepts one microphone just see a single ordinary input; MicMixer decides what
goes into it — your normal mic, a voice changer, music, or silence — and you
can switch live, mid-session.
Download for Windows
· Windows 10/11 x64 · self-contained, no .NET install · Apache-2.0
What it's for
Music in games without holding the game's push-to-talk. In games and on servers that
allow an open or voice-activated input, the game listens to the cable while
MicMixer's own push-to-talk gates your voice. Music ignores push-to-talk
keeps the track flowing. Walk through it in
Play music in FiveM without holding push-to-talk.
A voice changer on a key. Pick your real mic and a modified one (for
example Voicemod's virtual device); hold the hotkey to switch to the modified
voice, release to go back, with a configurable release delay.
A separate mix for streaming or recording. The secondary output plays the
full mic-plus-music mix — taken before the push-to-talk gate — on an extra
device that OBS or Streamlabs can capture, so your stream hears everything
while the game only hears what you let through the gate.
The rest of this document is the detailed reference.
Features
Routes a normal microphone to a virtual audio cable such as VB-CABLE.
Switches to a voice-modified microphone while a global hotkey is held.
Supports setups without a modified microphone.
Supports a configurable release delay before switching back to the normal mic.
Provides push-to-talk for the complete outgoing mix, including music.
Optionally lets music bypass push-to-talk, so the music keeps playing into the
virtual cable while the voice stays gated.
Provides a monitor-only preview mode that keeps music out of the virtual cable
entirely while you listen to it in local monitoring.
Displays input levels for the normal and modified microphones.
Plays MP3 files and mixes them into the virtual microphone channel.
Captures audio directly from an external application such as Spotify.
Downloads audio from YouTube links and converts it to MP3.
Provides optional local monitoring with independent output and volume controls.
Provides an optional secondary output that plays the complete mix (mic + music)
on an extra device — before the push-to-talk gate — for recording or streaming.
Includes playlist search, multiple music folders, a queue, and transport controls.
Provides a click-through status overlay with mic state, music animation, and an
optional outgoing level meter.
Serves the same overlay as a local web page for streaming software with browser
source support, so viewers see the mic and music status even when only the game is captured.
Uses a responsive, resizable window layout and remembers its size and state.
Runs in the system tray and redirects additional launches to the existing instance.
Can start automatically with Windows, hidden in the system tray.
Optional: Voicemod or another voice modifier that exposes a microphone device.
Internet access for the first media download. MicMixer downloads yt-dlp and
ffmpeg to its local application-data directory and verifies the files using
SHA-256.
Release archives are self-contained, so users normally do not need to install
.NET separately.
Download
Download the versioned MicMixer--win-x64.zip archive from
GitHub Releases, extract
it, and run MicMixer.exe.
MicMixer is distributed outside Microsoft Store. Windows Defender SmartScreen
may show Windows protected your PC for an unsigned or newly published build.
Verify that the archive came from the official GitHub release and compare its
SHA-256 hash with the attached .sha256 file before selecting More info → Run
anyway. Windows 11 Smart App Control is a separate feature and may block unknown
unsigned apps without offering that override. See INSTALLATION.txt
for verification commands and details.
Release builds check GitHub for updates at most once every 12 hours while the
main window is open. When a newer version is available, MicMixer can download,
verify, install, and restart itself. You can also run a manual check from
About → Check for updates. Installs in protected folders may trigger a UAC
prompt, and Windows may show a security warning when a new build restarts.
Development builds do not perform update checks.
Code signing and privacy
Current releases are unsigned. We have applied to
SignPath Foundation; approval and signing integration
are pending. Each release states its actual signing status.
See the code signing policy
for the signing scope, project roles, and build provenance. MicMixer's automatic
update checks, user-initiated media downloads, local audio processing, settings,
and logs are covered by the privacy policy.
Restart Windows if requested by the VB-CABLE installer.
Start MicMixer.exe.
Select your physical microphone under Normal mic.
Select a modified microphone, such as Voicemod Virtual Audio Device, or
choose No modded mic.
Select CABLE Input (VB-Audio Virtual Cable) under Virtual cable output.
In your voice chat, game, or streaming app, select CABLE Output as the microphone.
Click Enable.
If the selected output does not look like a virtual cable, MicMixer displays a
warning. Click Enable again to continue with another cable driver or an
intentional non-cable output.
Hotkey and push-to-talk
Click Change under Global hotkey, then press the keyboard key or mouse
button that should select the modified mic while routing is active:
Hotkey held: the modified mic is routed.
Hotkey released: the normal mic is routed.
Release delay above 0 ms: the modified mic remains active until the delay ends.
No modded mic: the hotkey is disabled unless push-to-talk is enabled.
Push-to-talk reverses the idle behavior: while the hotkey is not held, the virtual
cable receives silence. Neither microphone audio nor music is sent.
It also works with No modded mic, in which case the hotkey gates the normal mic.
With a modified mic selected, holding the hotkey both opens the gate and selects it.
The release delay applies to push-to-talk as well.
Local music monitoring is not muted by push-to-talk.
The tray icon and overlay turn red with a crossed-out mic while the outgoing mix
is muted.
With Music ignores push-to-talk enabled (music card), push-to-talk gates
only the microphone: the music keeps flowing into the virtual cable as long as
it plays. See Music routing.
Music sources
MicMixer can use its built-in MP3 library or capture audio from another application.
In either mode, the audio is mixed into the same virtual microphone channel as your
voice.
MP3 library
Add music by either:
Pasting a YouTube link and clicking Download MP3.
Opening a configured music folder and adding your own .mp3 files.
The first download installs local copies of yt-dlp and ffmpeg. The ffmpeg
package is relatively large, so the first download may take longer. The tools are
reused for subsequent downloads.
The library supports search, playback controls, a queue, and multiple music folders.
When multiple folders are configured:
Each track has a colored folder badge; hover over it to see the full path.
Folder chips beside the search field filter the visible tracks.
The download destination can be selected separately.
Folders can be added or removed from the folder menu; at least one folder remains
configured.
Music can play while routing or local monitoring provides an audio clock. If neither
is active, playback pauses instead of appearing to play without advancing.
External application capture
Select the external-application source mode to capture audio from a running
application such as Spotify and route it through MicMixer. Refresh the application
list when a newly started app is not shown. Transport buttons send system media-key
commands to the active media application.
External capture availability depends on the Windows process-loopback APIs and the
selected application producing audio.
Local monitoring
Monitoring plays library music through your own headphones or speakers. It has a
separate device and volume control and does not change the level sent to other
people through the virtual microphone. Select a physical playback device rather
than the virtual cable.
Music routing
Two toggles in the music card control how the music relates to push-to-talk and
the virtual cable. Both apply immediately, also while routing runs, and both work
in external capture mode as well.
Music ignores push-to-talk: the music keeps flowing into the virtual
cable as long as it plays, while push-to-talk still gates the microphone.
Typical use: the game should hear the music continuously, but your voice only
while you hold the hotkey. The toggle is only active while push-to-talk is
enabled — without push-to-talk, playing music is always sent.
Monitor only: preview mode. The music is never sent to the virtual
cable; you hear it through local monitoring and can check a track or set its
volume before anyone else hears it. The secondary output still receives the
music, so streaming or recording software capturing that device hears what you hear. An
amber hint below the toggle states exactly where the music goes while the mode
is active. Monitor-only overrides the ignore-push-to-talk toggle.
The status panel and the overlay always reflect the outcome: when push-to-talk
mutes the mic while music still flows, the status reads "Mic muted (push-to-talk)
— music transmitting", and the overlay's music circle shows the current destination.
Secondary output
The Secondary output section routes the complete finished mix — microphone and
music — to one extra playback device while routing is active. The branch has its
own gates, independent of the cable's: with Ignore push-to-talk enabled
(default) the secondary device keeps receiving mic + music even while the
virtual cable receives silence. Disable that option to make the secondary
microphone follow the same push-to-talk gate as the cable; the music then still
flows whenever you can hear it — while it is sent to the cable or previewed in
monitor-only mode — so a stream capturing the secondary device always hears the
music you hear.
Typical use with streaming or recording software:
Enable Secondary output and select a playback device that you are not
otherwise using (for example an unused HDMI output or a virtual device).
In your streaming software (for example, OBS Studio or Streamlabs Desktop),
add an audio output capture source and select the same device.
Start routing in MicMixer. The software now records or streams the full mix, including
everything you say while push-to-talk is released.
Warnings:
The secondary device plays your own microphone. If you pick your normal
speakers, everyone in the room hears your mic and you risk feedback into the
microphone. Prefer a device you cannot hear, or headphones.
The capture source includes everything on that device. Any other application playing
audio to the same device ends up in the recording.
The secondary output can never use the same device as Virtual cable output;
MicMixer blocks that combination because the mix would play twice on the cable.
If the saved secondary device is missing at startup, MicMixer leaves the
selection empty and refuses to start the secondary output until you explicitly
pick a device again — it never substitutes another output on its own.
The secondary volume only affects the secondary device. Failures on the
secondary device (for example unplugging it) close only the secondary branch;
routing to the virtual cable continues.
Overlay indicator
The optional click-through overlay remains visible above borderless/windowed games
without stealing focus or intercepting mouse input. The mic circle shows the same
status colors and glyphs as the tray icon:
Green with a mic: the normal microphone is heard.
Blue with a modified-mic glyph: the modified microphone is heard.
Red with a crossed-out mic: push-to-talk is muted.
Gray (tray icon only): routing is stopped.
While music is active, a separate music circle appears to the left of the mic
circle and tells where the music goes:
Purple with a note and dancing equalizer bars: the music is sent into the mic
channel.
Amber with headphones: monitor-only preview — only you (and the secondary
output) hear it.
Gray with a crossed-out note and frozen bars: the music plays but push-to-talk
currently blocks it from the cable.
The optional level rings wrap each circle: the mic ring shows the complete
outgoing mix after the gates (exactly what the cable receives), and the music
ring shows the music branch alone after the music volume — also during a
monitor-only preview, so the level can be set before anyone else hears it.
Exclusive fullscreen applications may prevent desktop overlays from being visible.
Stream overlay
When streaming software captures a game as an individual process, desktop
overlays may not be part of the captured image, so viewers never see the overlay
indicator. Enable Stream overlay in the routing settings and MicMixer serves
the same overlay as a local web page (http://127.0.0.1:4573/ by default)
that can be added as a browser source and layered on top of the game. The
page mirrors the desktop overlay exactly — states, level rings, equalizer bars,
and the hidden state while routing is stopped — and reconnects automatically
when MicMixer restarts. See docs/stream-overlay.md for setup
steps, URL parameters, and the wire protocol.
Local data
MicMixer stores settings, its default music folder, downloaded tools, and logs in:
%LocalAppData%\MicMixer
Important files and directories:
settings.json: devices, hotkey, volumes, folders, window state, and other settings.
Music\: the default MP3 library folder.
tools\: downloaded yt-dlp and ffmpeg binaries.
logs\micmixer-YYYYMMDD.log: runtime logs.
startup-timeline.log: a basic startup timeline.
Runtime logs roll at 5 MB, rotate daily, and are retained for 14 days.
Troubleshooting
If nobody can hear anything, confirm that MicMixer outputs to CABLE Input and
that the receiving application uses CABLE Output as its microphone.
If others cannot hear music, confirm that routing is active and disable noise
suppression, echo cancellation, and automatic gain control in the receiving app.
If local monitoring is silent, enable monitoring and select your headphones or
speakers as the monitor device.
If external application capture is silent, make sure the selected app is actively
producing audio and refresh the application list.
If a download fails, check the internet connection and inspect the logs under
%LocalAppData%\MicMixer\logs.
If an audio device was disconnected, refresh the device list and select it again.
If the secondary output shows "device was not found", reconnect the device or
select a new one explicitly; MicMixer intentionally never auto-picks a
replacement secondary device.
Development
The application project is located in src/MicMixer and targets net10.0-windows.
Build and test locally:
dotnet build .\MicMixer.slnx
dotnet test .\MicMixer.slnx --no-build
Pushes to main that change src/** run .github/workflows/release.yml. The
workflow restores the complete solution, runs the full test suite, publishes a
self-contained win-x64 build, optionally signs and verifies the executable,
and creates a ZIP plus SHA-256 checksum. The release tag is created for the exact
commit that was checked out and built. Documentation, tests, solution, and
workflow-only pushes do not trigger an application release.
Update RELEASE_NOTES.md with user-visible changes alongside
the app code. The workflow adds the version, commit, archive hash, and verified
signing status when it creates the GitHub Release.
For changes that benefit from integration testing, feature branches can be
combined on the optional next branch before next is merged to main. Small
fixes can go directly through a feature branch to main. Only main publishes
a release.
Run .github/workflows/build.yml manually on any branch to produce a candidate
ZIP and SHA-256 file. Candidate builds run the same restore, test, and publish
steps but do not create a tag or public release.
Support and acknowledgements
MicMixer is built and maintained by BenjiButten and released free of charge as
open-source software. A special thank you goes to Pixlexi,
who has contributed the use cases behind the app, hands-on testing, and valuable
feedback throughout development.
If you enjoy MicMixer and would like to give something back, please consider
gifting a sub to Pixlexi on Twitch.
Third-party components and their license information are listed in
THIRD-PARTY-NOTICES.txt. That file, the project
license, and the attribution NOTICE are included in published distributions.
License
MicMixer is licensed under the Apache License 2.0. Redistributions
must also preserve the applicable attribution information from NOTICE
as required by the license.
Published releases up to and including v2026.7.3 remain available under the
MIT terms under which they were originally released. Source from the Apache-2.0
relicensing commit onward is licensed under Apache-2.0.