• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Changing the way the OS responds to a USB DAC
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changing the way the OS responds to a USB DAC


  • Subject: Re: Changing the way the OS responds to a USB DAC
  • From: Brian Willoughby <email@hidden>
  • Date: Sat, 03 Mar 2012 15:31:23 -0800


On Mar 3, 2012, at 09:46, SB Tech wrote:
perhaps it's easier to simply outline my understanding of the digital audio output process, indicate what I perceive as an undesired response by the OS to my digital audio setup, and go from there. I'm fully willing to accept that my misunderstanding of the DAC process is causing confusion and misapprehensions.

In brief: ALAC file is unpacked to LPCM by iTunes, which sends the resultant data via the USB port to the attached DAC, which converts it to analogue audio and sends it to the amp, and thence to the output (headphones or speakers).
You're missing a link. iTunes does not send data via USB. Instead, iTunes sends data to CoreAudio, which then sends data to USB or non- USB hardware as selected by the Default Output Audio Device.

It's at this link where the OS volume setting takes effect. If a given CoreAudio device advertises a volume control, then the OS will use it if it is in the right configuration. Otherwise, if a CoreAudio device has no appropriate volume control, then the OS volume setting is defeated.

As far as I understand it, the OS's volume setting has nothing to do with the data that's sent to the DAC, which is why in the case of the optical digital out the controls are all disabled. Perhaps iTunes' volume control modifies the output, but that doesn't surprise me, which is why I've long listened to the advice that states you should always keep iTunes volume control at maximum.

Here is what you are missing: CoreAudio is a shared system that allows hardware to define its own volume controls, or not. The (USB) DAC is not wholly owned by iTunes or any other audio application. In fact, any application can control the device volume if the driver for the DAC makes a volume control available. If the audio device (DAC) is not USB, then it will most likely need a custom driver that is specific to the hardware, and that driver will be in control of whether volume control(s) is/are made available, or not. If the DAC is USB, then the USB Audio Class Specification determines whether volume controls are available, or not. Since there is one system driver for all USB Audio Class Devices, then the same Apple driver looks at the Descriptors for individual Devices to determine what volume controls are made available for each specific device, if any.

You seem to misunderstand the nature of the OS volume setting. If an individual application such as iTunes offers a volume control, then it is most likely using that control to modify the data that is sent to the DAC. That much is easy to understand. However, the device itself can advertise a volume control or controls to CoreAudio, and this is completely independent of all applications that are sending audio data. If the device offers volume control, then the OS volume setting affects the data at the device level, and it does affect the DAC or optical output. Some device hardware uses analog volume controls, and thus the actual DAC data is unchanged, but the voltage is reduced. Other device hardware is pure digital, and thus the actual DAC data is changed.

Some devices define a global volume control, and if the correct CoreAudio messages are sent to the driver then the volume will change. The OS volume setting is generally connected to such a device volume control. Other devices may define multiple volume controls, one per stream (stereo, surround) or one per channel. Yet other devices may define no volume controls at all. If Audio MIDI Setup does not see a useful volume control at the device level, then the OS volume setting will be disabled.

If you are unhappy with the fact that some of your audio devices have OS volume settings that can be changed, while others of your audio devices result in the OS volume setting being disabled, then you need to suggest to the vendor for that specific audio device to change their driver (if non-USB, or non-UAC) or their Descriptors (if USB Audio). For example, if you don't like how the built-in optical outputs respond/disable OS volume settings, then make a suggestion to Apple to change their built-in CoreAudio driver. If you don't like how particular USB Audio Devices respond/disable OS volume settings, then make a suggestion to the vendor of that hardware to change their USB Descriptors, with the understanding that there must be some sort of digital or analog volume hardware in their device or else they cannot create or enable a volume control out of thin air.


I will reiterate that your questions seem to basically be "user" oriented. This mailing list and the USB mailing list are oriented towards the kinds of "developers" who are creating audio hardware, whether it is USB or not. Hardware developers are tasked with making sure that CoreAudio understands what sorts of volume controls are possible in their hardware. Once described to CoreAudio via custom driver or USB Descriptors, non-hardware developers basically have no ability to add/remove or enable/disable a volume control at the OS level. In other words, there are mechanisms available to developers that are not available to users.

Finally, perhaps I was not clear that I was suggesting a workaround for "users." If a volume control appears in the OS, and you wish it to be "disabled" then your best option is to set that volume control to 0 dB. You cannot disable it as a "user" but you can effectively make it leave the audio data unchanged.

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Changing the way the OS responds to a USB DAC
      • From: SB Tech <email@hidden>
References: 
 >Re: Changing the way the OS responds to a USB DAC (From: SB Tech <email@hidden>)
 >Re: Changing the way the OS responds to a USB DAC (From: Brian Willoughby <email@hidden>)
 >Re: Changing the way the OS responds to a USB DAC (From: SB Tech <email@hidden>)

  • Prev by Date: Re: Changing the way the OS responds to a USB DAC
  • Next by Date: Re: Changing the way the OS responds to a USB DAC
  • Previous by thread: Re: Changing the way the OS responds to a USB DAC
  • Next by thread: Re: Changing the way the OS responds to a USB DAC
  • Index(es):
    • Date
    • Thread