A native macOS audio player inspired by the classic Winamp 2.x era — built entirely with Swift and AppKit.
No Electron. No web views. No dependencies. Just pure native macOS.
Player
- Classic transport controls — play, pause, stop, previous, next
- Volume and balance sliders with real-time response
- Retro LCD time display with seven-segment digits
- Real-time spectrum analyzer visualization
- Scrolling track title display
10-Band Equalizer
- Fully adjustable EQ with preamp control
- Live frequency response curve
- Built-in presets (Rock, Pop, Jazz, Classical, and more)
- Toggle on/off without losing settings
Playlist
- Drag & drop files directly from Finder
- Keyboard navigation — arrow keys to browse, Return to play
- Search through your library instantly
- Shuffle and repeat modes (off / track / playlist)
- Supports MP3, AAC, M4A, FLAC, WAV, and AIFF
Customization
- Adjustable UI scale — change a single value in
WinampTheme.scaleto resize the entire player
System Integration
- Media key support — play/pause, next, previous from your keyboard
- Now Playing integration with macOS Control Center
- System tray menu for quick access
- Always-on-top (pin) window mode
- Full state persistence — picks up right where you left off
| Language | Swift 5 |
| UI Framework | AppKit (100% programmatic, zero XIBs) |
| Audio | AVFoundation + AVAudioEngine |
| DSP | Accelerate (FFT for spectrum analysis) |
| Media Keys | MediaPlayer framework |
| State | Combine + JSON persistence |
| Dependencies | None. Zero. Nada. |
AppDelegate
├── AudioEngine PlayerNode → 10-Band EQ → Mixer → Output
├── PlaylistManager Track list, shuffle, repeat, auto-advance
├── StateManager JSON persistence with debounced saves
└── MainWindow 275px fixed-width borderless window
├── MainPlayerView LCD display, transport, sliders
├── EqualizerView 10-band EQ + response curve
└── PlaylistView Scrollable table with drag-drop
Views subscribe to model changes via Combine publishers — no delegates, no notification spaghetti.
- macOS 14.0+
- Xcode 15+
# Clone the repo
git clone https://github.com/yourusername/Wamp.git
cd Wamp
# Build from command line
xcodebuild -project Wamp.xcodeproj -scheme Wamp -configuration Debug build
# Or just open in Xcode and hit ⌘R
open Wamp.xcodeproj| Key | Action |
|---|---|
Space |
Play / Pause |
Return |
Play selected track |
↑ ↓ |
Navigate playlist |
⌘Q |
Quit |
| Media Keys | Play / Pause / Next / Previous |
MP3 | AAC | M4A | FLAC | WAV | AIFF
Made with nostalgia and Swift on macOS.
Inspired by Winamp 2.x. This is an independent project and is not affiliated with or endorsed by the original Winamp authors.