Case study

Webamp: a browser reimplementation of Winamp 2

Reimplements Winamp 2's main, equalizer and playlist windows in HTML5 and JavaScript, with Web Audio playback, volume, balance and equalizer, and renders original classic .wsz skins, which its documentation says match Winamp 2.9 pixel for pixel; Milkdrop presets run through the Butterchurn WebGL port. It ships as the webamp npm module for embedding in web pages, and the same monorepo runs webamp.org and the skins.webamp.org skin museum. Its webamp-modern prototype targets Winamp 3/5 modern skins with an interpreter for MAKI skin scripts, whose undocumented bytecode format the author reverse engineered and documents in the repository.

Requirements & limits

  • Release at review: webamp 2.3.1 on npm, published 2026-06-16; the reviewed master commit (2026-10-17) adds unreleased accessibility and API changes listed in the changelog. The README says it works in modern Edge, Firefox, Safari and Chrome. It reimplements Winamp's behavior and skin rendering rather than recovering Winamp's code, and webamp-modern remains a prototype with an open list of unimplemented MAKI and skin features.
  • No original Winamp installation is needed: Webamp bundles a default skin and sample track, and users can load their own Winamp 2 .wsz skins, audio files, Milkdrop presets and .eqf equalizer presets. Skins and audio fetched from another domain must be served with CORS permission, because Webamp reads their contents.
  • Development uses pnpm and Turborepo; .nvmrc names Node.js 22 and CI uses Node.js 20 to build every package, lint, type-check and run the Jest tests. These test Webamp's own parsing and rendering, not equivalence with Winamp. Compiling webamp-modern's MAKI test scripts calls the bundled Winamp 5.66 mc.exe, directly on Windows or through Wine elsewhere.
  • The code is MIT-licensed, and the README says the Winamp name, interface and sample audio file are Nullsoft's property. Bundled files that carry no license of their own: the Nullsoft MAKI compiler builds under packages/webamp-modern/resources/maki_compiler (five mc.exe versions from Winamp 3 alpha 8r to Winamp 5.66, nscrt.dll and the MAKI .mi library headers), the skins named after Winamp defaults (base-2.91, Winamp 3 build 499, Winamp Modern 5.66) and the third-party community skins used for demos and tests, the llama sample MP3 and the Winamp Modern Skins tutorial PDF. The bundled Perl MAKI decompiler is GPL-2.0. The reviewed sources establish no REA or AI use; nothing was built or run.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
App

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · captbaritone/webamp · Revision f01369f
  2. README.md#L62-L67 GitHub · captbaritone/webamp · Revision f01369f
  3. packages/webamp-docs/docs/05_features/05_skins.md GitHub · captbaritone/webamp · Revision f01369f
  4. packages/webamp-docs/docs/05_features/03_equalizer.md GitHub · captbaritone/webamp · Revision f01369f
  5. packages/webamp-docs/docs/05_features/02_mikdrop.md GitHub · captbaritone/webamp · Revision f01369f
  6. packages/webamp-docs/docs/07_guides/01_cors.md GitHub · captbaritone/webamp · Revision f01369f
  7. packages/webamp-docs/docs/12_changelog.md GitHub · captbaritone/webamp · Revision f01369f
  8. packages/webamp/docs/architecture.md GitHub · captbaritone/webamp · Revision f01369f
  9. packages/webamp-modern/README.md GitHub · captbaritone/webamp · Revision f01369f
  10. packages/webamp-modern/src/maki/maki-bytecode.md GitHub · captbaritone/webamp · Revision f01369f
  11. packages/webamp-modern/snowpack-maki-plugin.js GitHub · captbaritone/webamp · Revision f01369f
  12. packages/webamp-modern/resources/maki_compiler GitHub · captbaritone/webamp · Revision f01369f
  13. packages/webamp-modern/resources/maki_decompiler_1.1/COPYING GitHub · captbaritone/webamp · Revision f01369f
  14. .github/workflows/ci.yml GitHub · captbaritone/webamp · Revision f01369f
  15. .nvmrc GitHub · captbaritone/webamp · Revision f01369f
  16. LICENSE.txt GitHub · captbaritone/webamp · Revision f01369f
  17. https://registry.npmjs.org/webamp/2.3.1

More in Apps

All 86 entries in AppsApps case studies (37)