Electronic – How exactly do USB audio interfaces interface with a computer? (specifically ADC)

adcaudiointerfaceusb

I have seen the likes of M-Audio fast track and similar devices that somehow covert an analogue voltage audio signal to a digital data stream which you can connect via USB to your computer. If I open something like Garageband it just appears as another input without any special configuration. I am interested in building my own.

An example application would be; record guitar onto a computer software e.g. Garageband, Logic Pro etc.

I understand that there is a ADC (Analogue to Digital Converter) which will convert the analogue audio levels to digital.

What I am trying to figure out is, how does this interface with the computer?

All of these devices seem to work without needing specific drivers and such so, there I'm guessing there may be a specific protocol they all follow? I can't seem to find something exact.

If there is a protocol that they follow, does anyone have any info or any idea about this? Is this the same universal protocol that is used by the likes of USB audio speakers etc? Is this similar to SPDIF and the like? Is this conversion from output of ADC to USB data stream something which we can do, say, with a microcontroller?

I know that its much easier just to build an analogue preamp or the like to connect it to the audio input port on a PC but as I said, I am interested in how they make the USB interface.

Best Answer

universal protocol that is used by the likes of USB audio

Sounds like the USB Audio Class specification.

Is this conversion from output of ADC to USB data stream something which we can do, say, with a microcontroller?

Some USB microcontrollers - NXP LPC17xx for example - have example code for USB Audio Class available.