Go to file
2018-09-17 17:04:05 -07:00
config Allow library build to work with Typescript 2018-09-17 17:04:05 -07:00
css Remove duplicate css 2018-07-13 22:23:14 -07:00
docs Add press entry 2018-09-10 06:16:20 -07:00
examples Add comment to minimal example 2018-08-28 16:45:20 -07:00
experiments Handle screenshot 404 and don't require pressing enter 2018-08-28 16:45:20 -07:00
images Add butterchurn share link 2018-06-01 07:54:25 -07:00
js Make skin data a bit more correct 2018-09-17 17:04:05 -07:00
mp3
scripts Sketch out script to extract CSS skin 2018-05-28 15:57:24 -07:00
skins Pad marquee with spaces 2018-07-02 19:03:04 -07:00
.babelrc Convert first files to TypeScript 2018-09-17 17:04:05 -07:00
.eslintignore Ignore built asset from eslint 2018-04-01 09:12:39 -07:00
.eslintrc Teach ESLint import rule about typescript files 2018-09-17 17:04:05 -07:00
.gitignore Ignore snapshot diffs in git 2018-07-02 20:09:37 -07:00
.prettierignore Ask Google Analytics to anonymize IPs 2018-08-10 19:25:48 -07:00
.travis.yml Disable travis-weigh-in again 2018-04-14 18:17:50 -07:00
CHANGELOG.md Bump version to 1.1.2 2018-06-27 23:34:23 -07:00
favicon.ico
index.d.ts Format index.d.ts with Prettier 2018-09-09 21:47:23 -07:00
index.html Give ourselves half a second to load before we show the loading indicator 2018-06-07 20:52:16 -07:00
jest-puppeteer.config.js Add Puppeteer snapshot testing 2018-06-28 22:16:37 -07:00
LICENSE.txt
netlify.toml Build the library on Netlify so that folks can access master. 2018-06-24 09:44:24 -07:00
package.json Format typescript files with Prettier 2018-09-17 17:04:05 -07:00
README.md Document how to build NPM module 2018-08-20 18:23:02 -07:00
static.d.ts Typescript cli (#647) 2018-08-28 16:45:03 -07:00
tsconfig.json Convert first files to TypeScript 2018-09-17 17:04:05 -07:00
yarn.lock Convert first files to TypeScript 2018-09-17 17:04:05 -07:00

Travis Codecov Discord

Webamp

A reimplementation of Winamp 2.9 in HTML5 and JavaScript.

As seen on TechCrunch, Motherboard, Gizmodo, Hacker News (1, 2, 3, 4), and elsewhere.

Give it a try!

Screenshot of Webamp

Works in modern versions of Edge, Firefox, Safari and Chrome. IE is not supported.

Features

Check out this Twitter thread for an illustrated list of features: https://twitter.com/captbaritone/status/961274714013319168

Use Webamp in your own project

I've tried to make it possible to include Webamp in your own project.

See the usage documentation for more information.

Development

yarn
# Or: npm install
npm start

Open http://localhost:8080/webpack-dev-server/ in your browser.

# Run tests and lint checks
npm test

Building the demo site (webmap.org)

npm run build
npm run serve

Open the local ip/port that is output to the console in your browser.

Building the NPM module

npm run build-library

Testing

npm test

This will run both the tests and the linter.

Deploying

Netlify watches GitHub for new versions of master. When a new version is seen, it is automatically built using npm run build and pushed to the server. Additionally, Netlify will run a build on every pull request and include a link under the heading "Deploy preview ready!". This enables easy high level testing of pull requests.

In short, deploying should be as simple as pushing a commit to master.

Additionally, if you want to fork the project, deploying should be as simple as setting up a free Netlify account.

Advanced Usage

There are some "feature flags" which you can manipulate by passing a specially crafted URL hash. Simply supply a JSON blob after the # of the URL to change these settings:

  • skinUrl (string) Url of the default skin to use. Note, this file must be served with the correct Allows Origin header.
  • audioUrl (string) Url of the default audio file to use. Note, this file must be served with the correct Allows Origin header.
  • initialState (object) Override the initial Redux state. Values from this object will be recursively merged into the actual default state.

Note: These are intended mostly as development tools and are subject to change at any time.

Community

Join our community chat on Discord: https://discord.gg/fBTDMqR

There are a few related projects that have communites:

Reference

Predecessors

  • Webamp2x An impressive implementation from 2002(!).
  • JsAmp An implementation from 2005 by @twm (via Hacker News).
  • LlamaCloud Comp From 2011 by Lee Martin (via Twitter)
  • Winamp em HTML5 e Javascript In 2010 a developer named Danilo posted one of his HTML5 experiments: "an audio player simulating good old Winamp". You will have to download the zip file.
  • JuicyDrop An HTML5 implementation with less emphasis on being true to the skin, but fully featured visualizations. @cggaurav is keeping it alive on GitHub
  • Spotiamp The folks at Spotify reimplemented Winamp as a frontend for Spotify. Not in a browser, and only runs on Windows.

Thanks

  • Butterchurn, the amazing Mikdrop 2 WebGL implementation. Built and integrated into Webamp by: jberg
  • Research and feature prototyping: @PAEz
  • Beta feedback, catching many small UI inconsistencies: LuigiHann
  • Beta feedback and insider answers to obscure Winamp questions: Darren Owen
  • Donating the webamp NPM module name: Dave Eddy

Thank you to Justin Frankel and everyone at Nullsoft for Winamp which inspired so many of us.

License

While the Winamp name, interface, and, sample audio file are surely property of Nullsoft, the code within this project is released under the MIT License. That being said, if you do anything interesting with this code, please let me know. I'd love to see it.