cancel
Showing results for 
Search instead for 
Did you mean: 

USB audio type I IEEE_FLOAT descriptor

AGhez
Associate III

Hi all,

I am using a STM32H7 and I implemented a composite usb device (CDC + AUDIO recording) using IAD interface descriptor.

I can successfully configure the audio interface as type I PCM (I tested both 16 and 32 bit), but if I try to configure the audio as type I IEEE_FLOAT windows does not recognize the microphone (the device is still present in device manager under 'sound devices', but there is no input device under 'Audio inputs and outputs'.

I just changed the wFormatTag field of the descriptor, leaving the bSubFrameSize=4 and bBitResolution=32.

Have I to change something else?

Thank you in advance,

regards

Arianna

1 ACCEPTED SOLUTION

Accepted Solutions
mohamed.ayed
ST Employee

Hi @AGhez​ 

It seems that windows USB audio 1.0 drivers does not support IEE_FLOAT

https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-audio-class-system-driver--usbaudio-sys-

you need to switch to audio 2.0 class it is noted in microsoft documentation that audio 2.0 driver support IEE_FLOAT

https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers?source=recommendations

View solution in original post

17 REPLIES 17
mohamed.ayed
ST Employee

Hi , @AGhez​ 

I suggest to change the PID of device.

Hi @mohamed.ayed​ ,

thank you for your reply, but I tried with no success!

Do you have any other suggestions?

thanks

mohamed.ayed
ST Employee

Hi @AGhez​ 

It seems that windows USB audio 1.0 drivers does not support IEE_FLOAT

https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-audio-class-system-driver--usbaudio-sys-

you need to switch to audio 2.0 class it is noted in microsoft documentation that audio 2.0 driver support IEE_FLOAT

https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers?source=recommendations

AGhez
Associate III

Hi @mohamed.ayed​ ,

thank you for your reply! I read these articles but it wasn't so clear for me: "All Type I formats" for me means also IEEE_FLOAT, as it is reported in the USB AUDIO 1.0 specifications under the type I supported formats..

But since in the second article you linked the IEEE_FLOAT format is explicitly mentioned probably you are right.

Can you confirm me that there are not ST examples for USB AUDIO 2.0?

Thank you again,

regards

Arianna

mohamed.ayed
ST Employee

Hi @AGhez​ ,

actually ST USB lib support only audio class 1.0 but USBX (AzureRTTOS) middleware support both Audio 1.0 and audio 2.0 and we don't have an example audio 2.0 until now.

> windows USB audio 1.0 drivers does not support IEE_FLOAT

The link you gave:

All Type I formats (except 8-bit signed PCM)

It took me a minute to find out...

https://www.usb.org/sites/default/files/frmts10.pdf

2.2.6 Supported Formats

The following paragraphs list all currently supported Type I Audio Data Formats.

2.2.6.3 IEEE_FLOAT Format

AGhez
Associate III

Hi,

I got my device enumerated in USB Audio 2.0 (just enumerated, it is not really working), but I am experiencing the same issue: with format PCM the microphone appears between the recording devices, changing the format to FLOAT makes the microphone to not appear!

Any other clue?

Thank you,

regards

Arianna

AScha.3
Chief II

why you insist on float ? this is very unusual for audio device, because standard is pcm or I2S in 16/24/32 bit (float not possible) ; these are the data formats, codecs use for audio in/out .

If you feel a post has answered your question, please click "Accept as Solution".
AGhez
Associate III

I need 32 bit AND exclusive access: WASAPI does not support exclusive access with PCM 32 bits, but only with 8 and 16 bits, or with float, so that's why I am struggling with float..