102

When I plug my Mac into a DisplayPort monitor that has loudspeakers, the Mac's volume controls become disabled.

Is Apple assuming that if I have external speakers I am so much better using their own volume control that I have to be forced to do it? That is annoying because the monitor's volume controls are buried in terrible menus accessed by terrible buttons on the back of the monitor.

Also, if I am inside an app where I can select the audio device and I select the Mac's internal speakers, the volume controls are STILL disabled. Is there no way to control the volume of an app when an external speaker is connected even if the app is not using the external speaker?????

Some additional info: It's a Macbook Pro 13" 2018 version. Using a Thunderbolt to Displayport cable, plugging in to a Dell monitor with speakers. In another location I use the same cable to plug in to Dell monitors with Displayport but without built in speakers in the monitors. At that location the volume controls remain active and they control the internal speaker in the laptop as they should.

jay613
  • 2,568
  • Usually, this happens when you are using digital audio(the thunderbolt cable instead of a 3.5 mm jack), so unless you want to lose audio quality, the Mac can't control the volume. Try using a regular 3.5 mm cable to the monitor and/or disable the speakers on the display(there must be an option for that somewhere) – airsquared Sep 17 '18 at 17:09
  • Adding a clarification now, 2 years after asking the question. If an app allows you to select an output device, you can in fact control the volume of that device if it's not DP or HDMI. But you have to ALSO select that device in the master audio control in the header bar. The third paragraph of my question was either wrong when I wrote it, or the problem has been fixed. I'll provide more details in an answer below. – jay613 Dec 10 '20 at 21:28

10 Answers10

138
  1. MonitorControl Control your external monitor brightness & volume on your Mac. It does not require installing a driver.
  2. Proxy Audio Device MacOS app that creates a virtual output device with software audio control that routes the audio to another output device.
  3. SoundFlower MacOS system extension that allows applications to pass audio to other applications.
user3439894
  • 58,676
Surmon
  • 1,481
  • 22
    First impression of MonitorControl is great. Unlike the other solutions, it looks like it uses CEC/MCCS to change the volume (and brightness) settings of the monitor itself. Others control the level of sound your Mac sends to the monitor. Thanks! – Jimothy Nov 15 '19 at 15:02
  • 8
    MonitorControl simply "sexy" and I feel bad about my past because I don't find this earlier. – Sai May 23 '20 at 19:01
  • 1
    Loopback is a paid software by the creators of SoundFlower, if you are looking for a solution that costs money but accomplishes this easily without problems. – P A N Aug 17 '20 at 10:54
  • 4
    MonitorControl is almost a solution here, but still doesn't solve the problem of not being able to control the "master" volume when a monitor is plugged in. If I crank my laptop volume to the max while unplugged from the monitor, then plug the monitor in, even the lowest monitor volume setting will still be deafening. In order to calibrate the range, I have to unplug the monitor, adjust the internal volume, then plug the monitor back in to see if it's more acceptable. Rinse and repeat. (Still, at least I can control the monitor using my freaking mouse.) – Thomas Thorogood Sep 16 '20 at 18:52
  • 3
    MonitorControl is pretty impressive :). Thanks – Matthew O'Riordan Jan 04 '21 at 14:24
  • Thank you, MonitorControll it worked well for me with sound control and brightness. – Moris Kramer Jan 24 '21 at 19:59
  • MonitorControl should be merged into macos's source. Perfect app. – Fabrizio Mele Apr 27 '21 at 20:06
  • Unfortunately MonitorControl did not work with my monitor/KVM setup. Windows' built-in volume control works fine. Does Windows use CEC for this or does it just do it locally in software? – Timmmm Oct 29 '21 at 09:53
  • SoundFlower worked though - thanks! It's not using CEC but it sounds good enough to me. It was a bit tricky to set up so I'll add an answer. – Timmmm Oct 29 '21 at 10:23
  • Ok I spoke to soon. SoundFlower is old and broken. Use Proxy Audio Device instead - I added an answer but I'll update this one too. – Timmmm Oct 29 '21 at 14:26
  • This should be the accepted answer. MonitorControl works like a charm. – Alex Dec 27 '21 at 21:01
  • MonitorControl is super nice. Works well for me with LG 38WN95C-W on a thunderbolt connection – JohnnyTheTank Mar 28 '22 at 13:38
  • 1
    Proxy Audio Device is the best solution. The manual installation might look intimidating, but it's just a couple steps. – M. Herold Jun 10 '22 at 18:14
  • Proxy Audio Device did exactly what I wanted – Max Coplan Dec 08 '22 at 17:51
  • Sadly MonitorControl (which has been fantastic on my old 2013 retina MBP) doesn't work on a new M2 Pro (Ventura) with the same screens. Both hardware brightness and volume worked on the old laptop, but not the new. eqMac works for volume on the new, though, even on the free version. – sanmiguel Jul 12 '23 at 11:59
  • MonitorControl worked like a charm on M1 MacBook Pro. Installation, UX, and functionality are awesome. I wish I found it earlier. – user1876190 Dec 21 '23 at 21:09
58

