Groove Basin v1.5.1 Release Notes

Release Date: 2015-05-15 // almost 9 years ago
    • Andrew Kelley:
      • update dependencies
      • update to work with both io.js and node.js v0.12
      • fix error handling logic for attaching/detaching encoder
      • groovebasin protocol: add 'libraryQueue' subscription item. It gives you library information about the subset of items that are in the play queue.
      • groovebasin protocol: fix messages not being delimited by newlines.
      • MPD protocol: fix crash when queuing songs
      • add encodeBitRate config option defaulting to 256 which is the old hardcoded value.
      • add --dump-users CLI argument which can recover passwords. Note: next version of groove basin will hash passwords. See #434
      • fix the high CPU usage bug. Special thanks to Felipe Sateler for diagnosing the cause after all my failed attempts.

Previous changes from v1.5.0

  • Contains breaking changes to the Groove Basin protocol. Since the Groove Basin protocol is not officially stable yet, only the minor version number is bumped.

    • Andrew Kelley:

      • playlist support
      • support for MPD stored_playlist commands
      • imported songs automatically added to an Incoming playlist
      • client: double quotes can be used to include spaces in search terms.
      • import by name feature - searches YouTube for the name and imports into your library.
      • client: fix security bug where title display was not escaping HTML
      • fix symlink behavior in music library
      • fix spacebar keyboard shortcut in Firefox
      • fix crash when zip files contain non music files
      • rename "Dynamic Mode" to "Auto DJ"
      • rename "Events" pane to "Chat"
      • MPD users show up in events pane, and MPD commands show up as events for MPD users.
      • MPD lsinfo command allows '/' to mean root directory. Fixes compatibility with gmpc.
      • MPD list command supports a single argument to return all tags of that type. Fixes compatibility with gmpc.
      • MPD: when appending tracks with Auto DJ on, insert them before the random ones.
      • (breaking change) protocolupgrade UUID has changed
      • (breaking change) slashes and spaces disallowed in user names
      • (breaking change) clear and shuffle commands removed from protocol
      • HTTP redirect to HTTPS on the same port
      • client: clear and shuffle buttons removed from UI
      • client: Ctrl+A to select all. Works on queue, library, and playlists.
      • client: shuffle works on the selection instead of the entire queue and also works on playlists and playlist items.
      • client: shuffle context menu item added to playlists and queue.
      • client: ability to click in the empty queue area to get rid of context menu
      • client: scroll to cursor instead of selection
      • client: clear selection when focusing search box
      • client: disable context menu items lacking permission
      • client: fix context menu popping up outside document boundary
      • client: fix playlist item movement not anticipating correctly
      • client: 'E' keyboard shortcut to edit tags
      • client: prettier edit tags dialog
      • client: no longer depends on jQuery, jQuery UI, and cssreset. The code is now smaller, less buggy, and more performant.
      • client: fix not all DOM elements resizing correctly
      • client: > and < keyboard shortcuts require pressing shift
      • client: ability to show keyboard shortcuts from settings
      • client: add to playlist UI allows better keyboard interaction
      • fix crash when encountering paid YouTube videos
      • fix not respecting verbose logging for play queue
      • --config option so config file can be in a different place
      • db path is relative to config file instead of CWD
      • save playCount in the db
      • make importing files more efficient by disabling fs watching during
      • server handles many commands more efficiently
      • use xdg-user-dir if available for default music directory
      • add --delete-all-events CLI argument
      • chat: invalid commands do not get cleared or sent
      • fix MPD/groovebasin ID mapping memory leak
      • groovebasin protocol has stricter and safer argument parsing, resulting in several security vulnerabilities fixed.
      • deleting multiple tracks from the library is more efficient and results in O(1) messages to connected clients instead of O(n).
      • ability to add SSL CA certificates
      • better shuffle behavior
        • When Auto DJ is on, it re-rolls all the random songs without interrupting history or current track.
        • When Auto DJ is off, it preserves sort keys; just shuffling them around.
      • rescan command deletes mtimes in the db instead of relying on a flag in memory. This way if you kill the server in the middle of a rescan, it picks up where it left off.
      • add --spawn, --print-url, and --start command line options
      • client: smoother track slider
      • client: improved page performance due to no longer gzipping assets which are already compressed.
    • Melissa Noelle:

      • chat: support /me events
      • chat: convert URLs to links
      • client: style the slider widget
    • Josh Wolfe:

      • sort keys for queueing up large number of songs at once requires O(n*log(n)) size over the network instead of O(n^2).
      • play queue total never displays a negative number and shows '?' if some tracks need scanning.
    • moshev

      • Fixed a regression in uploading.