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