Skip to content

Repository files navigation

WallAmp

A wall-mounted Winamp media center. WallAmp turns an old iPad — or any always-on screen — into a full-screen, skinnable Winamp player for your wall. It runs the real Winamp engine in the browser via Webamp, complete with the Milkdrop visualizer and a rotating set of classic skins.

Features

  • Full-screen Winamp scaled edge-to-edge for a wall display.
  • Classic skins, auto-cycled — swipe the title bar to move through a curated set of .wsz skins, streamed from the Webamp Skin Museum CDN.
  • Milkdrop visualizer (Butterchurn) with 100 presets that auto-cycle; tap to skip to the next one.
  • Skin-matched visualizer frames — classic skins predate Winamp's GEN.BMP frame art, so the Milkdrop window frame is generated in the browser to match each skin's color palette (src/lib/genFrame/). Works for any skin you add, no build step. scripts/generate_gen_bmps.py is the offline equivalent, for pre-baking frames into .wsz files you keep locally.
  • Touch gestures — tap = next preset, double-tap = full screen, swipe the title bar = change skin.
  • Add to Home Screen on iOS for a chrome-less, kiosk-style display that boots straight into the player.

Make your own — the easy way (Base44)

WallAmp is a Base44 app, so the simplest way to get your own copy is to remix it in the browser — no local setup required:

  1. Open wallamp.base44.app.
  2. Click Edit with Base44 (bottom-right) to fork it into your own account.
  3. Edit your playlist (below) and publish.

Set your playlist

Your tracks live in src/lib/tracks.js — a simple list of { url, title } entries baked into the app, so each copy has its own private playlist:

export const TRACKS = [
  { url: 'https://example.com/song.mp3', title: 'My Song' },
];

url should point at a direct audio file (.mp3, .ogg, …) or an audio stream that allows cross-origin playback.

Change the skins

The rotation lives in src/lib/skins.js. Each entry points at a .wsz on the Webamp Skin Museum CDN, keyed by the skin's md5:

{ id: 'weezer2', name: 'Weezer 2', url: `${SKIN_BASE}/cd90a3a4fd08720d50b16d0a2bcb1ad4.wsz` },

To add one, find it on skins.webamp.org and take the md5 from its URL. Any same-origin or CORS-enabled .wsz URL works too — drop a file in public/skins/ and reference it as /skins/whatever.wsz if you'd rather self-host.

Run locally

Prerequisites: Node.js and npm.

git clone https://github.com/texjer/wallamp.git
cd wallamp
npm install
npm run dev

The landing page is at /; the player is at /wall.

Any change pushed to this repo is also reflected in the Base44 builder, and vice versa.

Build walkthrough

A full write-up of building the wall-mounted setup: https://texs.org/building-a-wall-mounted-winamp-media-center/

Credits

Built on Webamp by Jordan Eldredge and Butterchurn.

Skins are the work of the classic Winamp skinning community and are not redistributed here — WallAmp links to them on the Webamp Skin Museum, which archives them. Rights remain with their original authors.

License

MIT — applies to WallAmp's own code. Webamp, Butterchurn, the skins, and the demo tracks are covered by their own licenses.

About

A wall-mounted, skinnable Winamp media center for an old iPad or any always-on screen — Webamp + Milkdrop in the browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages