• 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: Audio devices input and output coupling
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Audio devices input and output coupling


  • Subject: Re: Audio devices input and output coupling
  • From: Jeff Moore <email@hidden>
  • Date: Sun, 11 Oct 2009 10:05:02 -0700


On Oct 11, 2009, at 9:01 AM, Oshrat Fahima wrote:

We would like to display the user only audio devices that have input and output which are clock synced.

Currently:
We use the core audio API calls AudioDeviceGetProperty and AudioDeviceGetPropertyInfo in order to acquire the available devices.
Core Audio splits the input and output into 2 audio devices with different device id for each of them,
So we can’t tell which input and output devices are related to the same physical device.

If this is happening, it is not CoreAudio that is doing it, but rather the driver of the device. The reason a driver does this is precisely because the input and output parts of the device are not always synchronized in hardware. For example, the driver for our built-in hardware will spilt up the input and output hardware on some of our machines but not others. This is done precisely because there are cases where the input and output hardware on specific machines are not synchronized in hardware.


So, you are already starting in a hole with respect to your stated objective. There's a good chance that the device you want to use is being split up into input and output halves because the two halves are not synchronized in hardware.


Motivation:
Due to the fact that our application in intended for real time LIVE usage, it has more strict demands.
The basic requirement is that the user will be able to choose only input and output devices which are clock synchronized, in order to minimize the latency.


The workaround:
The way we are handling this issue today is very poor, we rely on the device’s name (a sub string of its name) but it is somehow awkward.


Does anyone have an acceptable solution for this issue?

So, you have stated two questions. First, you'd like to be able to identify the input side and output side of the same bit of hardware. Second, you'd like to identify when two bits of hardware are synchronized in hardware.


The answer to the first question is that you use the property, kAudioDevicePropertyRelatedDevices. For IOAudio-based devices, this property returns an array of AudioObjectIDs for all of the devices that are packaged together.

The answer to the second question is to use the property, kAudioDevicePropertyClockDomain. Devices that are synchronized in hardware will have the same value for this property (as long as the value isn't 0).


--

Jeff Moore
Core Audio
Apple



_______________________________________________
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: Audio devices input and output coupling
      • From: AI Developer <email@hidden>
References: 
 >Audio devices input and output coupling (From: Oshrat Fahima <email@hidden>)

  • Prev by Date: Re: ExtAudioFileRead Crash
  • Next by Date: Re: ExtAudioFileRead Crash
  • Previous by thread: Audio devices input and output coupling
  • Next by thread: Re: Audio devices input and output coupling
  • Index(es):
    • Date
    • Thread