Releases: TheButterZone/MacIntercom
Release list
MacIntercom v0.1.6
Full Changelog: v0.1.5...v0.1.6
DSP & Audio Engine Updates
- Asymmetrical Noise Gate: Implemented a fast-attack/slow-release envelope tracker to preserve speech transients while naturally rejecting background noise.
- AGC Onset Grace Period: Added a multi-buffer grace period that prevents the Automatic Gain Control from squashing the first syllable of speech.
- Soft-Knee Limiting: Replaced standard clipping with a mathematical soft-limiter to ensure total output never exceeds
-0.08 dBFS, eliminating digital distortion entirely.
Modes
- Media-aware mode (default when running ./macintercom) — intercom automatically yields to media playback.
- Standalone mode (run ./macintercom --s) intercom ignores media playback and stays active continuously until Ctrl-C.
- Test tone mode (run ./macintercom --t) intercom simultaneously plays 220 Hz tone through computer output & 440 Hz tone through Bluetooth speaker.
One thing you may want to try in Media-aware mode
In release assets, is the result of
ffmpeg -f lavfi -stream_loop -1 -i anullsrc=r=8000:cl=mono -t 36000 -c:a aac -b:a 12k silence_10h.m4a
If you set this file to play on loop in a media player, when you press the Mac's global hotkey for play/pause, or the Bluetooth speaker's play/pause button, you'll effectively get Push-To-Talk/Push-To-Mute from both ends. However, other media players/browser media will likely steal Now Playing focus; you'll have to open the silent loop's media player & toggle play/pause/play or pause/play, to restore it as the active Now Playing app for MacIntercom to return to PTT/PTM.
Why generate a silent track 10 hours long instead of 5 seconds?
Some media players briefly transition through a paused/stopped state when looping a single file. Media-aware mode interprets those transitions as legitimate playback changes. A very long silent file avoids repeated loop events while remaining small because silence compresses extremely well.
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-macos-universal-v0.1.6.zip.asc macintercom-macos-universal-v0.1.6.zip
MacIntercom v0.1.5
Full Changelog: v0.1.4...v0.1.5
How does it work now?
- Media-aware mode (default when running ./macintercom) — intercom automatically yields to media playback.
- Standalone mode (run ./macintercom --s) intercom ignores media playback and stays active continuously until Ctrl-C.
- Test tone mode (run ./macintercom --t) intercom simultaneously plays 220 Hz tone through computer output & 440 Hz tone through Bluetooth speaker.
One thing you may want to try in Media-aware mode
In release assets, is the result of
ffmpeg -f lavfi -stream_loop -1 -i anullsrc=r=8000:cl=mono -t 36000 -c:a aac -b:a 12k silence_10h.m4a
If you set this file to play on loop in a media player, when you press the Mac's global hotkey for play/pause, or the Bluetooth speaker's play/pause button, you'll effectively get Push-To-Talk/Push-To-Mute from both ends. However, other media players/browser media will likely steal Now Playing focus; you'll have to open the silent loop's media player & toggle play/pause/play or pause/play, to restore it as the active Now Playing app for MacIntercom to return to PTT/PTM.
Why generate a silent track 10 hours long instead of 5 seconds?
Some media players briefly transition through a paused/stopped state when looping a single file. Media-aware mode interprets those transitions as legitimate playback changes. A very long silent file avoids repeated loop events while remaining small because silence compresses extremely well.
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-macos-universal-v0.1.5.zip.asc macintercom-macos-universal-v0.1.5.zip
MacIntercom v0.1.4
Full Changelog: v0.1.3...v0.1.4
How does it work now?
- Media-aware mode (default when running ./macintercom) — intercom automatically yields to media playback.
- Standalone mode (run ./macintercom --s) intercom ignores media playback and stays active continuously until Ctrl-C.
- Test tone mode (run ./macintercom --t) intercom simultaneously plays 220 Hz tone through computer output & 440 Hz tone through Bluetooth speaker.
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-v0.1.4.zip.asc macintercom-v0.1.4.zip
MacIntercom v0.1.3
Full Changelog: v0.1.2...v0.1.3
How does it work now?
Computer's media app is paused: intercom resumes audio.
Computer's media app is playing: intercom pauses audio.
Your Bluetooth speaker's multi-function button is pressed, or any other input method (keys, clicks, ...?) for resume/pause: the media app toggles resume/pause, then intercom deconflicts & does the opposite.
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-v0.1.3.zip.asc macintercom-v0.1.3.zip
MacIntercom v0.1.2
Source-only release. Previous binary releases had AGC hardcoded in source lacking any way to toggle off AGC (only AGC logs, via DebugFlags.swift).
Make enableAGC flag toggle AGC+AGC logs is the only addition for v0.1.2 - which needs compiling from source after setting DebugFlags.swift.
Unless each terminal run has a startup prompt added for choosing which flags to set, all binaries before GUI releases, will be compiled with the flags affecting devices & audio (except TestTone) set true.
Download previous binary release if you want AGC-only: https://github.com/TheButterZone/MacIntercom/releases/tag/v0.1.1
MacIntercom v0.1.1
Full Changelog: v0.1.0...v0.1.1
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-v0.1.1.zip.asc macintercom-v0.1.1.zip
MacIntercom v0.1.0
Installation
MacIntercom is currently distributed as source code and unsigned release binaries.
Because MacIntercom is not signed with an Apple Developer certificate, macOS may require manually approving the executable before first use.
Verification
Verify the checksum:
shasum -a 256 -c SHA256SUMS
Verify the GPG signature:
gpg --verify macintercom-v0.1.0.zip.asc macintercom-v0.1.0.zip