emUSB-Device Add-Ons - USB Audio
Easily transmit audio via USB. Record or replay audio received from the host, send recorded audio to the host.
Simple and driverless! Plug-and-play on any operating system.
- USB Audio V1.0 class implementation.
- Record audio from the host
- Send audio to the host
- All common sample rates supported (8, 16, 22.05, 44.1, 48, 96, 192 kHz, etc.)
- All sample resolutions supported (8, 16, 24, 32 bit per sample)
- Number of channels freely configurable
- Multi-platform, no drivers needed on Linux, macOS or Windows
- High performance
- Small footprint
Enhance your device with audio capabilities
Using emUSB-Device Audio, an embedded device can be transformed into an audio recorder or an audio speaker. An audio jack and dedicated audio hardware is not necessarily available on every design. emUSB-Device Audio allows the device to handle audio data irrespective of the available hardware, for example audio data played from a PC (Linux/Windows/Mac) can be saved directly onto an SD card.

Typical Applications
The audio class is the foundation for any embedded device handling audio data. Whether it has a microphone or speaker, or whether it simply functions as an audio editor.
Typical applications range from speaker phones, conferencing systems, or headsets, to music instruments, voice recorders, music players, or sports wearables.
Application Samples emUSB-Device Audio

Conference speakerphone

Headset

USB sound card
Technical details
SEGGER’s implementation of the Audio class V1.0 is designed with minimal resource usage in mind, especially targeted to embedded devices. The implementation supports the usage of a “speaker” (input/output audio terminal with a feature terminal for controls) and a “microphone” (input/output audio terminal).
The speaker and microphone can be used independently of each other; both can be enabled at the same time allowing audio transfer in either direction.
The Audio class supports adaptive synchronization for OUT endpoints, asynchronous synchronization for IN endpoints and synchronous synchronization type for both directions; commands SET_CUR, GET_CUR, SET_MIN, GET_MIN, SET_MAX, GET_MAX, SET_RES, GET_RES for the speaker interface feature unit controls are supported (volume, mute, etc.).
emUSB-Device-Audio does not provide drivers/codecs for any audio peripherals. Writing a driver to interface with the audio hardware is the responsibility of the customer.
With emUSB-Device-Audio Audio data is transferred in the PCM encoding. The Audio class transfers multiple audio samples in a single packet. In the demo below the speaker interface of the audio class is configured with 2 channels (stereo) and 16 bit data per channel.
Try it now
Download the emUSB-Device Audio demo for the emPower board:
- Program the emPower with the default application using Embedded Studio
- Connect the HS USB connector to your PC
- Select the emUSB-Device Audio demo as your default sound output and sound input device
- Play audio which will be saved onto the SD card
- Loopback the emUSB-Device Audio microphone to your speakers to listen to the audio demo
Components
Components required to use the Audio class:
- emUSB-Device Audio
- emUSB-Device core
- emUSB-Device target driver
- Real-time operating system (embOS or other)