NewPixdrop visualizer, synced lyrics and karaoke

Classic Winamp skins. Pixel‑exact. Native on your Mac.

Pixamp is a music player in the style of Winamp 2.x. Drop in any .wsz skin and it draws the way its author made it. Watch the music with a MilkDrop-style visualizer. Sing along with synced lyrics. Script it from the terminal, or bind it to Raycast hotkeys. No Electron. No web view.

Free and open source (MIT) · macOS 14 or later · No prebuilt download yet

GraphitePewter

Click a skin to reskin this page.

1. Skins

Thousands of skins. Drop one on any window.

A .wsz skin is a zip of bitmaps. Pixamp reads the same sprites at the same coordinates as the original player. Nothing is redrawn or approximated.

  1. Find a skin. The Winamp Skin Museum has thousands.
  2. Drop it on the player, the equalizer or the playlist. Or choose Skins → Install Skin…
  3. Missing bitmaps are fine. Graphite fills any gap a skin leaves.

2. Pixdrop

Put the music on the big screen.

Pixdrop is a MilkDrop-style visualizer, drawn with Metal. Its 15 presets react to bass, mid and treble. Every 20 to 35 seconds, one blends into the next.

⌃⇧K
Show Pixdrop
F
Full screen. Or double-click. Esc leaves it.
N P
Next or previous preset
H
Hard cut: change preset with no blend
A
Auto-change on or off

Full screen keeps the display awake while music plays. Pixdrop has its own presets. It does not load MilkDrop .milk files.

Pixdrop
Drum Rings, recorded in Pixamp. All 15 presets: Bass Tunnel, Spiral Arms, Liquid Plasma, Kaleidoscope, Hyperspace, Drum Rings, Waterfall, Vortex, Ember, Recursion, Square Tunnel, Starburst, Oil Slick, Mirror Dance and Aurora.

3. Lyrics

Synced lyrics. Karaoke in full screen.

Put an .lrc file next to the song, with the same name. The lyrics window lights up each line as it's sung. Click a line to play from there.

⌥L
Show lyrics
↑ ↓
Previous or next line
+ −
Lyrics early or late? Nudge them a quarter second. The fix is saved in the .lrc.
F
Karaoke: the current line large, over the blurred album cover

Pixamp doesn't download lyrics. LRCGET fetches them for a whole library. Karaoke keeps the display awake while music plays.

Lyrics
  1. There is a flower within my heart
  2. Daisy, Daisy!
  3. Planted one day by a glancing dart
  4. Planted by Daisy Bell!
  5. Whether she loves me or loves me not
  6. Sometimes it's hard to tell
  7. Yet I am longing to share the lot
  8. Of beautiful Daisy Bell!
  9. Daisy, Daisy, give me your answer, do
  10. I'm half crazy, all for the love of you
  11. It won't be a stylish marriage
  12. I can't afford a carriage
  13. But you'll look sweet upon the seat
  14. Of a bicycle built for two
sync 0.00s
“Daisy Bell”, Harry Dacre, 1892. Public domain.

4. Keys

Your fingers still know the keys.

Z X C V B: previous, play, pause, stop, next. Same as always. Try them on the display.

Space
Play or pause
← →
Seek 5 seconds
J
Jump to file
Q
Queue the selected tracks to play next
⌃V
Stop after the current track
L
Open files
⌃D
Double size
Pixamp
00:00
128kbps 44khz monostereo

Press X to play

5. CLI and Raycast

Drive it from the terminal. Or from Raycast.

While Pixamp runs, it listens on a local socket. The pixamp command and the Raycast extension both talk to it. Only your user account can connect. No network port.

Terminal
zsh
# This terminal drives the player above.
# Type a pixamp command, or tap one below.
Raycast extension
Open Command↵

Command line

Choose Pixamp → Install Command Line Tool… to put pixamp in ~/.local/bin. No admin password.

Raycast Local install

17 commands. Now Playing, playlist search and a menu bar item. EQ and Pixdrop presets, a sleep timer, and play what's selected in Finder. Bind any of them to a hotkey. Not in the Raycast Store yet. Setup

Your own scripts

One JSON request in, one JSON response out. The protocol is small and documented. Read the API

6. Player

The whole player. Plus the Mac parts.

Main window, 10-band equalizer and playlist editor. Pixdrop, album art and lyrics windows too. All drawn from the skin's bitmaps.

Gapless

Albums play straight through, with no gap between tracks. Repeat all, repeat one and shuffle.

Equalizer

Ten bands and a preamp. 17 built-in presets. Loads and saves .eqf files.

Visualizer

Spectrum analyzer and oscilloscope. Click to switch. Right-click for options.

Playlists

M3U, M3U8 and PLS. Drop a folder and Pixamp walks it recursively.

Jump to file

Press J, type part of a title, press Return. It plays. ⇧ Return plays it next.

Play next

Press Q in the playlist. Queued tracks play next, in order. Then the playlist carries on where it was.

Bedtime

⌃V stops after this track. The sleep timer fades out over 10 seconds, then pauses.

Album art

⌥A shows the embedded cover, or the cover image in the album folder. Now Playing uses it too.

Output device

Pick speakers or headphones. Pixamp remembers them. If they disconnect, sound goes to the system default until they return.

Docking

Windows snap to each other and to screen edges. ⌃D for double size.

Always there

Always on top. In every Stage Manager stage. On every desktop.

Mac native

Media keys, Control Center and the Now Playing widget all work.

Plays

MP3, AAC/M4A, ALAC, FLAC, WAV, AIFF. Anything Core Audio decodes.

Not yet

Internet radio, OGG/Opus, window shade mode, non-rectangular skins.

7. Build

No download yet. Build it yourself.

Pixamp is a personal project, made for daily use. Signed and notarized downloads are planned, with no date promised. Until then, it takes four commands.

  • macOS 14 or later
  • Xcode 16 or later
  • Swift 6
Terminal
$ git clone https://github.com/gnapse/pixamp.git
$ cd pixamp
$ make release
$ cp -R build/Pixamp.app /Applications/

Builds are signed ad hoc, for your own Mac. Add make install-cli for the pixamp command.