mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-22 17:47:16 +00:00
* High bitrate/samplerate is now correctly clipped This makes the ``kbps`` and ``kHz`` displays in the main window correctly emulate what Winamp does with high bitrates/samplerates. * Moved globals to be local to their designated functions Division is no longer performed in each if condition Default to displaying "0" for the kbps and khz fields (doesn't seem to trigger, though) * Use padStart and slice to more properly format the data Added comment by Justin Frankel on the meaning of H and C * Display "0" while gathering bitrate and khz * Remove logging of kbps in console Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com> * Assign ``finalKhz`` properly * Make CI hopefully happy --------- Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com> |
||
|---|---|---|
| .. | ||
| assets/skins | ||
| config | ||
| css | ||
| demo | ||
| docs | ||
| js | ||
| presets | ||
| scripts | ||
| .babelrc | ||
| .eslintignore | ||
| .eslintrc | ||
| .gitignore | ||
| .prettierignore | ||
| CHANGELOG.md | ||
| jest-puppeteer.config.js | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| static.d.ts | ||
| tsconfig.json | ||
| vite.config.mts | ||
Webamp NPM Module
Development
I do most development by starting the demo site in dev mode and iterating that way. The following commands will install all dependencies, run an initial development build and then start a local server. Every time you save a file, it will rebuild the bundle and automatically refresh the page.
# First clone the repo, then...
cd webamp
# Change into the NPM module's sub directory
cd packages/webamp
# __Note:__ Please use pnpm over npm/yarn, since pnpm will respect our `pnpm-lock.yaml` file
pnpm install
pnpm start
http://localhost:8080/ should automatically open in your browser.
# Run tests and lint checks
pnpm test
Building
The NPM module is built separately from the demo site. To build it run:
pnpm run build-library
This will write files to ./built.
Testing
pnpm test
This will run the tests the linter and the type checker.
To update snapshots run
pnpm test -u
Cutting a Release
- Update the version number in
package.json - Rename the "Next" title at the top of
CHANGELOG.mdto the new version number and ensure it is up to date - Update the static
VERSIONproperty of theWebampclass inwebampLazy.tsx - Git commit
cd packages/webampnpm publish- Git tag the commit (e.g.
1.4.2or1.4.3-beta.3) - Push tag to GitHub
git push origin <TAG_NAME> - Update all the examples to use the new version:
minimal/index.htmlminimalMilkdrop/index.htmlwebpack/package.jsonwebpackLazyLoad/package.json- https://codesandbox.io/s/y0xypox60z
- Commit and push
Reference
- skinspecs.pdf
- Skinner's Atlas 1.5 by Jellby
- Winamp Skinning Tutorial
- Sacrat Skinning tutorial parts 1, 2, 3, 4, and 5,
- Winamp Wiki
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. It has since been discontinued.