Groove Basin is a music player server written in Node.js that ships with a web-based client.
Screenshot <http://superjoe.s3.amazonaws.com/blog-files/raspberry-pi-music-player-server/groovebasin-screenshot.png> | Live Demo Version <http://demo.groovebasin.com/> | GitHub Page <https://github.com/andrewrk/groovebasin> Relevant articles: My Quest To Build the Ultimate Music Player <http://andrewkelley.me/post/quest-build-ultimate-music-player.html> Turn Your Raspberry Pi into a Music Player Server <http://andrewkelley.me/post/raspberry-pi-music-player-server.html> I have reproduced the 1.1.0 release notes <https://github.com/andrewrk/groovebasin/blob/master/CHANGELOG.md#version-110-2014-06-20> below: - 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. -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/51bc8da5-a4ad-4d8a-91ff-d44bd79187a8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.