This section describes the audio class supported by Micrium OS USB Device. The audio class allows you to build devices that manipulate music, voice, and other sound types. The data manipulation involves the audio data itself (i.e., the encoded stream) and the environment's controls in which the stream will be employed.
An audio device is rarely based on 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 any of the following:
- A high-end webcam (audio + video functions)
- A 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)
Adding audio capabilities to a USB device is available through two distinct specifications: Audio 1.0 and Audio 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. Today, 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 macOS, Linux) support Audio 1.0 devices by providing a native Audio 1.0 driver.
Note: As Micrium audio class supports only audio 1.0 specification, the rest of this section does not mention audio 2.0.
- In 2006, version 2.0 was released to address the need for high-speed devices for the professional audio market by extending the Audio 1.0 specification with 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. Audio 2.0 is natively supported only by by Apple macOS and Linux.
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.