Skip to content

Releases: Farsheed/MacMicControl

v1.0.4

Choose a tag to compare

@Farsheed Farsheed released this 19 Feb 06:03

This update introduces the much-anticipated Push to Mute feature, provides more refined control over your audio devices, and includes several important bug fixes and stability improvements.

✨ New Features

  • Push to Mute (PTM) Mode: You can now configure a hotkey to mute your microphone only while the key is held down. This is the inverse of the classic Push to Talk functionality and is perfect for users who are usually unmuted.

    • Set a custom hotkey for PTM activation.
    • Configure a delay before the microphone becomes live again after releasing the key.
    • A visual countdown timer appears on the menu bar icon during the PTM release delay, giving you clear feedback.
  • Microphone Selection: A new menu in the status bar allows you to see all available microphones and switch your system's default input device directly from the app.

  • Device Exclusion: In the new "Devices" tab in Settings, you can now prevent Mac Mic Control from muting specific audio devices. This is ideal for excluding high-quality studio interfaces or other devices you wish to manage manually.

🐞 Bug Fixes & Improvements

  • UI Layout Correction: Fixed a layout issue in the "Push to Talk" and "Push to Mute" settings tabs where controls would shift to the center when certain checkboxes were unchecked. All UI elements now remain correctly left-aligned.
  • Build Script Reliability: The build script for creating separate Intel and Apple Silicon versions has been fixed to ensure it always compiles and packages the latest version of the application, preventing stale builds.
  • Mutual Exclusivity Bug: Resolved a bug where enabling Push to Talk would disable Push to Mute (and vice versa). Both modes can now be enabled independently, and their states are correctly reflected in the UI.

v1.0.3

Choose a tag to compare

@Farsheed Farsheed released this 08 Feb 00:01

Stability & Crash Fixes

  • Fixed a crash when opening the Push to Talk test panel
  • Fixed a CoreAudio listener leak that could cause increasing memory usage over time
  • Fixed a thread safety issue in audio device change callbacks that could lead to intermittent crashes
  • Removed all force unwraps (try!) in color serialization — the app no longer crashes on corrupted preferences
  • Fixed a NotificationCenter observer leak in app state lifecycle
  • Fixed a strong reference cycle in the overlay fade-out animation
  • Fixed device disconnection during Push to Talk now cleanly disables PTT mode

Reliability

  • Device exclusion list now uses persistent device UIDs instead of session-specific IDs — excluded devices stay excluded across reboots and reconnections
  • Hotkey conflict detection now offers a revert option instead of silently failing
  • Push to Talk test view blink animation now updates correctly
  • Overlay notification with zero duration now behaves consistently

Performance

  • Menu bar icon redraws are now debounced — multiple rapid state changes produce a single redraw instead of one per change
  • Color values are cached after first use, eliminating repeated deserialization on every icon draw
  • Sound effects are cached after first playback, avoiding repeated disk lookups
  • Replaced deprecated lockFocus/unlockFocus icon drawing with modern NSImage drawing handler

Accessibility

  • Device enable/disable toggles now announce the device name to VoiceOver

Code Quality

  • Unified logging across all components using os.log — replaces scattered print() statements for better diagnostics in Console.app
  • Consistent use of [weak self] in all async callbacks to prevent retain cycles

v1.0.2

Choose a tag to compare

@Farsheed Farsheed released this 07 Feb 23:10

This update focuses on stability, enhanced customization for visual feedback, and polishing the user interface.

✨ New Features & Improvements

  • Customizable HUD Duration : You can now adjust how long the "Muted/Live" visual overlay stays on screen.

    • General : Set a specific duration for standard mute toggles.
    • Push-to-Talk (PTT) : Set a separate, independent duration for PTT events.
  • Dynamic Menu Shortcuts : The "Toggle Mute" item in the status bar menu now correctly reflects your custom global shortcut (e.g., if you set it to Cmd+Shift+M , the menu will show ⌘⇧M ).

  • UI Modernization : The Settings window has been refreshed with native macOS styling, improved spacing, and better organization.
    🐛 Bug Fixes

  • Device List : Fixed an issue where the list of input devices would occasionally disappear from the menu.

  • Crash Fixes : Resolved a crash that could occur when switching tabs within the Settings window.

  • Input Switching : Fixed a bug that prevented changing the system default input device via the Settings menu.

  • Settings Shortcut : Removed the hardcoded Cmd+, shortcut from the status bar menu to prevent conflicts.
    ⚙️ Under the Hood

  • CoreAudio Stability : Resolved UnsafeMutableRawPointer warnings to ensure better compatibility and stability with modern macOS versions.

  • Performance : Improved memory management and added structured logging for better error tracking.

v1.0.1

Choose a tag to compare

@Farsheed Farsheed released this 07 Feb 18:17

Mac Mic Control v1.0.1

Improvements & Fixes

  • Audio Handling : Restructured AudioController to use a dedicated serial queue for CoreAudio interactions, improving thread safety and performance.
  • Reliability : Implemented persistent device UIDs for more accurate and reliable device exclusion tracking.
  • UI Responsiveness : Streamlined menu bar icon updates in AppDelegate by debouncing state changes and switching to modern NSImage drawing handlers.
  • Stability : Added automatic hotkey reversion if registration fails and ensured proper cleanup of observers and timers in AppState and OverlayWindow .
    This release focuses on internal refactoring to enhance the stability of audio device management and the responsiveness of the application's interface.

V1.0.0

Choose a tag to compare

@Farsheed Farsheed released this 07 Feb 01:16

🚀 New Features

  • Global Microphone Control : Instantly mute/unmute your microphone system-wide with a customizable keyboard shortcut.
  • Push-to-Talk (PTT) Mode :
    • Keep your mic muted by default and hold a key to talk.
    • Delay Mute : Added a configurable "cooldown" timer to keep the mic open for a few seconds after releasing the key (prevents cutting off sentences).
    • Supports modifier-only hotkeys (e.g., use just Ctrl or Cmd as your PTT button).
  • Device Management :
    • Input Switcher : Quickly change your system default microphone directly from the Settings.
    • Exclusion List : New "Devices" tab allows you to exclude specific microphones (like loopback devices or conference room inputs) so they are never muted by the app.
  • Enhanced Feedback :
    • Visual HUD : Large, clear on-screen overlay shows your mic status when toggling.
    • Audio Cues : Assign distinct system sounds for Mute, Unmute, PTT Activate, and PTT Deactivate.
    • Visual Notifications Control : Separate toggles to enable/disable the HUD for General use vs. Push-to-Talk mode.
  • Menubar Customization :
    • Status icon changes color (Red for Live, Blue for Muted).
    • Blinking Option : visual indicator that flashes when the microphone is live.
    • Fully customizable colors for all states.
  • Launch at Login : Option to automatically start the app when you sign in.