Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
This is a brief overview of the requires of different functionality areas
The main functional goals are to enhance Squeezebox devices with:
- Good support for classical music and jazz music (which is the most neglected genres on the Squeezebox devices today)
- Good support to discover music in your local library through smart playlist/mixing capabilities
- Good support to discover and preview new music which you currently don't own
- Good support for sharing recommendations about interesting music between Squeezebox owners
- This is about music. Video support (movies, YouTube?, etc.) are not design goals.
- We want to try to do this together with Logitech so there isn't any goal to completely replace Squeezebox Server with this solution. Preferably we should be able to benefit from new features added by Logitech and at the same time add our own extra features on top of that.
The following browsing functionality towards the local Social Music Discovery database should be supported.
The following search functionality towards the local Social Music Discovery database should be supported.
Local Context Menus
The following context menu related functionality towards the local Social Music Discovery database should be supported.
Local Now Playing screen
The following information from the local Social Music Discovery database should be possible to display on the Now Playing screen of the various players.
Import from tags
The following information should be possible to import from tags in scanned music files
Import from online sources
The following information should be possible to import from online sources
The following information should be possible to manage through the user interface of the Social Music Discovery Application
The following type of smart playlists/mixing functionality should be supported
- System should "work" on low powered servers such as SheevaPlug, VortexBox appliances or left over PCs with only a modest CPU (say 1 gHz core and 512 MB RAM).
- System must run on all mainstream platforms:
- Mac OS X
- Windows (XP, 2003 Server and later)
- System must handle "international characters" (UTF-8, UTF-16, ...?) in database and UI
- System must be localizable in terms of language and locale (number and date formats, collating sequence, etc)
- Strings and other resources must be localizable to present texts in user's preferred (local) language
- System should ideally support BiDI language? Maybe at some point. Depending on UI technology, this may or may not present a challenge (effort ranging from a checkbox setting to an entire project in its own rigth)
- Scanning time should be "reasonable" which will depend upon both server configuration and size of the music library.
- A 100 000 tracks library should be possible to completely scan during a night (8 hours)
- It's acceptable if larger libraries might require pre-calculated smdID's in a custom tag to get decent scanning performance
- It's acceptable if advanced scanning functions, like audio analysis to improve mixing capabilities, might need longer scan times as long as their result can be tied to the track using tags, smdID or similar mechanisms
- Often used browse functions should have a response time of maximum 3 seconds in a 100 000 tracks library
- Often used search functions should have a response time of maximum 5 seconds in a 100 000 tracks library
- System is developed and distributed using the BSD Open Source license (http://www.opensource.org/licenses/bsd-license.php)
- System will honor copyrights and will not make inapproriate use of online resources.