XMOS USB Audio 2.0 Mac OS Hog and Integer Mode Support

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
Post Reply
patw
Member
Posts: 12
Joined: Mon Dec 20, 2010 12:08 pm

XMOS USB Audio 2.0 Mac OS Hog and Integer Mode Support

Post by patw »

Hi,

With the playback program Audirvana for the Mac OS (http://code.google.com/p/audirvana/), one can stream music in “Hog mode” and “integer mode” at the same time.

Hog Mode enables the player to lock the DAC for its exclusive access. The main advantage is that the driver (if implemented correctly) will use a shorter path for handling the audio stream as it knows it doesn't have to mix several streams. Thus improves sound quality.

Integer Mode goes a step further (Comes on top of Hog Mode) by hacing the player talk to the driver in the DAC native data format (e.g. 24bit signed Integer) instead of using the CoreAudio intermediary standard 32bit float format.

How to enable Hog Mode and Integer Mode support for Mac OS in the XMOS USB Audio 2.0 Reference Design?

P.S. I have run the XMOS USB Audio 2.0 Reference Design with the Audirvana, it has a debug mode and here is the output from the debug info while playing an audio file in both Integer and Floating modes.

Seems that Hog with floating point mode is supported and I got normal music output.

However when I did Hog with Integer mode, I only got noise, so I don't think the XMOS firmware support "Integer" mode yet, although the hardware should.

Many thanks,
Pat



Audirvana rev. 0.8.2 debug information:

Currently playing in Integer Mode:
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 24bit, 6 bytes per frame @96.0kHz

Hog Mode is on
Devices found : 2

List of devices:
Device #0: ID 0x109 Built-in Output UID:AppleHDAEngineOutput:1B,0,1,2:0
Device #1: ID 0x11c XMOS USB Audio 2.0 UID:AppleUSBAudioEngine:AMR :AMR USB Audio 2.0:0000:2,1

Selected device:
ID 0x11c AMR USB Audio 2.0 UID:AppleUSBAudioEngine:AMR :AMR USB Audio 2.0:0000:2,1
6 available sample rates up to 192000.0Hz
44100.0
48000.0
88200.0
96000.0
176400.0
192000.0

Audio buffer frame size : 29 to 1024 frames
Current I/O buffer frame size : 1024
Physical (analog) volume control: Yes
Virtual (digital) volume control: Yes
Preferred stereo channels L:1 R:2
Simple stereo device: yes
Channel mapping: L:Stream 0 channel 0 R:Stream 0 channel 1

1 output streams:
Stream ID 0x11e 2 channels starting at 1
12 virtual formats:
Mixable linear PCM Interleaved 32bits little endian Float @192.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @176.4kHz
Mixable linear PCM Interleaved 32bits little endian Float @96.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @88.2kHz
Mixable linear PCM Interleaved 32bits little endian Float @48.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @44.1kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz

12 physical formats
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz

************************************************************************************************

Audirvana rev. 0.8.2 debug information:

Currently playing in standard 32bit float mode
Mixable linear PCM Interleaved 32bits little endian Float, 8 bytes per frame @96.0kHz

Hog Mode is on
Devices found : 2

List of devices:
Device #0: ID 0x109 Built-in Output UID:AppleHDAEngineOutput:1B,0,1,2:0
Device #1: ID 0x11c XMOS USB Audio 2.0 UID:AppleUSBAudioEngine:AMR :AMR USB Audio 2.0:0000:2,1

Selected device:
ID 0x11c AMR USB Audio 2.0 UID:AppleUSBAudioEngine:AMR :AMR USB Audio 2.0:0000:2,1
6 available sample rates up to 192000.0Hz
44100.0
48000.0
88200.0
96000.0
176400.0
192000.0

Audio buffer frame size : 29 to 9216 frames
Current I/O buffer frame size : 1024
Physical (analog) volume control: Yes
Virtual (digital) volume control: Yes
Preferred stereo channels L:1 R:2
Simple stereo device: yes
Channel mapping: L:Stream 0 channel 0 R:Stream 0 channel 1

1 output streams:
Stream ID 0x11e 2 channels starting at 1
12 virtual formats:
Mixable linear PCM Interleaved 32bits little endian Float @192.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @176.4kHz
Mixable linear PCM Interleaved 32bits little endian Float @96.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @88.2kHz
Mixable linear PCM Interleaved 32bits little endian Float @48.0kHz
Mixable linear PCM Interleaved 32bits little endian Float @44.1kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz

12 physical formats
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @192.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @176.4kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @96.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @88.2kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @48.0kHz
Non-mixable linear PCM Interleaved 24bits little endian Signed Integer aligned low in 32bit @44.1kHz


Post Reply