Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicMaster

MicMaster is a Windows microphone control utility for quick mute control, source switching, hotkeys, and lightweight automation.

Features

  • Mute and unmute the active microphone from the app, tray, or hotkey.
  • Choose from detected microphone sources and keep that choice across restarts.
  • Support Toggle Mute, Push-to-Talk, and Push-to-Mute hotkey modes.
  • Record a custom shortcut with a single record/stop button.
  • Auto-mute when selected applications are running.
  • Scheduled mute windows.
  • Desktop and sound notifications.
  • Tray menu with direct source switching.
  • Settings import/export.
  • Startup health checks for missing sources, tray availability, sounds, and hotkey registration issues.
  • In-app event history with export support.

Requirements

  • Windows
  • Python 3.9+ if running from source. The current packaged build is validated with the repo venv.
  • A working microphone input device

Install dependencies from source with:

pip install -r requirements.txt

Run From Source

python MicMaster.py

Or run the package entrypoint directly:

python -m micmaster

Project Layout

MicMaster/
|-- MicMaster.py          # compatibility launcher
|-- pyproject.toml        # package metadata
|-- requirements.txt
|-- micmaster/
|   |-- __init__.py
|   |-- __main__.py
|   |-- app.py
|   |-- audio_control.py
|   |-- dialogs.py
|   |-- hotkeys.py
|   |-- main_window.py
|   |-- settings_store.py
|   |-- threads.py
|   |-- tray_support.py
|   `-- utils.py
|-- icons/
|-- images/
`-- sounds/

Main Workflow

  1. Launch the app.
  2. Pick your microphone in Settings.
  3. Record a hotkey.
  4. Optional: enable tray mode, auto-mute rules, scheduled mute, or startup.
  5. Use Health Check if a source, hotkey, or tray feature is not behaving correctly.

Settings Import and Export

  • Open Settings.
  • Use Export Settings to save your full profile configuration as JSON.
  • Use Import Settings to restore settings on another machine or after reinstalling.

Imported settings are normalized on load, so stale keys from older versions are removed automatically.

Health Check

MicMaster runs a health pass on startup and exposes the latest result in the main window. The detailed dialog checks for:

  • missing microphone sources
  • saved source no longer available
  • missing sound assets
  • unavailable tray support
  • hotkey registration problems
  • microphone control interface problems

Event History

The main window keeps a rolling history of important actions, including:

  • mute and unmute changes
  • source changes
  • hotkey changes
  • automation triggers
  • settings import/export

Use Export History to save the current history to a text file.

Packaging

The repository includes MicMaster.spec for PyInstaller-based Windows builds. Build from the repo root with the project virtual environment:

.\venv\Scripts\python.exe -m PyInstaller --noconfirm --clean MicMaster.spec

The packaged executable is written to dist\MicMaster.exe.

The Windows icon is embedded through icons\mic_switch_icon.ico. Keep that file as a multi-size .ico; Windows desktop and taskbar rendering depends on the smaller icon entries. Desktop and startup shortcuts point at the frozen executable icon (MicMaster.exe,0) so they do not depend on PyInstaller's temporary extraction folder.

Contributing

  • Keep Windows behavior stable first.
  • Prefer targeted changes over UI churn.
  • Validate with python -m py_compile MicMaster.py micmaster\\app.py micmaster\\main_window.py micmaster\\dialogs.py micmaster\\audio_control.py micmaster\\hotkeys.py micmaster\\settings_store.py micmaster\\tray_support.py micmaster\\threads.py micmaster\\utils.py.

About

MicMaster is a lightweigh app that allows you to mute/unmute with a predefined hotkleys and control your microphone

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages