All Versions
18
Latest Version
Avg Release Cycle
69 days
Latest Release
3631 days ago

Changelog History
Page 1

  • v1.5.1 Changes

    May 15, 2015
    • 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.
  • v1.5.0 Changes

    January 09, 2015

    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.
  • v1.4.0 Changes

    October 17, 2014
    • Andrew Kelley:

      • client: fix showing filter without filtered results when server restarts
      • fix auto pause behavior and add event for it
      • fix symlink behavior in music library
      • import by url: respect content-disposition header
      • fix serving invalid content-disposition header
      • no longer accidentally shipping config.json in npm module
      • uploaded files are imported in a streaming fashion instead of after all files are finishing uploading.
      • fix an uploading crash
      • ability to import and upload .zip files.
      • auto queue happens server side.
      • play queue displays total duration and selection duration
      • add progress reporting for ongoing imports
      • fix aborted uploads getting stuck
      • Remove the easter eggs. It was fun while it lasted. Maybe someday we will live in a society where nothing is copyrighted.
      • add Cache-Control header to static assets to help enforce caching rules.
    • Josh Wolfe:

      • fix crash when uploading 0 byte .zip file
    • Felipe Sateler:

      • open stream and homepage links in new tabs/windows
    • Melissa Noelle:

      • client supports /nick command to change name
  • v1.3.2 Changes

    October 06, 2014
    • Andrew Kelley:
      • style: fix messed up menus and volume slider from upgrading jquery ui
      • config file is config.json instead of config.js
  • v1.3.1 Changes

    October 04, 2014
    • Andrew Kelley:
      • update to jquery 2.1.1; include unminified source
      • correctly report error when fail to parse config
      • use cssreset source instead of minified file
      • update to jquery ui 1.11.1; include source
  • v1.3.0 Changes

    October 03, 2014
    • Andrew Kelley:

      • if songs have no track numbers then never use album loudness
      • fix YouTube import
      • fix streaming not pausing and playing reliably
      • fix glitch in streaming when resuming after a long pause
      • add client side volume slider
      • use SSL by default with a public self signed cert
      • import URL allows downloading from https with invalid certs
      • replace uuid dependency with a simpler, faster, and more robust random string
      • rewrite user login and permissions support. MPD users can log in with (username) + '/' + (password)
      • user accounts and permissions are managed via the browser interface instead of with the configuration file
      • add events tab which tells what actions have happened recently, supports chat, and displays which users are streaming
      • fix permissions checking for downloading anonymous requests
      • remove 'l' hotkey for library and add 'e' hotkey for settings
      • rename legacy protocol message names
      • quieter log by default; ability to run with --verbose
      • fix bug where all files on play queue would be preloaded; now only the next and previous few files are preloaded
      • client: shift+delete only attempts to delete tracks when you have the necessary permissions
      • stream endpoint obeys permission settings
      • stream count is number of logged in users with an activated stream button plus number of anonymous users connected to the http endpoint
      • auto-pause is now instant instead of half second timer
      • client: fix cutting/pasting text filter box behavior
      • fix crash when removing a nested directory in the music directory
      • client: fix player preduction when currently playing track is removed
      • fix handling of slashes when importing from YouTube
      • client: disable hardware playback toggle button when not admin
      • cut the client javascript bundle size in half
      • build: /bin/sh instead of /bin/bash
    • Josh Wolfe:

      • implement and switch to more robust zip generating module. Fixes unicode file names in zips and enables the download progress bar.
      • implement and switch to simpler object diffing module. Reduces client-side JavaScript bundle size as well as bandwidth needed to stay connected to Groove Basin when other users are making edits.
      • Multi-file downloads use a GET request. This lets you copy a download URL which downloads multiple files to the clipboard.
    • David Renshaw:

      • Fix crash when import URL fails to download.
  • v1.2.1 Changes

    July 04, 2014
    • Andrew Kelley:
      • fix ytdl-core version locking. Fixes YouTube import.
  • v1.2.0 Changes

    July 04, 2014
    • Andrew Kelley:

      • client uses relative stream URL so reverse proxies can work.
      • client uses wss if protocol is https.
      • client UI indicates how many people are streaming
      • automatically pause when last streamer disconnects
      • client: remove dotted outline of links.
      • uploading is permission add, not control
      • rename the Upload tab to the Import tab
      • fix not being able to see client with anonymous read-only permissions set
      • fix library scan errors deleting songs from database.
      • streaming: less chance of glitches
      • streaming: no hiccup sound on skip
    • Josh Wolfe:

      • fix unable to download songs with hashtags in the URL (but first, let me take a #selfie)
  • v1.1.0 Changes

    June 20, 2014
    • Andrew Kelley:

      • Serve static assets gzipped from memory and use etags. Client loads faster.
      • Fix upload for multiple files.
      • Uploading has a progress bar and queues things in the correct order.
      • Client: UI renders faster. No longer depends on handlebars HTML templating.
      • Client: Status update no longer interfere with user input in settings pane.
      • Client: Fix incorrectly displaying songs as random
      • Client: Use textContent instead of innerText. Fixes incompatibility with some browsers.
      • Client: Fix incorrect expand icon shown sometimes.
      • Update duration info in DB when loudness scan finishes.
      • Default streaming buffer size tuned carefully to work well with browsers.
      • Fix crash - writing to closed web socket.
      • Prevent imported track filenames from ending directory names with '.'.
      • Import by URL: Fix race condition.
      • Import by URL: Prevent needless file copy operation when importing in situations where the music directory is in a different device than /tmp.
      • Import by URL: Support importing from YouTube.
      • Import by URL: URI decode filename
      • Fix not watching music root folder
      • Client: Fix filenames with percent (%) having invalid download URL.
      • Client: Fix displaying incorrect track number when track number is unknown
      • Client: Fix library items not always expanding consistently
      • Recognize TPA and TCM tags.
      • Fix queue failing to persist on shuffle.
      • Ability to edit tags. Note these edits are currently only saved to the DB and not written to the music files.
      • Client: Fix selection behaving erradically for albums in a list.
      • Client: Keyboard shortcuts window scrollable with arrows.
      • Client: Fix UI issues with buttons
      • Client: Default selected queue item is the current track.
      • Client: Fix repeat one and repeat all behavior swapped.
      • Fix Dynamic Mode not weighting last queue date properly when selecting random songs.
      • Fix potential crash when users disconnect from client.
      • Fix segfault when deleting tracks.
      • Save CPU cycles by only encoding audio when streamers are connected.
      • Ability to toggle server-side audio playback.
      • Loudness adjustment: Avoid soft limiting when possible based on looking at the true peak of the song.
      • Add check for correct version of libgroove on startup. This prevents users from accidentally using an outdated version and getting bugs.
      • Ability to start even if MPD protocol port cannot be bound.
      • Preserve volume over application restarts.
      • Improved streaming playback reliability.
      • Fix downloading zip for artist and album.
      • Deleting currently playing track goes to next song.
      • Client: Fix stream button not always in correct state.
      • Add header so that downloading always results in download.
      • Start at last play position on server restart.
      • Various improvements to how tracks are filed in the library browser.
      • When playlist changes, reprioritize scanning queue.
      • Scanning progress is reported to the client.
      • HTTP commands go through permissions framework.
      • Fix sometimes player stops and does not go to next track automatically.
      • Ignore folders in music directory beginning with a dot.
      • Client: Fix freezing and stuttering when many library or playlist updates happen quickly.
      • Client: Preserve library selection state on library update.
    • Josh Wolfe:

      • Client: Fix client side crash when 2 clients delete the same queue item.
      • Client: Fix cursor selection not showing up.
      • Client: Ctrl+Space to toggle selection under the cursor.
      • Client: Queue now uses Ctrl to move the cursor without selecting, and Alt to bump selected tracks up or down.
      • Client: Ctrl+Arrows and Ctrl+Space in library now work like in the queue.
      • Client: Shift+Arrows in queue now works as expected.
      • Client: Fix Shift Up/Down behavior in library.
      • Seeking no longer automatically starts playing.
      • Client: Hide the password in the UI.
      • Client: Library deletions are anticipated.
    • Caleb Morris:

      • Add filter delay to wait for user to finish typing before beginning search.
    • jeffrom:

      • Fix disabled menu item focus jumping.
    • jimmy:

      • MPD: Make "search" a substring match.
      • MPD: Support "any" as a search type in find and search.
    • jprjr:

      • Fix hardware playback fallback behavior.
    • seansaleh:

      • encodeQueueDuration is now a configurable option.
    • Ronak Buch:

      • Client style: Add margin to URL upload bar.
    • Jeff Epler:

      • README: Mention nodejs-legacy Debian package.
  • v1.0.1 Changes

    March 18, 2014
    • Andrew Kelley:
      • Fix race condition when removing tracks from playlist. Closes #160
      • Default import path includes artist directory.
      • Also recognize "TCMP" ID3 tag as compilation album flag
      • Fix Last.fm authentication