It really whips the penguin's ass.
A Winamp-faithful audio player for Linux, written in Rust. No Wine, no compatibility shim — a real native binary that loads your old .wsz skins and plays your music.
One ring to rule them all — minus the world-domination subtext. One audio player, doing the music side of a Linux desktop properly. Linux (Debian-family) first. Other platforms later, if anyone asks.
A Winamp, native on Linux. No Wine, no Bottles, no glue around a Win32 binary — just an ELF that opens an MP3, plays it, and looks like the player you remember. And while we're rebuilding a 25-year-old player from scratch in 2026, we may as well do it in Rust, so the next 25 years are someone else's problem.
I grew up on Windows. Liked it, mostly because I didn't know any better. Windows 10 was fine — not as good as 7, but fine. Then 11 happened: a cascade of unanswerable whys. Then Microsoft announced Windows 12 with bright, mandatory, always-on AI snooping baked in. That was the line.
The Linux transition was almost painless. One exception: I tried every audio player I could find — Audacious, Clementine, Strawberry, Rhythmbox, Lollypop, DeaDBeeF, QMMP, you name it — and not a single one made me happy. And as a young boomer, I'd never really left Winamp anyway.
So: build the thing.
- Audio engine — Symphonia decoding (MP3, FLAC, OGG, WAV), rodio output, gapless transitions between same-format tracks (preloaded decoder swapped into the live audio stream — no device rebuild, no audible silence).
- 10-band equalizer — RBJ biquads, real-time, ±20 dB range, pixel-perfect skinned EQ window with spline preview and built-in presets.
- Playlist — drag-drop files and folders, M3U save/load, double-click to play, native-skinned frame, resizable.
- Native
.wszskins — drop any classic Winamp skin onto OneAmp viaAlt+S. A bundled default skin ships embedded in the binary, so first launch is never naked egui. - Visualizer — spectrum analyzer (1024-point Hann-windowed FFT) and oscilloscope (256-sample mono waveform), both painted in the skin's authentic viscolor palette. Click the visualization area to cycle Spectrum → Oscilloscope → Off.
- Custom chrome — no OS title bar fighting the skin. Pixel-perfect drag, double-click to shade, the whole bit.
- Distribution — every tag produces a tarball, a
.deb, and an AppImage.
OneDrop — sister project, also Rust, same energy. Nothing on Linux comes close to Milkdrop, and Milkdrop in 2026 is still one of the best music visualizers ever shipped. So we're rewriting it natively. When OneDrop is ready it lands behind a feature gate inside OneAmp's visualization window. That's the plan.
A media library. A CD ripper. An iPod sync tool. A podcast manager. A streaming client. A "smart" anything. A 17-tab Swiss-army-app.
It's a music player. It plays music. It looks good doing it.
Grab the artefact that fits your distro from the latest release:
| Format | How |
|---|---|
.deb (Debian/Ubuntu/Mint/…) |
sudo apt install ./oneamp-vX.Y.Z-linux-x86_64.deb |
| AppImage (anything else) | chmod +x OneAmp-vX.Y.Z-x86_64.AppImage && ./OneAmp-vX.Y.Z-x86_64.AppImage |
| Tarball | tar xzf and run ./oneamp |
sudo apt install build-essential pkg-config libasound2-dev \
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev
git clone https://github.com/all3f0r1/oneamp
cd oneamp
cargo build --release -p oneamp-desktop
./target/release/oneampAuthentic Winamp where possible.
| Key | Action |
|---|---|
Space |
Play / pause |
S |
Stop |
N |
Next track |
P |
Previous track |
L / Ctrl+O |
Open file |
V |
Toggle shuffle |
R |
Cycle repeat (off → all → one) |
Alt+E |
Toggle playlist window |
Alt+G |
Toggle equalizer window |
Alt+M |
Window shade |
Alt+S |
Load .wsz skin |
Three threads talking through mpsc channels:
- GUI (
egui+wgpu) — input, skin rendering, UI state. - Audio (
symphonia+rodio) — decoding, EQ, output. Also emits FFT bins for the visualizer. - Visualization — consumes the FFT bins, paints. Will host OneDrop later.
Workspace layout:
oneamp-core— audio engine + WSZ skin loader, no GUI deps.oneamp-desktop— egui app, window coordination, skin renderer.oneamp-cli— minimal CLI player, mostly for smoke-testing the engine.
Pixel-perfect WSZ rendering: done. Distribution pipeline: done. Next big rock: OneDrop integration. The roadmap lives at docs/plans/2026-04-29-roadmap.md, the WSZ implementation log at docs/plans/2026-05-01-wsz-format-implementation.md, and the per-version detail in CHANGELOG.md.
MIT or Apache-2.0, your pick. See LICENSE.
- The original Winamp team — it really whipped the llama's ass.
- The Strider, Fyre/SacRat, and Skinz crews for keeping the WSZ format documented decades after the fact.
- The Rust audio crowd — Symphonia, rodio, cpal, fundsp, egui — without whom this would still be a daydream on a sticky note.