Does the sound card support hardware volume control

audiodriverhardwaresound-volume

I would like to check whether one of my sound cards supports hardware volume control, and whether MacOSX has detected it. Under linux I would use:

cat /proc/asound/Audio/usbmixer

And I would get a response like:

USB Mixer: usb_id=0x262a10e1, ctrlif=1, ctlerr=0
Card: HiFimeDIY Audio SA9023 USB Audio at usb-musb-hdrc.1.auto-1, full speed
  Unit: 9
    Control: name="PCM Playback Volume", index=0
    Info: id=9, control=2, cmask=0x3, channels=2, type="S16"
    Volume: min=-14080, max=0, dBmin=-5500, dBmax=0
  Unit: 9
    Control: name="PCM Playback Switch", index=0
    Info: id=9, control=1, cmask=0x0, channels=1, type="INV_BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0

That shows I do have a hardware playback volume. Is there an equivalent command in OS X? I tried using system_profiler command, but it returns more than 50,000 lines of response with tens of entries related to my sound card, and I don't exactly know what keyword I have to look for.

Best Answer

The system_profiler data type corresponding to audio device information is SPAudioDataType, so you can run:

system_profiler SPAudioDataType

But this won't yield much information about hardware volume control capability of your sound card.

A better way of checking for more specific hardware information is to use ioreg command. In order to check whether your sound card supports hardware volume control run the following and then check whether your sound card appears in the results:

ioreg -trc IOAudioLevelControl

My Cambridge Audio USB DAC that doesn't have support hardware volume control does not appear on this list, while my other DACs and sound cards do appear on it.

If you are using an external USB device, you can also run the following to make sure your device is recognized as an audio device:

ioreg -trc AppleUSBAudioEngine

If your device supports hardware volume control, you will see one or more IOAudioLevelControl entries under your audio device's entry.

But apart from all the command line mumbo jumbo you can as well check the OSX's volume control when using your sound card to see if it is disabled!