Skip to content

Instantly share code, notes, and snippets.

@jamiew
Created January 22, 2012 17:15
Show Gist options
  • Save jamiew/1657723 to your computer and use it in GitHub Desktop.
Save jamiew/1657723 to your computer and use it in GitHub Desktop.
ScratchML draft spec v3
<?xml version="1.0"?>
<sml>
<meta>
<origin>
<name></name>
<location></location>
<client></client> <!-- sml generator -->
<time></time>
</origin>
<description></description> <!-- commentary -->
<tags></tags> <!-- keywords -->
<tracks>
<track>
<deck></deck> <!-- which turntable -->
<start></start> <!-- when it starts during the performance -->
<stop></stop> <!-- when it stops during the performance -->
<name></name>
<artist></artist>
<!-- other id3 style data? -->
</track>
</tracks>
</meta>
<composition>
<turntable>
<side>left</side>
<performance> <!-- this is raw, recorded data -->
<format>base64</format> <!-- base64 compresses dense, evenly spaced data -->
<samplerate>
<!-- this data could be in different formats, depending on the input source (fps, samples, etc) -->
<audio>44100</audio>
<buffer>128</buffer>
</samplerate>
<data>...bWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</data>
</performance>
<transcription> <!-- this is transcribed, notated information -->
<scratch name="flare">
<line time="1" position="0" /> <!-- lines: transformer, chirps (derivative = (next-cur)/length) -->
<curve time="3" position="1.4" /> <!-- curve: baby, scribble, etc (derivative = 0) -->
</scratch>
</transcription>
</turntable>
<mixer>
<crossfader>
<performance>
<hamster>true</hamster>
<format>xml</format> <!-- xml is better for sparse data -->
<data>
<event time="0" value="0" />
<event time="2.736" value="0" />
<event time="2.736" value="1" />
<event time="3.034" value="1" />
</data>
</performance>
<transcription>
<move time="1" position="center" /> <!-- left is open -->
<click time="1.5" position="right" /> <!-- left click -->
<move time="2" position="right" /> <!-- left is closed -->
<move time="3" position="center" /> <!-- left is open -->
<crab position="right"> <!-- three click crab -->
<click time="3.25" />
<click time="3.50" />
<click time="3.75" />
</crab>
<move time="5" position="right" /> <!-- left is closed -->
</transcription>
<crossfader>
</mixer>
</composition>
</sml>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment