GnukeBox/design

From ICMS
< GnukeBox
Revision as of 17:11, 8 February 2014 by Woozle (talk | contribs) (Woozle moved page GnukeBox/design/design to GnukeBox/design without leaving a redirect: move error -- recursion bug?)
Jump to navigation Jump to search

Design Spec

  • Status: This is a first pass at laying out the overall design and fleshing in some of the details. It has not yet been reviewed by any other team members, and I expect it will change and evolve considerably before implementation.
  • History:
    • 2013-09-17 key features discussed in email
    • 2013-09-22 started work on first wiki page version of design spec

Introduction

GnukeBox is a software application intended for multiple platforms, with emphasis on mobile devices and entertainment hardware. It will have both standalone capabilities and capabilities requiring support from a server back-end. As many features as possible should remain available when the internet is inaccessible. It will also have the ability to generate collections of media which can be played without the application, subject to licensing restrictions.

GnukeBox can be thought of as a portal into a vast library of artist-contributed music. Anyone may listen for free, and anyone may contribute their own material to the library. Unlike most libraries or audio players, however, GnukeBox also acts as a point-of-sale for contributing artists, and it can be used to create collections of works which can be freely shared across different instances of GnukeBox.

Its key innovation is its ability to provide free music-on-demand in a way which enables and encourages financial support for those who have put their work into that music. The most obvious way it does this is by providing the opportunity for "free plays" of a given track without necessarily releasing that track "into the wild", where it might be easily copied to other devices and decoupled from the artist's interests -- but there are others; see /revenue.

When we say "music", this should be read to mean any kind of audio/visual recording. Most of the recordings in the catalog will probably be music and most of the artists will probably be musicians, but there will undoubtedly be many other kinds of recordings (audio books, drama, comedy) and artists.

Related: /pitch - a place to save "pitches" for this idea, and related pieces

Design

  • /client: the client will be available on multiple platforms
  • /server: each server is a "node" to which clients can connect; servers share data with each other
  • /db: database design

Features

Its features can be broadly categorized as:

  • media
  • commerce
  • informational
  • social

Media Features

Gnukebox will play individual tracks and videos as well as playlists.

  • play tracks
  • play videos
  • artist-configurable:
    • restrict playlist
    • customize presentation layout
    • skinnable

Commerce Features

  • sell mp3s
  • sell physical goods (music/video media and tie-in merch)
  • collect email addresses
  • sell event tickets
  • show advertisements from 3rd parties
  • crowdsource investment in artist projects

Informational Features

  • performance schedules
  • artist catalogue and planned releases

Social Features

  • build fans using Facebook, G+, and Twitter (how?)
  • interoperate with G+ Hangouts somehow
  • listener ratings
  • listener commenting

We will probably need some kind of reputation management too... this could easily turn into its own social network, complete with a need to minimize spam, trolling, and other abuse, so this aspect of the design should be approached with caution. It may be that we will want to make that a separate phase of the software's development.

That said, as simple way to minimize trolling, as a stop-gap, might be to only allow customers, or those who have paid memberships (e.g. to make the ads disappear), to post comments.

There are open-source swarmable social networks that could be adapted, which would further allow us to take advantage of the network effect to gain publicity. Red/Zot looks especially promising, and should be ready to use by the time we are ready to implement social networking.

Data Design