ryOS ryOS / Docs
GitHub Launch

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):

Hooks & Utilities

Custom Hooks: Utilities:
  • src/apps/winamp/utils/youtubeMedia.ts: Custom YouTubeMedia class implementing Webamp's media interface backed by the YouTube IFrame API. Handles video ID extraction, player lifecycle, time polling, seek, volume, and duration reporting.
Data:

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 shared useIpodStore 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 windowLayout configuration.
  • Z-Index Management: The #webamp element's z-index is synchronized with ryOS's foreground state so Winamp layers correctly with other windows.
  • Close Handling: Webamp's onClose callback 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.