24

I have a mac mini 2011 with OSX Lion. And I have connected my monitor (with integrated speakers) through hdmi port. The sound is working fine, but the volume keys on the keyboard don't work. When I press one of them the volume image appears on the screen but with a prohibited signal.

Is there a way to fix this and make my keyboard keys change the system volume?

By the way, they work very well when I use another audio output device

6
  • 2
    Why in windows it is possible?
    – user20071
    Mar 13 '12 at 15:36
  • Even more - what if I want to control the volume remotely from the web?
    – cregox
    Aug 7 '12 at 17:15
  • Because Microsoft sees things differently, and dislike industry standard. LOL. Anyway, Apple's way of not letting people adjust the volume is correct, though not user-friendly. Basically you can think HDMI as DVI + Optical + sometimes Ethernet.
    – Shane Hsu
    Apr 6 '13 at 18:48
  • Soundflower produces audio lag though so it's not a really good alternative since every 5 minutes you feel like you're watching a dubbed movie.
    – user51218
    Jun 14 '13 at 0:17
  • I notice no lag whatsoever on my machine.
    – matt burns
    Apr 14 '15 at 10:35
15

See a solution here for the problem - http://www.vanetta.net/2012/07/enabling-hdmi-audio-controls-on-2011.html

Requires the free third party app - https://code.google.com/p/soundflower/ but it works perfectly.

5
  • 1
    FYI, latest compiled binary is at rogueamoeba.com/freebies/soundflower
    – kobaltz
    Oct 24 '14 at 12:51
  • 1
    Unfortunately Soundflower is very buggy for 2CH on MacBook and takes for 64CH up to 30% CPU. Therefor not really usable anymore...
    – Strinder
    Sep 23 '15 at 11:28
  • 1
    Note the signed version (2.0b2) at github.com/mattingalls/Soundflower/releases is needed for El Capitan (see comment below). Sep 23 '15 at 15:47
  • Related to @Strinder's comment, currently using 2.0b2 on El Capitan on a MacBook Pro from 2013 and it uses under 2-3% of my CPU at all times, so personally I have no issues w/ the CPU audio processing - Great solution, thanks Soundflower and poster!
    – sean2078
    Sep 28 '16 at 2:50
  • I should not have to install a third party application to adjust the audio output level... Further, these third party applications are not even available on the latest chipsets.
    – Matt Clark
    Aug 24 at 7:26
13

The audio signal over HDMI is encoded. Encoded audio streams should be normalized to 0 dB. You cannot change this behavior as the audio signal would not be normalized anymore. You can only use the volume controls of your TV set.

Some programs (like iTunes) have volume control themselves, those can be used to change the volume of that specific program. (Although this goes somewhat against the principle that HDMI audio should be normalized.)

See also this discussion on Apple Support Communities (same answer).

3
  • 1
    So would this explanation be similar to analog signals where line out is expected to be an absolute signal where the headphone jacks increase and decrease volume by design and not necessarily be fit to the "line level" constraints?
    – bmike
    Mar 13 '12 at 15:40
  • 10
    While this is a nice excuse, it's a bad answer because we still can't control it and it's a pain being unable to.
    – cregox
    Aug 7 '12 at 16:29
  • 5
    Exactly @cawas. Windows, BTW, can control HDMI audio perfectly using the keyboard volume keys - when a monitor is the selected audio device, the volume controls the internal amp. Oct 31 '14 at 12:46
6
  1. Install Homebrew:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. Install Cask

    brew install caskroom/cask/brew-cask

  3. Install Soundflower:

    brew cask install soundflower

  4. Reboot.

  5. Start soundflowerbed (find it by pressing cmd-space to open spotlight): enter image description here

  6. Click the Soundflower icon in the top-right and select your output device (You should pick HDMI instead of DisplayPort):

    enter image description here

  7. In the sound preferences, pick Soundflower:

    enter image description here

8
  • I see that you have the same monitor U2515H as I do -- yet when I switch Soundflower to DisplayPort via Soundflowerbed it seems to always hang. Anyone else have this problem? Jun 16 '15 at 21:14
  • 1
    @MichaelScottCuthbert yeah, Soundflower crashes a lot with me too. I just kill it (using activity monitor) and try again.
    – matt burns
    Jun 17 '15 at 8:55
  • 2
    Figured it out. In Audio MIDI Setup under "Audio Devices" switch the format for Soundflower from 44.1khz to 48khz (48000.0hz). Stopped the crashing. Jun 26 '15 at 22:22
  • fwiw, if this is important to you, Soundflower is not a signed extension, so it won't work (yet?) on OS X 10.11 Aug 3 '15 at 21:06
  • 1
    Thanks to @MichaelScottCuthbert ! Helped a lot. Cannot live without Soundflower since volume keys of monitor are not really reachable... But is there also a solution for the high CPU usage when using 64CH? (at my MacBook this takes up to 30% when enabled as output!)
    – Strinder
    Sep 23 '15 at 11:32
6

As SoundFlower is extremely outdated and not actively maintained. I've started looking for a better solution.

I highly recommend this, works pretty great on my LG monitor: https://github.com/MonitorControl/MonitorControl

This project also supports the default volume/brightness keyboard controls. Instead of using a digital line like SoundFlower, it tries to change the volume of your display itself.

Edit:

Since posting this answer, I've become a maintainer of this project, and it's grown quite a bit.

I would still recommend it to everyone wanting to change volume/brightness on external monitors. Works on both Intel and ARM

1
  • +1 Confirmed working on Dec 2021
    – Justas
    13 hours ago
3

A solution using the free version of Sound Siphon

To solve both of these issues: Launch the Sound Siphon app. In Sound Siphon’s preferences select your output device as the pass through device. Turn Sound Siphon on.

Sound Siphon processes the audio before it goes to your output device. Now you can use your keyboard to control the volume"

http://staticz.com/add-keyboard-volume-controls/

1
  • Sound Siphon seems do not support volume control to devices. It's done by Sound Control on the same site, but it does not work with my monitor. Feb 21 '18 at 9:09
0

My solution: Sound Control.

Soundflower is very old software and does not work well for me. Use sound control to specify output device to your HDMI/DP/Type-C device, and control the master volume (can define short key).

Bonus point: You don't have to buy a license to control only the master volume.

0

if you don't already have them (well, you should! 😉), install Homebrew and Homebrew Cask.

Then, install Soundflower and Soundflowerbed:

brew cask install soundflower
brew cask install soundflowerbed

Reboot.

Now, from the Sound Preference Pane, you can configure your Mac to play sound on the Soundflower virtual audio device. And you can launch SoundflowerBed.app (it will sit in the menu bar) to configure this Soundflower virtual output to play on your external HDMI or DisplayPort interface.

This way, macOS will allow you to control the audio volume (from the menu bar and from the keyboard).

0

On Big Sur (or earlier), you can do this:

  1. Install Blackhole or brew install blackhole-2ch
  2. Install AU Lab
  3. Configure AU Lab (You'll be using blackhole as a substitute for Soundflower)

This option also has the benefit of allowing you to setup audio effects, like a system wide EQ and use things like NoAudiophile's speaker corrections and AutoEq's headphone corrections.

This worked for me on a monitor that didn't work with MonitorControl

Alternatively, for $40, you can buy SoundSource.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .