JSON-LD format for music


There's a lot to say - feel free to request any details - but I'll try
to keep this short for simplicity:

I've been working on a project: a music player for programmers,
because programmers should not be using itunes. Currently, I'm writing
it to accept commands through an interpreter. Using zmq, my plan is to
have the music player generate a webpage from which the command line
can be accessed (using post requests for message passing).  The
webpage will serve as the music player's gui, and this format was
chosen both for universality of computers and for accessibility over
networks (inspired by my roommate wanting to be able to know what song
was playing without having to ask!).

Songs - samples - are just data, and as such we should keep them in a
general, simple and understandable format. My music player works with
the idea that a "song" is basically comprised of two components: audio
bits - the waveform - and metadata. However, the metadata is NOT done
with id3v4 or any of its ilk: The idea is that I want the metadata to
be extremely universal.  Currently, I am using a Clojure form of
mongerdb to store the metadata in Clojure maps. Clojure maps are
essentially json in and of themselves (the two are mutually
convertible), and that's where json-ld comes into play.

My question is this: Can someone point me in the direction of anyone
who's already implementing a json-ld standard for music (specifically,
songs)? If it doesn't exist, then I would definitely like input as to
how to go about starting it!

I'm looking for something similar to the following (which is modeled
after the "What is JSON-LD?" video):

  "@context" : "http://example.com/sample.jsonld",
 "@id" : "http://example2.com/hotelcalifornia",
 "title" : "Hotel California",
 "artist" : "The Eagles",

But then, what is included by the ellipsis? The genre, track, length,
and all other normal song identifiers? What about play count, rating,
It seems like those would be a good basis, and i would assume that
users could create their own categories within this same context. It
almost has to be extensible in that way, so users can write programs
based off their own notation.

For example, someone could write a program that cares about particular
places in songs - say, the beginning of the chorus.  The program could
use some sort of notation to mark a location in the song in a way that
both computers and humans can understand. Going with the theme above,
the program would then only need to add to the sample's metadata a
line like:

 "chorus" : ["127.03", "180.45"]

wherein the values are the timestamps (in seconds) of the sample (to
which this particular data is attached) when the chorus begins.  I
would need to address the conflict when two different programs use the
same name "chorus", and it is my understanding that use of json-ld
would be appropriate.

Any and all input is appreciated!

Daniel Leja

There are almost no absolutes.

Received on Sunday, 24 June 2012 20:24:19 UTC