Audio Class

This section describes the audio class supported by μC/USB-Device. The Audio class implementation complies with the following specifications:

  • USB Device Class Definition for Audio Devices, Release 1.0, March 18, 1998.
  • USB Device Class Definition for Terminal Types, Release 1.0, March 18, 1998.
  • USB Device Class Definition for Audio Data Formats, Release 1.0, March 18, 1998.

The audio class allows to build devices that manipulate music, voice and other sound types. The data manipulation involves the audio data itself (i.e. encoded stream) and the environment's controls in which the stream will be employed. An audio device rarely forms a single USB device. In many cases, audio functions exist with other functions to create a composite device. A composite device that embeds audio and another function could be a high-end webcam (audio + video functions), an headset with direct stream controls on it such as volume, mute buttons (audio + human interface functions), a portable USB Blu-ray driver (audio + video + data storage functions), etc. Adding audio capabilities to a USB device is available through two distinct specifications: audio 1.0 and 2.0. Version 1.0 released in 1998 was designed exclusively for full-speed audio devices. Audio 1.0 allows you to transport encoded audio data through isochronous endpoints and MIDI data streams over bulk endpoints. In 2006, version 2.0 was released to address the need for high-speed devices for the professional audio market. Audio 2.0 specification extends the audio 1.0 specification by adding full support for high-speed operations. Thus, more bandwidth is available for high bit rate multiple channels audio applications. Version 2.0 enhances capabilities, controls and notifications of units and terminals. Nowadays, audio 1.0 is still very popular for the general consumer audio market (e.g. headset, speaker, microphone). All major operating systems (Microsoft Windows, Apple Mac OS, Linux) support audio 1.0 devices by providing a native audio 1.0 driver. Audio 2.0 is only natively supported by Apple Mac OS and Linux. 

As Micrium audio class supports only audio 1.0 specification, the rest of this section does not mention audio 2.0 anymore.