← back to projects

usb-audio-mapper

Map USB soundcards to stable names via Linux udev rules

lang Shell license Apache-2.0 view on GitHub →

Highlights

  • Turns USB vendor/product IDs into stable, human-friendly device names
  • Generates the udev rules LyreBirdAudio depends on
  • Small, auditable, and easy to drop into existing setups

What it does

usb-audio-mapper is a narrowly scoped companion to LyreBirdAudio. It does one thing: inspect the USB audio devices attached to a Linux host, generate the udev rules that pin each one to a stable, human-readable device name, and get out of the way.

Why it exists as its own project

The persistent-naming logic was originally embedded inside LyreBirdAudio’s installer. Splitting it out turned out to be the right call. Plenty of projects outside the audio-streaming space also want deterministic USB soundcard names (ALSA pipelines, Home Assistant integrations, scripted multi-microphone recording rigs), and none of them should have to install a full RTSP toolkit just to get a usable udev rule.

Design goals

The tool is small and auditable. The entire script is short enough to read end to end in a few minutes, which matters for anything that writes to /etc/udev.

The default mode has no side effects. Rules are generated and printed; installation is an explicit second step.

The Go rewrite (go-usb-audio-mapper) produces byte-identical udev rules, so switching between implementations doesn’t rename anyone’s devices.