Skip to content

wishval/wamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wamp

A retro audio player for macOS 🦙

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.

image

Swift Platform License


Features

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.scale to 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

Tech Stack

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.

Architecture

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.

Getting Started

Requirements

  • macOS 14.0+
  • Xcode 15+

Build & Run

# 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

Keyboard Shortcuts

Key Action
Space Play / Pause
Return Play selected track
Navigate playlist
⌘Q Quit
Media Keys Play / Pause / Next / Previous

Supported Formats

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.

About

Winamp inspired music player for MacOs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages