MPA

Media library concept

Last saved by Pierre henri Seylan on December 5, 2015

1/ Introduction:


The media library is an essential part of the Vapor app, it allows to manage all kind of content such as audio & MIDI files and plugins presets.
Files meta datas seem to be a good solution to organize and filter the media content as well as having a certain degree of freedom for the users as well.



2/ Definition of meta datas:


The meta datas are datas attached to a file or to an entire folder/bucket of the media library structure.
A file can contain multiple meta datas and a meta data can be shared across multiple files.

Meta data could be divided into 2 categories:

 Tags: music related datas

 Infos: informational datas


 2.1 list of meta datas


Tags:

  • Tempo (numeric value)
  • Genres/style
  • Mood
  • Type: drum, synths, fx ect


Infos:

  • File creator (username)
  • Ratings (value from 1 to 5)
  • Favorite (if favorited by user)



3/ Management of meta datas on admin end:

On the long term,the meta datas must be managable from the soundslates.com backend panel, where a site admin can mange the platform content such as talents, see: http://sssbe.soundslates.com/
As site admin you should be able to create and delete tags. (similar to talents)

A common list of meta datas should be hosted on the DB and available to app clients.
For the first implementation, a list of tags and corresponding files will be added to the server.


4/ Usage of meta datas on user end:


The M.D would be visible to the user in the Vapor/client library tab.
The user can use the tags to filter the library content, and combine tags for a more accurate search.
A search can also be performed by entering text into the search bar of the library tab.
The user can choose to attach an existing meta data to his personal files, and remove a tag from a file.
However the users should not be able to remove tags from the factory content.


4.1 Details about local search:


When the user performs a search through is local files using the meta datas, few aspects must be taken into consideration:

  • The search mechanism should have a low CPU and memory consumption
  • The list of results should be displayed as fast as possible
  • The list of results auto-­updates, meaning that the results are appearing as you type, without needing to click a “search” button


5/ Visibility of meta datas:


An important point is the visibility of the user’s personal meta datas.
The meta datas added by a user to a file should not necessarly be visible to othetr user who have access to the same file, for example in the case of a factory file where a user adds his own tags.

First proposal for visibility restrictions:


Private: visible only to the file owner:

  • Tags added to factory content
  • Tags added to personal content
  • Tags added by a user (non creator) to a shared content

Public: Visible to all users who have access to the file
       Tags added by the file creator to a shared content
       Tags added by Soundslates to the factory content



6/ Synchronization of local and server datas:


The datas will be hosted on the server but manipulated locally by the users. We must define how the datas will be synchronized on both ends.
This feature does not require frequent updates such as the chat system.


6.1 Use cases:

  • User performs a search local search using M.D as filters
  • User pulls a library file from the server
  • User pushes new content in his media library
  • User share his content with a contact or community
  • User removes previously pulled factory content (local)
  • User removes previously pulled Media library content

6.2 API requests:

Specified in API

  • GetMediaContentStructure
  • PostMediaContent
  • ShareMediaContent


Missing:

  • ShareMediaContent: need to add an option to give read access for all users (when youchoose to share a file with everyone)
  • RemoveMediaContent: What approach should be used here? the user will delete files locally, should we simply update the “Mediacontentstructure” list locally, and then push the updated list? or should it have its own request to delete certain media files from the server when the user remove files locally?


6.3 Server side considerations:

  • Read/write access needs implementation for media library
  • Defining and implementing how files Meta Datas are stored, and managed in the DB