Hear your own mic through your headphones, from the macOS menu bar.
Download · FAQ · Build from source
Sidetone sends any input to whatever output you pick. Usually that means hearing your own microphone while you talk, but a line-in works just as well. It lives in the menu bar and keeps out of the way.
It works with any pair of devices. A USB mic into Bluetooth headphones trips up most tools like this, because the two run on slightly different clocks and the audio slowly falls apart. Sidetone handles that pair, and it keeps working if you leave it on all day.
"Sidetone" is what phone engineers call the bit of your own voice they feed back into the earpiece. Without it, people shout.
- Any input to any output: a microphone, a line-in or anything else the Mac sees as an input, into headphones or speakers.
- Gain in dB that ramps as you drag, a mute button, a level meter, and a spectrum so you can see sound arriving.
- A low cut, bass and treble, and presets for the devices and settings you use most.
⌥⌘Mstarts and stops monitoring from any app, with an optional hold-to-mute key.- Follows the system default devices, so putting headphones on moves monitoring to them.
- Warns about feedback before you send a microphone to the built-in speakers.
- Stops and tells you when a device goes missing, and starts again when it comes back.
- Checks for new versions and asks before installing one.
You need macOS 15 or later.
Download the DMG from the latest release, open it and drag Sidetone into Applications. It's signed and notarized by Apple, so it opens like any other app. If you open it from anywhere else, such as the DMG, it offers to move itself there with Move to Applications, because it can only open at login and update itself from Applications.
To build it from source instead, run ./install.sh on a Mac with Xcode or the
Command Line Tools. Development has the details.
macOS asks for microphone access the first time you start monitoring, and asks about notifications when Sidetone first launches. Notifications are only used to tell you when monitoring stops on its own, so it is safe to refuse.
Click the waveform in the menu bar, pick an input and an output, then flip the switch. Use headphones. Through the built-in speakers your mic hears itself and howls, and Sidetone will say so before you try it. The gear at the bottom of the panel opens Settings.
- The slider sets gain in dB. It ramps as you drag, so it won't click.
- The meter shows your level, and the bars below it show the frequencies, so you can see whether anything is arriving.
⌥⌘Mstarts and stops monitoring from any app. You can add a Hold to mute key in Settings, under Shortcuts.- Latency sits in the panel. Low is the tightest, and Automatic picks a setting for your devices. If the audio starts breaking up, Sidetone raises the buffer on its own and says so.
- Leave a picker on System default and Sidetone follows whatever macOS is using, so putting headphones on moves monitoring to them.
- Tone controls sit in Settings, under Audio: a Low cut for rumble, and Bass and Treble either side of it.
- Save a pair of devices, the gain and the tone as a preset in Settings, under Presets.
- Unplug something and monitoring stops and tells you what went missing. Plug it back in and it starts again. Switch on Start monitoring when your devices are plugged in under General and it also starts on its own when your devices appear.
- The menu bar icon fills in while monitoring, shows a slash while muted, and turns into a warning triangle when monitoring fails or the microphone is off.
- Sidetone checks for new versions and offers to install them. It asks first, and you can turn off Check for updates automatically in Settings.
Anything the Mac sees as an input works, which makes Sidetone useful for getting sound out of a device that has nowhere to send it.
The case it gets used for most: a games console feeding the monitor's picture-in-picture input, with the console's audio going into a USB line-in on the Mac. Monitors play sound from their main input only, so the console picture appears in the corner of the screen with no audio at all. Point Sidetone at the line-in and send it to the monitor's speakers, and the console can be heard while the Mac keeps the main picture.
Two things help here. The gain slider goes to +48 dB, because a line-in can arrive quieter than you would like. And Sidetone knows a line input can't hear the room, so it won't warn you about feedback when you send it to speakers, which it would if you were using a microphone.
Most monitoring tools route the input to the output through a single stream, which drifts and eventually crackles once the two devices run on different clocks. Sidetone runs capture and playback separately, joined by a buffer, and resamples the audio by at most half a percent to keep that buffer at a steady level. That is far below where a change in pitch is audible.
Capture doesn't open an output device of its own, so it can't push a Bluetooth headset into its low quality headset mode. The latency figure in the panel is an estimate added up from the devices' reported latencies and buffer sizes, not a measurement.
Architecture covers the audio path in detail.
Check that the meter moves. If it doesn't, the input isn't sending anything. If Sidetone says it needs microphone access, click Open Settings in the panel and switch on Sidetone in the list that opens. Sidetone notices within a couple of seconds, without a restart, and starts monitoring if you had switched it on.
The buffer is too small for your devices. Pick a higher latency in the panel, such as High. Sidetone also raises the buffer on its own when it notices the audio breaking up.
If you switched on Open Sidetone at login, switch it off in Settings first.
Then quit Sidetone and drag it from Applications to the Trash. Its settings and
presets stay, so a reinstall picks up where you left off. To remove them too, run
defaults delete com.mshannon.sidetone.
If you built it from source, ./uninstall.sh switches off Open Sidetone at
login, removes the app and resets its microphone access. Add --delete-settings
to remove its settings and presets too.
The icon came from an image model. The small glyphs in the app are Apple's SF Symbols. Everything else is written from scratch.
MIT, see LICENSE and NOTICE. This is a personal project and isn't connected to any employer.