"What I ordered: iPhone-compatible lavalier microphones. What I received: USB-C. What I built: a sonic loopback test suite that could have been a simple bash script but hey why stay there"
Somehow, I ended up winning a free gear promo on one of the Chinese B2C platforms β you know the ones, the digital souks of strange treasures, weird english and incorrect spec sheets.
I picked two USB "L'avalier" mic sets β one single mic, one dual β explicitly asking for Lightning (iPhone) versions. What arrived was... USB-C. Not a problem for an Android user β which I am not, not yet at least.
Thankfully, my old Fujitsu Esprimo PC has one single USB-C port on the front panel. Plugging the mic base, the one that should otherwise be plugged into a phone, in frontapanel usb-c, I noticed something nice: Ubuntu 24.04 + PipeWire recognized the device as a USB Audio input.
And so β "Audioclast" was born. Well, actually there was a shell script first but I wanted to have some more options which I'll probably add at some point.
Audioclast creates a loopback audio pipeline from a USB-C mic input to your speakers or headphones, in real time.
- βοΈ Detects your USB lavalier mic (like Jieli, KTS, etc.) - half done, WIP
- βοΈ Routes sound via
arecordβsox(stereo remix) βaplay - βοΈ Log files with rotation and compression
- βοΈ Keyboard-controlled TUI via
textual(coming soon)
git clone git@github.com:ndjuric/audioclast.git
cd audioclast
python -m venv src/.venv
source src/.venv/bin/activate
pip install -r requirements.txt
cd src
python main.py onYou should now hear your own voice in your headphones. If you have a dual-mic receiver (e.g., stereo input), one mic might be left, the other right.
To stop the loopback:
python main.py off- β Ubuntu 24.04
- β PipeWire + WirePlumber
- β
arecord,sox,aplay - β USB-C lavalier mics (Jieli-based)
audioclast/
βββ src/
β βββ audioclast.py # main logic
β βββ main.py # CLI entrypoint
β βββ ui/tui/tui.py # upcoming TUI
β βββ vfs/fs.py # virtual filesystem and log paths
β βββ logger_setup.py # rotating log handler
β βββ ...
βββ storage/
β βββ logs/ # log output (.gz rotated)
β βββ photos/mics.jpg # visual proof of "what I got"- USB mic detection, but seriously, WIP, needs to be expanded
- Loopback with stereo remixing
- Logging with gzip rotation
- π TUI interface with device selection
- π Real-time waveform viewer
- π Recording to
.wav
Built by @ndjuric,
who just wanted his mics to work.
Now they do.
If someone actually wants to contribute I mean.. sure thing, just open an issue.
