webamp/CHANGELOG.md

8.0 KiB

1.3.0

This release is far overdue. In the last six months we've made a huge number of improvements to Webamp.

We've fixed multiple longstanding bugs and continued to inch closer to pixel-perfect parity with Winamp. We've added several methods which make it easier to use Webamp in your project. In addition, we've continued to invest in the code by refactoring code to make it more maintainable, and converting the entire project from vanilla JavaScript to TypeScript which should help reduce the number of "dumb" bugs.

See a full list below:

Features:

  • Added methods to the webamp instance to control playback. See the Usage Docs for more information:
    • webamp.play()
    • webamp.pause()
    • webamp.previousTrack()
    • webamp.nextTrack()
    • webamp.seekForward(seconds)
    • webamp.seekBackward(seconds)
  • Our ID3 parsing library jsmediatags has been replaced by music-metadata-browser. This means we now support a broader range of media types, and also that the bitrate and sample rate displayed are now functional
  • The default skin is now included in the Skins section of the options menu by default
  • Implemented the "Options" sub context menu. Click the "O" in the "clutter bar" or select "Options" from the main context menu to see it
  • The equlizer graph is nolonger antialiased. It is now pixelated like real Winamp
  • Added a .reopen() method to reopen Webamp after you've closed it (47ba520)
  • Stip diacritic marks from song description so it displays better in the marquee (2b2598)

Bug Fixes:

  • Fixed a longstanding bug where mono audio files would only play in the right channel (4fd802)
  • Fixed a bug (#687) where webamp.appendTracks() would cause currently playing media to pause.
  • Avoid sticking a file <input> into the global DOM (343686)
  • Fix a bug where tracks dragged into the playlist were added at the wrong location (b074e0)
  • Fix a bug where skin cursors were not being shown for the equalizer sliders (65bb59d)
  • The Marquee text is nolonger blury when in "Double Size" mode (4b5320)
  • Scrolling in the Equalizer window nolonger changes the volume (48a937)
  • Clicking anywhere in a equalizer slider now makes the button depress (20e681
  • Parsing of the viscolor.txt file in skins is now more permissive, allowing us to support more skins (0d29ff)
  • The hotkeys to seek forward/backwards 10 tracks now works propery (7d9ef4)
  • Fix a bug where the preamp level was not applied until you changed it (f03c88)
  • Fix a bug where .eqf values were encoded incorrectly (c634cd)
  • Preamp and EQ now boost/attenuate the same way original winamp 2 did (#748)

Internal Improvements:

1.2.0

Features

  • Users can register an onWillClose callback, which is passed a cancel function. The cancel function can be called to prevent Webamp from closing. #655

Internal changes

1.1.2

Changes

Webamp is no-longer rendered into the DOM node you pass into webamp.renderWhenReady(). Instead, Webamp is rendred as a direct child of the <body> tag. The passed DOM node is still used for positioning. Webamp will attempt to center itself within that DOM node when it renders.

Features

  • Allow consumers to specify a z-index when constructing Webamp.

Fixes

  • Fixes positioning of context menus in context menu targets when they are spawned while scrolled.
  • Improve performance of CharacterString, which gets rendered on every marquee step.

1.1.1

Fixes

  • Fixes the marquee text when the host page globally sets box-sizing.
  • Fixes the initial layout when the container is not at the top of the page.
  • Fixes the positioning of context menus created when scrolled down the page.

1.1.0

Breaking

  • Webamp will attempt to center itself within the node it is rendered into, rather than within the entire page.
  • Webamp now includes the default skin directly in the JS bundle, so you don't need host it separately, or pass a URL as part of the initialztiaon.

Features

  • Equalizer sliders now "stick" slightly at zero.
  • Context menus on all windows.
  • Toggle window visibility via context menus.
  • Users can now hard code the duration of initial tracks. This saves Webamp from having to make an HTTP request to check the duration.

Fixed

  • Marquee now displays one additional character: https://github.com/captbaritone/webamp/issues/543
  • Track numbers in playlist are now padded to the length of the longest track number.
  • Fix close buttons in Playlist and Equalizer in shade mode.
  • Skins that omit assets will now fallback to using the default version of that asset.
  • Fix seeking forward via hotkeys.

1.0.0

Important: The NPM module as moved from winamp2-js to webamp. You will need to update your package.json to point to the new module.

Breaking

  • Project renamed from "Winamp2-js" to "Webamp".
  • UMD module exports as window.Webamp instead of window.winamp2js. When used via <script> tag.
  • Deprecated: The misspelled Webmap construction option avaliableSkins has been deprecated in favor of availableSkins. avaliableSkins will continue to work, but will log a deprecation warning. #533 by @remigallego

Added

  • Instance method to be notified when Webamp is closed webamp.onClose(callback).
  • Instance method to be notified when Webamp is minmized webamp.onMinimize(callback).
  • Support for skins that use .png sprite sheets instead of .bmp. This saves 15kb for the default skin on the demo page. (b88e87)
  • We now attempt to detect mono audio files. Previously mono files would report as stereo and play only in the left channel.

Fixed

  • Shrink visualizer by one pixel to match Winamp. #536 by @The1Freeman
  • Remove Google Analytics tracking module from NPM module. (aeb9522)

0.0.6

  • Added: winamp.appendTracks().
  • Added: winamp.setTracksToPlay().
  • Changed: We no-longer try to center on window resize.
  • Meta: Added real documentation!
  • Meta: Remove lots of garbage from the NPM build.

Prehistory

In all older versions, the API was not stable enough to merit a changelog.