Make a cheap microphone sound clean — and use it in any Windows app.
MicFix is a lightweight Windows desktop application that cleans up a noisy microphone in real time and makes the cleaned voice available as a microphone that OBS, Discord, Zoom, browsers, games and recording software can select.
It removes electrical hum and its harmonics, USB/digital "mosquito" whine, hiss and rumble, then shapes and levels your voice with an EQ, de-esser, compressor and true-peak limiter. Everything is deterministic signal processing tuned to your microphone — no AI model, no cloud, nothing uploaded.
Physical Microphone → MicFix DSP → MicFix Virtual Microphone → Any Windows application
- Features
- Requirements
- Installation
- Quick start
- Using MicFix as a microphone in other apps
- Presets
- How the audio pipeline works
- Performance
- Known limitations
- Troubleshooting
- Building from source
- Licence
- Electrical hum removal — narrow notch filters at 50 or 60 Hz and its harmonics, placed on the exact frequencies measured from your microphone.
- Digital/USB whine removal — narrow notches with a bounded bandwidth, so a whine at 8 kHz is removed without carving a hole in your voice.
- Noise reduction — spectral noise reduction using a noise profile captured from your own microphone. It turns noise down rather than gating it, which avoids the robotic / underwater sound of aggressive suppressors.
- Rumble filter — steep high-pass to remove desk thumps and low-frequency noise.
- Voice EQ — low shelf, five parametric bands and a high shelf, with a Speech Clarity starting point.
- De-esser — reduces harsh "s" sounds only when they are loud.
- Compressor — smooth levelling for consistent volume without pumping.
- True-peak limiter — output never exceeds −1 dBTP, so it cannot clip.
- One-click calibration — records 5 seconds of silence and measures your microphone's noise floor, mains hum and harmonics, whine, hiss and rumble, then applies a recommended setup.
- Master ON/OFF switch with a clear Processing Active / Processing Disabled status, for instant before/after comparison.
- Real-time level meters with clipping indication, and a live spectrum analyser showing your input, the processed output and the calibrated noise floor.
- Record, A/B and export — record yourself, play original vs processed (including alternating 3-second A/B), export both as WAV.
- Runs in the system tray — processing and the virtual microphone keep working while the window is hidden.
- Optional start with Windows, straight to the tray.
- Failsafe audio — if anything goes wrong in the processing, MicFix outputs silence (never noise), shows the error, and offers Restart audio engine and Bypass processing.
- Automatic reconnect when the microphone is unplugged and plugged back in.
- Diagnostics panel — measured CPU, RAM, latency, buffer size and audio status.
- Windows 10 or Windows 11, 64-bit
- Any microphone
- About 230 MB of disk space
- VB-CABLE virtual audio driver for the virtual microphone — included in the installer (see below)
MicFix was developed and tested on Windows 10 Pro 22H2 on deliberately low-end hardware (Intel Core i5-2400S, 12 GB RAM). Windows 11 is supported by design but was not tested on real hardware for this release.
- Download
MicFix-1.0.0-Setup.exefrom the latest release. - Run it. MicFix installs for your user account and does not need administrator rights. You can choose the install folder, a desktop shortcut, starting with Windows, and whether to keep settings next to the application ("portable" data).
- When the installer offers to install VB-CABLE, accept it. This is the driver that lets other applications see MicFix as a microphone. Windows will ask for administrator permission for this step only.
- Launch MicFix from the Start Menu or the desktop.
You do not need Python, a terminal or any developer tools.
Windows SmartScreen: the installer is not code-signed, so Windows may show "Windows protected your PC". Click More info → Run anyway.
- Input device — choose your physical microphone. Entries ending in (Windows WASAPI) give the lowest latency.
- Virtual mic output — choose
CABLE Input (VB-Audio Virtual Cable). MicFix detects it and marks it "← virtual microphone". - Press START.
- Make sure the big button reads MICFIX PROCESSING: ON and the status shows ● Processing Active.
- Press CALIBRATE MIC and stay silent for 5 seconds. MicFix measures your microphone and tunes the filters to it.
- Pick a preset (Clean Voice is a good default).
- In the application you want to use, select the microphone
CABLE Output (VB-Audio Virtual Cable)— see the next section.
The MICFIX PROCESSING button at the top is the master switch.
- ON — your voice goes through the full cleanup chain.
- OFF — the raw microphone is passed through unchanged (time-aligned, so switching is seamless). The status changes to ● Processing Disabled so it is never ambiguous which one other apps are hearing.
The same switch is in the tray icon's right-click menu. STOP closes the audio stream entirely.
Minimising or closing the window sends MicFix to the system tray (next to the clock). Processing continues and the virtual microphone stays live. Right-click the tray icon for:
- Open MicFix
- Processing enabled (on/off)
- Mute output
- Preset
- Restart audio engine
- Exit MicFix
In any application, choose this microphone:
That is how the MicFix virtual microphone appears in Windows — it is an ordinary recording device, so it shows up wherever you can pick a microphone.
| Application | Where to select it |
|---|---|
| OBS Studio | Settings → Audio → Mic/Auxiliary Audio, or add a source: + → Audio Input Capture → Device |
| Discord | User Settings → Voice & Video → Input Device |
| Zoom / Teams / Google Meet | Audio settings → Microphone |
| Web browsers | The site's microphone permission prompt, or chrome://settings/content/microphone |
| Audacity / DAWs | Recording device (use the WASAPI host) |
| Games and apps without a device picker | Windows Sound settings → Input → set CABLE Output as the default device |
Turn off the other application's own noise suppression (Discord's Krisp, Zoom's background noise suppression, OBS noise filters). MicFix has already cleaned the signal; a second suppressor on top is what makes voices sound robotic.
Windows does not allow a normal application to create a new microphone device —
that requires a kernel-mode audio driver. MicFix therefore sends its processed
audio into VB-CABLE, a free, Microsoft-signed virtual audio cable by
VB-Audio Software. Whatever MicFix plays into CABLE Input appears instantly on
CABLE Output, which other applications record from. Nothing is written to disk
in between.
VB-CABLE is donationware: free to use, and VB-Audio welcomes a licence/donation if you find it useful (https://vb-audio.com/Cable/). See THIRD_PARTY_NOTICES.md and docs/VIRTUAL_MICROPHONE.md for details.
| Preset | Character |
|---|---|
| Natural Voice | Minimal intervention — fixes the problems, leaves your tone alone |
| Clean Voice | Balanced cleanup and clarity; the recommended default |
| YouTube Voice | More presence and tighter levels for content creation |
| Podcast | Warm, controlled spoken word with gentle levelling |
| Strong Noise Removal | For noisy rooms and very hissy microphones |
| Electrical Hum Removal | Only the hum, whine and rumble tools — no tone shaping — to isolate electrical noise |
Every parameter can be adjusted on the Tuning tab. Save as custom… stores your own preset; factory presets are never overwritten. Calibration results (the measured hum frequency and whine notches) are kept when you switch presets.
Microphone
→ input gain
→ high-pass (rumble)
→ hum & whine notches
→ spectral noise reduction
→ EQ
→ de-esser
→ compressor
→ true-peak limiter
→ output gain
→ virtual microphone (VB-CABLE)
The order is deliberate:
- High-pass first, so low-frequency rumble cannot bias the noise estimate.
- Hum and whine notches before noise reduction, so the noise reducer sees a flat noise floor instead of tonal peaks 30 dB above it. Generic suppressors that try to remove hum statistically are what leave "musical" artefacts.
- De-esser before the compressor, so the compressor does not push sibilance back up.
- Limiter last, as a hard guarantee against clipping.
Audio is captured and played through WASAPI (Windows' low-latency audio system) in shared mode, so your microphone stays usable by other applications at the same time. The DSP runs in the audio thread using pre-allocated buffers; the user interface never blocks it.
The full design, the maths and the reasoning behind each stage are in docs/ARCHITECTURE.md.
Measured on an Intel Core i5-2400S (2011, 4 cores @ 2.5 GHz), 12 GB RAM, Windows 10:
| DSP processing time | 0.43 ms per 256-sample block — about 8 % of the real-time budget |
| CPU, minimised to tray | ~10 % of one core — about 2.5 % of the whole CPU |
| CPU, window open | ~18 % of one core — about 4.5 % of the whole CPU |
| RAM, minimised to tray | ~133 MB |
| RAM, window open | ~143 MB |
| Processing latency | 17.6 ms (noise-reduction analysis 16 ms + limiter look-ahead 1.6 ms) |
| Total mic-to-virtual-mic latency | about 67 ms with the default 256-sample buffer |
| Installed size | ~230 MB |
Buffer sizes of 64, 128, 256, 512 and 1024 samples are available; 256 is the default and is stable on the machine above. Sample rates: 44.1 kHz and 48 kHz.
- The virtual microphone requires VB-CABLE. It is a separate driver, installed
with your consent, needing administrator rights once. It appears in other apps
as
CABLE Output (VB-Audio Virtual Cable), not under the name "MicFix". - One output device at a time on the main stream. Hearing yourself on headphones while feeding the virtual microphone uses the optional Monitor output, which runs on its own clock and may very occasionally glitch.
- Stationary noise only. Noise reduction is profile-based: it removes steady noise (hum, hiss, fans, electrical buzz) very well, and sudden noises (keyboard clicks, door slams) only as far as the compressor and limiter tame them.
- Latency of ~67 ms is fine for calls, streaming and recording, but noticeable if you monitor yourself live on headphones.
- Not code-signed — Windows SmartScreen may warn on first run.
- English-only user interface.
- Tested scope of v1.0.0: tested on Windows 10 22H2 with a USB microphone, including the full path into the virtual microphone as received by a separate Windows capture client. Windows 11, specific receiving applications (OBS, Discord, browsers) and subjective listening tests with speech were not part of the automated validation.
Other applications don't show a MicFix microphone.
Look for CABLE Output (VB-Audio Virtual Cable). If it is missing, VB-CABLE is
not installed: open MicFix → Main → Set up virtual microphone…, install it,
then restart Windows if the device does not appear.
The other application hears nothing.
- Is MicFix started (the button says STOP) with ● Processing Active?
- MicFix's Virtual mic output must be
CABLE **Input**; the other app must useCABLE **Output**. - Is the OUTPUT meter moving when you speak?
"Could not start audio" / "different Windows audio systems". Choose devices from the same audio system — entries ending in (Windows WASAPI) for both input and output. MicFix corrects this automatically for VB-CABLE.
Crackling or dropouts. Increase Buffer to 512 on the Main tab. The Diagnostics panel shows the DSP load and a dropout counter.
My voice sounds robotic or underwater. Lower Reduction on Tuning → Noise & Hum (8–12 dB is plenty for most microphones), raise Artifact ctrl, and make sure the receiving app's own noise suppression is off.
Microphone disconnected. MicFix shows a banner and reconnects automatically when the microphone returns. Restart audio engine forces it.
Echo, or I hear myself twice. In Windows Sound → Recording → CABLE Output → Properties → Listen, untick Listen to this device. Use MicFix's own Monitor option instead.
Where are my settings? %APPDATA%\MicFix, or a data folder next to
MicFix.exe if you chose portable data during installation.
Health check. The Start Menu contains MicFix self-test, which checks the DSP engine, lists audio devices, confirms VB-CABLE and captures one second of audio.
Requires Windows 10/11 x64 and Python 3.10+ (3.12 used for the release).
pip install -r requirements-dev.txt
python -m pytest tests -q # 72 tests: DSP, real-time engine, failsafe, device handling
python run_micfix.py # run from source
python build/build.py # release executable + installer (needs Inno Setup 6)See docs/BUILD.md for packaging details, including how to bundle VB-CABLE into the installer.
micfix/dsp/ DSP engine: filters, noise reduction, dynamics, calibration analysis
micfix/io/ real-time audio engine, devices, WAV I/O
micfix/gui/ PyQt6 user interface (no DSP code here)
micfix/virtualmic.py virtual-cable detection and setup
build/ PyInstaller spec, Inno Setup script, build script
tests/ automated tests and synthetic test signals
tools/ command-line tools (offline processing, calibration)
docs/ architecture, build and virtual-microphone documentation
MicFix is licensed under the GNU General Public License v3.0 — see LICENSE. Bundled third-party components, including VB-CABLE, keep their own licences — see THIRD_PARTY_NOTICES.md.

