Winamp
Winamp brings the iconic Winamp media player to ryOS, powered by Webamp by Jordan Eldredge. It plays music from your iPod library via YouTube, supports classic Winamp skins, and features the familiar equalizer, playlist editor, and transport controls.
Overview
The Winamp app faithfully recreates the legendary Winamp 2.x experience inside your ryOS desktop. Built on top of Webamp — a pixel-perfect HTML5 reimplementation of Winamp 2.9 — it renders the original three-panel layout: main window, equalizer, and playlist editor. Tracks are sourced from the shared iPod music library and played through a custom YouTube media backend, so any song you've added to your iPod library is immediately available in Winamp.
Winamp ships with a curated collection of classic skins that can be swapped on the fly, letting you match the player's look to your mood or your current ryOS theme. Whether you prefer the stock Winamp 2.91 chrome, the Aqua skin for macOS vibes, or the novelty of the Fallout Pip-Boy 2000, the skin system has you covered.
Features
- YouTube-Backed Playback: Plays tracks from the iPod music library through a custom YouTube media class, with full support for play, pause, stop, seek, previous/next track.
- Classic Winamp Interface: Pixel-perfect recreation of the Winamp 2.x UI including the main window, equalizer, and playlist editor panels.
- Skin Support: Choose from 12 built-in skins — Winamp 2.91, Winamp 5, Aqua, Classic Mac, Windows 98, Winamp XP, TopazAmp, AMPBOY, Photoshop, Fallout Pip-Boy 2000, Nucleo NLog v2G, and Zelda Amp 3.
- Equalizer: Toggle the graphic equalizer window to fine-tune audio frequencies with presets.
- Playlist Editor: Manage your queue of songs in the classic playlist panel.
- Shuffle & Repeat: Toggle shuffle and repeat playback modes from the main window or the Controls menu.
- Menu Bar Integration: File, Skins, Controls, and Help menus provide quick access to all features outside the Windows XP/98 themes.
- iPod Library Sync: Automatically loads all tracks from the shared iPod music store on launch — no need to re-add songs.
- Theme-Aware: Adapts its menu bar placement based on the active ryOS theme (hidden inside the window frame on XP/Win98 themes).
User Guide
Getting Started
Launch Winamp from the ryOS desktop or application launcher. The player opens with the classic three-panel layout and automatically loads your iPod music library. If you have no tracks yet, it starts with a default track so you can begin listening immediately.Key Actions
- Playing Music: Click the play button on the main window, or use Controls > Play from the menu bar. Tracks are sourced from your iPod library — add songs there to expand your Winamp playlist.
- Switching Skins: Open the Skins menu in the menu bar and select any of the 12 available skins. The skin changes instantly without interrupting playback.
- Using the Equalizer: Toggle the equalizer panel to adjust frequency bands and apply audio presets for a customized listening experience.
- Managing the Playlist: The playlist editor shows your current queue. Use the playlist controls to reorder, add, or remove tracks.
- Playback Modes: Toggle shuffle and repeat from the Controls menu or directly on the main window buttons.
Tips & Shortcuts
- The transport controls (play, pause, stop, previous, next) work exactly like the original Winamp — click and hold for familiar interactions.
- Right-click on the Winamp interface for additional context menu options provided by Webamp.
- Winamp shares its music library with the iPod app — any track added in either app is available in both.
Technical Details
Window Configuration
- Default size: 275×116px
- Minimum size: 275×116px
Component Architecture
The app consists of 2 component file(s):src/apps/winamp/components/WinampAppComponent.tsx: Main application component that initializes and manages the Webamp instance, handles YouTube media integration, syncs playback state, and manages the player lifecycle.
src/apps/winamp/components/WinampMenuBar.tsx: Menu bar with File (close), Skins (skin selection radio group), Controls (play/pause, stop, prev/next, shuffle, repeat), and Help menus.
Hooks & Utilities
Custom Hooks:src/apps/winamp/hooks/useWinampLogic.ts: Manages help/about dialog state, translated help items, and theme detection for conditional menu bar rendering.
src/apps/winamp/utils/youtubeMedia.ts: CustomYouTubeMediaclass implementing Webamp's media interface backed by the YouTube IFrame API. Handles video ID extraction, player lifecycle, time polling, seek, volume, and duration reporting.
src/apps/winamp/skins.ts: Defines the 12 available Webamp skins with URLs and display names.
State Management
Winamp primarily relies on the Webamp library's internal Redux store for playback state (current track, play/pause, shuffle, repeat). Local React state in the main component tracks the current skin URL and synced playback status (playing, shuffle, repeat) for the menu bar. The app reads from the shareduseIpodStore Zustand store to load the music library and uses useAppStore for window instance management and foreground state.
Webamp Integration
The app creates a Webamp instance on mount, rendering it into a positioned container that aligns with the ryOS window system. Key integration points:- YouTubeMedia: A custom media class replaces Webamp's default HTML5 audio element, routing all playback through the YouTube IFrame API.
- Window Layout: The main window, equalizer, and playlist are positioned relative to each other using Webamp's
windowLayoutconfiguration. - Z-Index Management: The
#webampelement's z-index is synchronized with ryOS's foreground state so Winamp layers correctly with other windows. - Close Handling: Webamp's
onClosecallback is wired to ryOS's instance close mechanism, ensuring clean teardown.
Related Apps
- iPod: Shares the same music library — tracks added in iPod appear in Winamp and vice versa. Use iPod for the classic click-wheel experience and Winamp for the desktop player workflow.
- Soundboard: Another audio-focused app in ryOS for recording and triggering sound effects with keyboard shortcuts.