[alsa-devel] OSX Core Audio ASYNC OUT with rate feedback format ?
Hi Daniel et al,
I have successfully interfaced the sdr-widget with Linux alsa-driver for ASYNC OUT with rate feedback. Found out after much trial and error and reading of the usbaudio alsa-driver source code that you are using 12.13 as the format for the feedback rate !!! I was trying with 10.14 (UAC1 v1.2 specs , I think) in 3 bytes, and 16.16 (USB 2.0) in 4 bytes for quite a number of days with no success !!!
However, 12.13 in 4 bytes, whilst working like a charm with Linux, does NOT work with OSX.
Would you know the format used by OSX?
Thanks.
Alex
Alex <lee188 <at> singnet.com.sg> writes:
Hi Daniel et al,
I have successfully interfaced the sdr-widget with Linux alsa-driver for ASYNC OUT with rate feedback. Found out after much trial and error and reading of the usbaudio alsa-driver source code that you are using 12.13 as the format for the feedback rate !!! I was trying with 10.14 (UAC1 v1.2 specs , I think) in 3 bytes, and 16.16 (USB 2.0) in 4 bytes for quite a number of days with no success !!!
However, 12.13 in 4 bytes, whilst working like a charm with Linux, does NOT work with OSX.
Would you know the format used by OSX?
Thanks.
Alex
Hi Daniel et al,
Found out by reading the apple Core Audio source code that it is using 16.16 format for rate feedback. This is in accordance with USB 2.0 ISOCHRONOUS feedback specs. The current configuration is UAC1 with HIGH speed.
I'm now testing the sdr-widget (with a version of firmware implementing 16.16) with OSX Snow Leopard as host.
Once this works we are going to implement the ASYNC OUT with rate feedback in UAC2, which will give us 48/96/192 khz 24 bit stereo capture and playback in both ASYNC IN and ASYNC OUT.
I am hoping that the same firmware could work in both OSX and Linux.
Is there any particular reason why the Linux driver uses 12.13 format ?
Alex
Alex <lee188 <at> singnet.com.sg> writes:
Hi Daniel et al,
I have successfully interfaced the sdr-widget with Linux alsa-driver for ASYNC OUT with rate feedback. Found out after much trial and error and reading of the usbaudio alsa-driver source code that you are using 12.13 as the format for the feedback rate !!! I was trying with 10.14 (UAC1 v1.2 specs , I think) in 3 bytes, and 16.16 (USB 2.0) in 4 bytes for quite a number of days with no success !!!
However, 12.13 in 4 bytes, whilst working like a charm with Linux, does NOT work with OSX.
Would you know the format used by OSX?
Thanks.
Alex
Hi Daniel et al,
This is an excerpt from: http://www.opensource.apple.com/source/AppleUSBAudio/AppleUSBAudio- 273.4.1/AppleUSBAudioStream.cpp
============================================================== associatedEndpoint.type = kUSBIsoc; associatedEndpoint.direction = kUSBIn; // The associated endpoint always goes "in" // The sample rate should be either a 3-byte 10.14 or a 4-byte 16.16 associatedEndpoint.maxPacketSize = mFeedbackPacketSize; associatedEndpoint.interval = 0xFF; mAssociatedPipe = mStreamInterface->FindNextPipe (NULL, &associatedEndpoint); FailWithAction (NULL == mAssociatedPipe, result = kIOReturnError, Exit); ===============================================================
Alex
Hi Daniel et al,
I can confirm 16.16 rate feedback format works with OSX.
Alex
Alex wrote:
I have successfully interfaced the sdr-widget with Linux alsa-driver for ASYNC OUT with rate feedback. Found out after much trial and error and reading of the usbaudio alsa-driver source code that you are using 12.13 as the format for the feedback rate !!! I was trying with 10.14 (UAC1 v1.2 specs, I think) in 3 bytes, and 16.16 (USB 2.0) in 4 bytes for quite a number of days with no success !!!
However, 12.13 in 4 bytes, whilst working like a charm with Linux, does NOT work with OSX.
Linux currently doesn't look at the endpoint packet size to determine the feedback format.
I'll change the driver so that it accepts any format.
Regards, Clemens
participants (2)
-
Alex
-
Clemens Ladisch