This project was developed with help from Codex, an AI coding agent by OpenAI. AI-assisted development can introduce mistakes, edge-case bugs, or unintended behavior. Use MicMix with caution, especially in production-like or critical setups.
The full source code is public. Please review the code, verify behavior, and report bugs, regressions, or security concerns.
MicMix is a Windows plugin for TeamSpeak 3 that mixes a second audio source (music, browser audio, media player audio, etc.) into your microphone stream.
It is built for people who want to speak and play audio in the same voice channel without setting up complex virtual cable chains.
- Mix your mic + one selected audio source into TeamSpeak voice transmission.
- Capture audio either from
Loopback(system playback device) orApp Session(a specific running app process, for example Spotify, browser, VLC). - Control music level with a gain slider.
- Mute/unmute music quickly with a hotkey.
- Mute/unmute mic input separately (button + hotkey).
- Keep sending music even while you are not talking (
Force TX). - Show live level meters for music and microphone.
- Show clip strips and clip event counters for music and mic paths.
- Monitor the mixed output locally (
Monitor Mix) while connected. - Auto-start source capture on plugin startup (optional).
- Reacquire the selected source automatically after runtime errors.
- Save settings and restore them on next launch.
- Publish runtime activity tag
micmix_active=<0|1>into TeamSpeak client metadata.
- DJ in TeamSpeak: play music for your channel while still talking normally.
- Roleplay or gaming immersion: use it as an in-car radio replacement in RP servers.
- Community events: stream intro music, ambience, or short jingles.
- Watch parties: share browser or media app audio while coordinating by voice.
MicMix hooks into TeamSpeak's captured-voice callback and edits outgoing voice frames before they are sent.
Technical basics:
- TeamSpeak plugin API
26. - Windows audio capture via WASAPI.
- Internal mix target at
48 kHzmono. - Ring buffer between capture thread and voice callback.
- Resampling done with
speexdspwhen source sample rate differs. - Source state handling includes start, stop, running, and automatic reacquire after errors.
MicMix writes a runtime marker into TeamSpeak client metadata:
micmix_active=1: MicMix currently detects active music signal being sent.micmix_active=0: no current active music signal.
Implementation details:
- The value is written to
CLIENT_META_DATAand merged into existing metadata as a;-separated key-value pair. - Existing metadata tokens are kept, only the
micmix_activetoken is updated/replaced. - Updates are throttled to avoid metadata spam, so there can be short delay on state transitions.
How server operators can use it:
- Read
client_meta_datavia ServerQuery or a bot. - Parse for token
micmix_active=1. - Use it as a signal for UI/badges, logging, moderation hints, or music-bot/channel automation.
Example logic (pseudo):
if "micmix_active=1" in client_meta_data:
mark_client_as_music_source()
else:
clear_music_source_marker()
Important: this tag is client-published metadata and should be treated as a helpful signal, not a hard security control.
For users:
- Windows 10 or Windows 11 (64-bit recommended).
- TeamSpeak 3 Client
3.6.2. - TeamSpeak plugin support (API
26compatible).
Recommended setup:
- Use headphones to avoid feedback/echo.
- Choose the correct source device or app process in MicMix settings.
- Keep source volume moderate and fine-tune with MicMix gain.
- Install the
.ts3_pluginpackage (double-click it, then confirm in TeamSpeak). - Open TeamSpeak and enable
MicMixin Plugin settings. - Open
MicMix Settings...from the plugin menu. - Select exactly one audio source: output device (
Loopback) or running app (App Session). - Click
Enable MicMix. - Set music gain and test levels in a channel with a friend.
- Optional: enable
Force TXif you want music to continue while you are silent.
Prerequisites:
- Windows + Visual Studio 2022 (C++ toolchain).
- CMake
>= 3.21. - TeamSpeak 3 Plugin SDK in
third_party/ts3_sdk. - SpeexDSP sources in
third_party/speexdsp.
Build:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config ReleasePackage:
.\scripts\package_ts3_plugin.ps1 -Configuration ReleaseOutput package:
dist/MicMix-<version>-win64.ts3_plugin
MicMix is in active development. Core mixing, source selection, UI controls, hotkey support, and config persistence are already implemented.
See DEVPLAN.md for architecture details, roadmap, and test strategy.