It's because Apple computers don't support CEC (Consumer Electronics Control).

Basically, macOS doesn't allow you to control end devices attached via HDMI or DisplayPort. Changing the volume would be considered "controlling the device"

IconDaemon
  • 19,234
Allan
  • 101,432
  • 12
    I can accept this (even if I don't like it) as the answer to why I cannot control the Dell monitor's speakers from the Mac volume control. But this doesn't explain why I cannot control the volume of the MacBook's internal speakers while the external monitor is plugged in! I can unplug the monitor, change the volume of the internal speakers, and plug the monitor back in. That works but is ridiculous. – jay613 Sep 17 '18 at 17:40
  • Is sound coming from the internal speakers? What does it say in Sys Prefs -> Sound? – Allan Sep 17 '18 at 17:45
  • Yes, sound does come from the internal speakers. Some apps allow you to select the audio device. The internal speakers and the external monitor appear as choices. If I select the internal speakers for an app, the sound does come out that way. It comes out at the volume that was set before I plugged in the external monitor. I don't have access to the relevant monitor right now, I will update this comment later, when I do, with what I see in System Preferences. – jay613 Sep 17 '18 at 18:04
  • 2
    This answer is correct. Thank you. You simply cannot control volume of a DP monitor from a Mac. You can still direct an app to use internal speakers, but because the Mac has disabled ALL volume control, you can't control volume of the internal speakers either. You can disconnect the monitor, turn the internal speakers up or down, reconnect the monitor and then use the internal speakers. It's pathetic. – jay613 Sep 28 '18 at 13:48
  • This answer is both completely correct and simultaneously misleading. If you can't control the volume at the far-point, all you need to do is control it before it leaves the Mac. All the other answers have suggestions to achieve it that way. – Tetsujin Jul 21 '20 at 16:52
  • @Tetsujin This answer is meant to address controlling the actual volume of the hardware. Modifying the volume in an app (like I do in Vox media player) is a different thing altogether. That app allows you to override the media keys so it's play/pause/vol up and down can be changed but it doesn't change the overall volume. – Allan Jul 21 '20 at 17:01
  • The question is broad - how do I control the volume? The answer says you can't… which is only strictly true. All [maybe some of] the other answers may be considered to be frame-challenges, but they still give fairly simple alternatives which make the desired end result not only feasible.. but pretty easy in the overall scheme of things. – Tetsujin Jul 21 '20 at 17:08
  • 3
    I have a monitor with no speakers and plugging it in disables volume controls... even when I'm using a bluetooth headset for my output. This is not a valid feature, it is a bug and needs to be fixed. – Dave Aug 27 '20 at 14:32
  • This answer just seems like you're trying to hate on Apple. It also doesn't answer the question at all. – MysteryCoder456 Dec 05 '20 at 09:54
32

I did the 14 day trial of SoundControl which did work, but I wasn't really willing to pay $15 for something that I feel should be available out of the box for all MacOS machines.

After some more digging I came across eqMac2. Quick install, free and open source, and worked straight away. Highly recommend anyone reading this to give it a try.

Aaronias
  • 421
  • 4
  • 2
  • 1
    eqMac2 doesn't work on Catalina, I have issues installing the drivers. I already sent an inquiry to the developer and waiting for his response. – Mohamed Mar 29 '20 at 08:52
  • 1
    @Mohamed For me eqMac2 works on Catalina (10.15.4). Aaronias, I can't tell you how much I love you. I was looking so many times for this basic feature and now I can control my volume with my volumes keys! It's insane! Glad to see that I'm not alone with this stupid Apple issue. – Martin Cup Apr 12 '20 at 13:27
  • @MartinCup Yes I have tried it and it's working on Catalina 10.15.4, I was using another version of Catalina. Thanks a lot. – Mohamed Apr 17 '20 at 20:29
  • Works on Catalina 10.15.5 (19F101) – ralphinator80 Jul 02 '20 at 17:05
  • This should be the true answer: https://eqmac.app/ worked great for me. Note that it has to be running in the taskbar in order to handle the soft volume controls. Similar to MonitorControl, it can be installed via brew cask install eqmac – MarkHu Nov 13 '20 at 22:01
  • 2
    OMG THANK YOU... I cant believe this isn't already built into OSX! Oh wait, I can believe it.. so many things in OSX are counterintuitive or missing (missing up arrow in finder anyone)? eqMac2 is amazing. – Kalamalka Kid Mar 08 '21 at 06:47
  • Dude EQ Mac just saved me. Was going to begrudgingly buy a physical knob. – aks. Mar 13 '21 at 04:39
  • Not working for me on an M1 running Sonoma. Edit: working now thankfully. Just had to restart the app. – Chris Redford Oct 27 '23 at 19:28
  • eqMac worked perfectly for me on my M1 running Sonoma, while MonitorControl did nothing – DysphoricUnicorn Mar 07 '24 at 10:01
12

I found two commercial apps which support this:

Both apps have a free trial. I've tried SoundSource and it works for me. I have not had the opportunity to try SoundControl.

Scott Dudley
  • 1,434
  • These apps seem nice. Hopefully Apple will include this functionality in a macos release. Thanks. – jay613 Jun 02 '19 at 21:51
  • Incidentally, the title plus the accepted answer from Allan refer to DP or HDMI monitors, but I’ve found that the problem with the volume keys not working even applies to newer USB-C connected monitors. (But SoundSource works in that scenario too.) – Scott Dudley Jun 02 '19 at 21:59
  • Sound control worked just after install. but after restart it stopped working. – Shamal Karunarathne Dec 11 '20 at 09:03
  • Unlike a lot of alternatives at the time of writing, SoundSource actually works for this on a M1 (Apple Silicon) machine. Running it on my M1 Mac Mini now. – Henrik N Dec 29 '20 at 20:22
4

And there is an app for that,

build in to your OS X.

In the utility folder >> Audio MIDI

try it, you will like it !

It will allow you to have simultaneous output to multiple devices.

I could not test it for your set up so let me know if it worked.

enter image description here

Ruskes
  • 48,129
  • My monitor is not a MIDI device. But I will look at this utility and will look for similar things within System Preferences and update in a comment later with what I see. – jay613 Sep 17 '18 at 18:09
  • 2
    That has nothing to do with MIDI, it is just setting up multiple audio output. – Ruskes Sep 18 '18 at 03:58
  • 13
    I finally looked at this utility, and it looks nice but unfortunately doesn't change anything. Inside the utility the Master Volume for the internal speakers is disabled when the laptop is plugged in to a DP display. Just to emphasize, I understand now that a Mac cannot control the volume of a DP display, what's frustrating is that the INTERNAL speaker controls are also locked out when an external DP display is plugged in. Anyway -- thank you. – jay613 Sep 28 '18 at 13:46
  • 2
    I was able to get this working using USC-C by playing around with Soundflower and creating a Multi-Output Device. I'm not quite sure how exactly I got it to work but switching between the different options seem to do something. I have my output in sound preferences set to Soundflower (2ch). I will post an answer if I get chance. I'm using an LG monitor with MacBook closed. – limitlessloop Nov 09 '18 at 17:43
  • 1
    @Ruskes Setting up a "Multi-Output Device" using this app does NOT allow you to control the volume. Volume controls are disabled when any output is selected other than the "Built-in Output" –  Aug 24 '19 at 00:50
  • The multi output device doesn't allow volume control in 11.x – Matt Aug 16 '21 at 23:16
2

I have the exact same problem (in Big Sur with a LG UltraWide) and the only thing that worked for me was using the executable that is built using the code at https://github.com/MonitorControl/MonitorControl

mmmmmm
  • 30,160
2

There are several potential answers:

  • MonitorControl - uses actual CEC commands to control the volume (and brightness) on the monitor.
  • SoundFlower - creates a virtual device with a software volume control that can route sound to another device (your monitor).
  • BlackHole - similar software to SoundFlower.
  • Proxy Audio Device - creates a virtual device like SoundFlower. This was specifically created to solve this problem.

I included SoundFlower and BlackHole for completeness but the DO NOT WORK. SoundFlower is very old (2014) and I did manage to get it to work, but it stops working after about an hour.

BlackHole is similar to SoundFlower but unfortunately does not support outputting to another audio device so you can't use it for this purpose. There is a discussion about it.

So my suggestion is try MonitorControl, if that does not work use Proxy Audio Device.

MonitorControl did not work for me for some reason - I'm using a TESmart KVM switch and a Dell monitor. Volume control works fine on Windows so I assume either there's some quirk in MonitorControl, or Windows is actually not using CEC.

Proxy Audio Device seems to work pretty well so far.

Timmmm
  • 486
1

One solution: use external monitors connected to the monitor's audio out jack. Then you have volume control. If using headphones then add a headphone volume control pass through on the wire.

  • I'm afraid this won't work for e.g. Sonos Beam speakers that only support optical and HDMI, and even with an analog-to-digital converter, I believe you'd only get stereo sound rather than surround sound (with a HTPC setup). – Henrik N Dec 29 '20 at 20:32
1

If an App allows you to select its output device, and you select one that allows volume control, you CAN control it even when a DP or HDMI monitor is connected. This is contrary to what I said in this question and contrary to my comments to the Accepted Answer. Perhaps this was fixed in the last two years or perhaps I was wrong when I wrote the question and comments.

Here's the complication and how you do it, that works today with Catalina and I think also worked with later versions of High Sierra.

Say you have your master audio output device set to "Monitor 2" (a DP monitor) and you have an app with it's own selectable audio output set to "USB Speaker", which allows volume control from the Mac's UI. In order to control that volume you have to first change the master Audio output to USB Speaker. If some other app that doesn't have its own device selection is making sound through the monitor, it will also switch to the USB speaker. But then you can modify the speaker's volume.

Switching between devices in the master controller will show you and allow you to control each device's volume, it's only the DP and HDMI ones will be greyed out.

jay613
  • 2,568
0

Not perfect but you change master volume:

Shift + Option +

or

Shift + Option +

fsb
  • 22,799
Axel B
  • 11