jkulvich

Maple SkyStudio alternate JSON music format

May 17th, 2020
103
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // It is just an example of the future SkyStudio format.
  2. // You can change it as you wish.
  3. // Why a new format? Because C# Serialization too hard to parse in another language.
  4. // Why isn't COTLTracker format? Because it isn't so flex as JSON and requires an own parser.
  5.  
  6. {
  7.     "SkyStudio": "1.0.0", //< SkyStudio version for compatibility with future versions
  8.     "Details": {
  9.         "Artist": "Stimson Eric",
  10.         "Album": "Kimi no Na wa OST",
  11.         "Title": "Sparkle",
  12.         "Arranger": "@Maple",
  13.         "Link": "https://www.youtube.com/watch?v=m6cVaRnXGtw",
  14.         "Version": "1.0.0" //< Music version
  15.     },
  16.     "Tracks": [ //< Feature for several instruments simultaneously (I'm going to implement a driver to control several devices via COTLTracker with several accounts to make a synchronized orchestra in the future. But I'm not sure about this feature at all. Maybe we don't need it. So, we just can put an object inside "Tracks")
  17.         {
  18.             "BPM": 360,
  19.             "Instrument": "NewPiano",
  20.             "Pitch": "Bb",
  21.             "Lead": true, //< For orchestra feature. Play only this track if not enough connected devices.
  22.             "Blocks": [
  23.                 {
  24.                     "Notes": ["C0", "E0", "C1"] //< I suggest to use a simple "Letter notation" [https://en.wikipedia.org/wiki/Letter_notation] which I use in COTLTracker. With next simple sequence [C0, D0, E0, F0, G0] [A0, B0, C1, D1, E1] [F1, G1, A1, B1, C2]. Or we can use Harp key position with "column:row" like "0:0" - first button, "4:2" - last button.
  25.                 },
  26.                 {
  27.                     "Notes": ["D1"]
  28.                 } //< And so on...
  29.             ]
  30.         },
  31.     ]
  32. }
RAW Paste Data