Text/songinfo format

From Hideki Saito Wiki
Jump to: navigation, search

DRAFT

Abstract

text/songinfo is a JSON based information exchange format that allows musical categorization information to be transfered from one to another.

Terms

"Songs" within this document, refers to any type of musical work.

Usage

text/songinfo is used as general purpose song information transfer and integration.

Example

As an API

text/songinfo can be used in response to query to API. Providing applications to interface with others.

As an Web Intents

text/songinfo can be used in conjunction with Web Intents. Using Web Intents, the one site can interface with other sites. For example, a site can invoke Web Intents connecting to song information site for more information. Other implementation may start play back of the music, or send Karaoke request.

Structures

Base Item Structure

This section contains basic information about songs, as well as its identifiers.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

songId

  • Type: number
  • Required: false

songId contains unique identification of the song being described in the format. Since text/songinfo is portable format, songId only carries notation that may only be valid in limited context. Therefore, an implementation SHOULD NOT assume uniqueness of songID. If the implementation wishes to use songId from the list of songs resulting from foreign sources, the implementation SHOULD assign its own songId to be used within the implementation.

songTitle

  • Type: string
  • Required: true

songTitle contains title of the song.

songArtist

  • Type: string
  • Required: true

songArtist contains author of the song. If the song contains multiple authors, the implementation SHOULD either include principal artist of the song, and add multiple entries of Author Extension.

songAlbum

  • Type: string
  • Required: false

songAlbum contains album that includes the song.

songReference

  • Type: string
  • Required: false

songReference is used to notate origin of the song, such as related work, such as TV shows.

songISRC

  • Type: string
  • Required: false

Contains song's International Standard Recording Code (ISRC) or ISO 3901.

songISWC

  • Type: string
  • Required: false

Contains song's International Standard Musical Work Code (ISWC) or ISO 15707.

Author Extension

The Author Extension further defines author of the song. This should be included in songAuthorExtension

composer

writer

arranger

producer

Karaoke Extension

Karaoke structure contains additional information regarding Karaoke, or singing apparatus including call codes for the song. Call code MUST be prefixed with vnd followed by their domain followed by the product using underscore as separator.

   "vnd_com_example_superkaraoke": "12345"

Example

   {
       "songId": 6,
       "songTitle": "Wake Me Up When September Ends",
       "songArtist": "Green Day",
       "songReference": ""
       "songAuthorExtension":
       {
           singer: 
           [ "Green Day" ]
           writer:
           [ "Billie Joe Armstrong", "Green Day" ]
           producer:
           [ "Rob Cavallo", "Green Day" ]
       }
       "karaoke": {
           "vnd_com_example_superkaraoke": "12345",
       }
   }

Application

Currently used at Hideki's Song List for API access as well as a data exchange format for now deprecated Web Intent system.