20

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

  • 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
16

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.

  • 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). – Michael Scott Cuthbert 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
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).

  • 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
  • 9
    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. – mikemaccana 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

  • 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? – Michael Scott Cuthbert 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. – Michael Scott Cuthbert 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 – Michael Scott Cuthbert 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
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/

  • 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. – Fish Monitor Feb 21 '18 at 9:09
1

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/the0neyouseek/MonitorControl

This fork 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.

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).

You must log in to answer this question.

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