Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Barrybarrywu

macrumors newbie
Original poster
Hi everyone,

I’m Barry, the independent developer of Tutti, a native macOS menu bar app for managing multiple audio outputs.
I started building it because I regularly use a display and a Bluetooth speaker with my Mac. Audio MIDI Setup can create a Multi-Output Device, but normal volume control becomes awkward, the volume keys stop working, and devices with different latency can sound noticeably out of sync.

panel-desert.png


Tutti puts that workflow in the menu bar. It currently supports:

• Multiple simultaneous local audio outputs
• Master and per-device volume controls
• Per-device delay compensation
• Left/right channel assignment across two outputs
• Per-app volume, EQ, and output routing on macOS 14.4+
• Saved device presets and an iPhone remote

mac-latency-balance.png
mac-stereo-split.png
mac-per-app-eq.png


Tutti is a native, Apple-notarized macOS app. Its audio functionality is built on Core Audio, and it does not install a virtual audio driver, kernel extension, or system extension. When Tutti quits, it restores the previous system audio output.

Requirements and current limitations:

• macOS 13 or later
• Per-app features require macOS 14.4 or later
• AirPlay devices cannot currently join a Tutti multi-output group
• Some apps and macOS beta releases may have Core Audio compatibility issues

The core features are available for free. Pro has a seven-day trial and is a one-time purchase. Current pricing and downloads are available on the website:

Website
GitHub

Demo:


I’d especially like to hear about the audio setups people here actually use. Are you combining built-in speakers, displays, Bluetooth speakers, USB DACs, or multiple headphones? Which matters more in your workflow: unified volume control, device synchronization, or per-app routing?

I’m happy to answer technical questions and investigate compatibility issues.
 
  • Like
Reactions: bogdanw
What is Tutti Theater? I could't find it described in the documentation.
A "Quit' option would probably be useful below "Mute all' on righ-click.
 
What is Tutti Theater? I could't find it described in the documentation.
A "Quit' option would probably be useful below "Mute all' on righ-click.
Thanks for pointing that out—the name isn’t explained clearly in the documentation.

“Tutti Theater” is the temporary audio device macOS sees when Tutti’s cross-device Stereo Pairing is enabled. It lets you send the left channel to one selected speaker and the right channel to another. It isn’t a separate feature you need to configure.We’ve now added a more detailed explanation of “Tutti Theater” to the documentation on our website.

The Quit option below “Mute All” will be added in the next minor update. In the meantime, you can quit Tutti at any time by pressing Command–Q.

Thanks again for the helpful feedback!
 
  • Like
Reactions: bogdanw
What is Tutti Theater? I could't find it described in the documentation.
A "Quit' option would probably be useful below "Mute all' on righ-click.
Thanks for the feedback! We've just released version 1.7.2, which adds the option to quit directly from the right-click menu. Thanks again for the great suggestion!
 
  • Like
Reactions: bogdanw
Hi everyone — Tutti 1.8.0 is now available.

This release adds Display Control on macOS 15 or later. You can select multiple displays and adjust their brightness together or individually using the brightness keys, custom shortcuts, or scrolling.

External displays can follow the built-in display while keeping their own brightness offset, and presets can now remember display selection and brightness alongside your audio setup. With Tutti Remote 1.1.0, you can also control individual displays or the whole group from your iPhone.

On the audio side, Stereo Mode has been improved on macOS 14.4+: assigned left and right speakers keep their roles, while any additional selected outputs play full stereo instead of going silent.

Full release notes:
https://github.com/BarryBarrywu/tutti/releases/tag/v1.8.0

If you try it with a particular display and speaker setup, I’d be glad to hear how it works for you.
 
One issue in the category “user’s fault” 🙂 If I don’t quit Tutti and select another output from System Settings – Sound, it jumps back to Tutti. If I select another output from the Menu Bar Sound icon, it sometimes remains like this and sound continues through Tutti.
Sound_Tutti.jpg
 
One issue in the category “user’s fault” 🙂 If I don’t quit Tutti and select another output from System Settings – Sound, it jumps back to Tutti. If I select another output from the Menu Bar Sound icon, it sometimes remains like this and sound continues through Tutti.
View attachment 2650851
Hi, thanks for reporting this — it’s not really “user error.”

While Tutti is managing multiple outputs, it needs to remain the active system output. If you select one of those speakers directly in macOS Sound settings, Tutti may switch the output back so the group can continue playing.

To switch outputs, please change the selected speakers inside Tutti. If you want macOS to control the output directly, quit Tutti first.

The loading indicator in the menu bar may be a separate issue. If it remains stuck for more than a few seconds, could you let me know your macOS and Tutti versions, and which outputs were selected in Tutti at the time?
 
Another one, settings don't load when pressing ⌘, (Command-Comma)
View attachment 2650859
Thanks for reporting this. I’ve confirmed that this is a Tutti bug: the standard ⌘, shortcut is opening an empty Settings window.

For now, please open Settings from the Tutti menu instead. That should display the full Settings interface correctly.

We’ll fix this in the next version, which is expected to be released next week.
 
The loading indicator in the menu bar may be a separate issue. If it remains stuck for more than a few seconds, could you let me know your macOS and Tutti versions, and which outputs were selected in Tutti at the time?
macOS 15.7.9 (24G830), Tutti 1.8.0 (21), it happens when selecting a different output than the initial one. Example: USB speakers selected as output, starting Tutti, selecting Mac mini speakers as output from menu bar.

By user's fault I meant that it was pretty obvious I should't do that. On the other hand, the intro of the app and the documentation doesn’t say I shouldn’t 🙂

And that lead me to another bug: on a new installation, Tutti 1.8.0 (21) closes itself after the Latency Offset screen. Selecting Skip demos goes to Accessibility Access and the app continues.

Another possible bug, at least in my opinion, the scroll wheel controls the brightness as well. I accidentally turned the brightness up on the monitor while trying to adjust the volume.
 
macOS 15.7.9 (24G830), Tutti 1.8.0 (21), it happens when selecting a different output than the initial one. Example: USB speakers selected as output, starting Tutti, selecting Mac mini speakers as output from menu bar.

By user's fault I meant that it was pretty obvious I should't do that. On the other hand, the intro of the app and the documentation doesn’t say I shouldn’t 🙂

And that lead me to another bug: on a new installation, Tutti 1.8.0 (21) closes itself after the Latency Offset screen. Selecting Skip demos goes to Accessibility Access and the app continues.

Another possible bug, at least in my opinion, the scroll wheel controls the brightness as well. I accidentally turned the brightness up on the monitor while trying to adjust the volume.
Thanks for the detailed report. None of this is your fault.
To avoid asking you for information several times, could you please collect the following in one session?

1. Enable Diagnostic Mode

  1. Open Tutti Settings → About.
  2. Click the Tutti app icon 10 times.
  3. Confirm that Diagnostic Mode is enabled.
The log contains only device and runtime information. It does not record audio.

2. Reproduce the output-switching issue

  • Start with the USB speakers selected.
  • Switch to Mac mini Speakers from the macOS menu bar.
  • Wait until the loading indicator becomes stuck.
  • Return to Settings → About → Diagnostics and export the log.
Please also tell us:

  • Whether Settings → Control → Audio Guard → Lock output device was enabled.
  • Whether the sound actually switched.
  • Whether Tutti’s selected output changed.
  • If possible, please include a short screen recording showing the stuck indicator.
3. Reproduce the onboarding issue

You do not need to reinstall Tutti. Open Settings → General → Feature tour → Replay, then continue past the Latency Offset screen.

If the problem happens again, please tell us whether:

  • Tutti quits completely and its menu bar icon disappears, or
  • Only the Feature Tour window closes.
After reopening Tutti, please export another diagnostic log. If macOS shows a crash report, please attach that as well. If the problem only happens after a fresh installation, please mention that.

4. Brightness scrolling

Scrolling follows the control under the pointer. Please tell us where the pointer was when the brightness changed. If it was over a volume control or the Tutti menu bar icon, that would be a bug. You can temporarily disable scrolling under Settings → Control → Scroll to Adjust.

Please email the logs and any recording or crash report to support@barrybarrywu.com

Thank you for taking the time to help us track these down.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.