"use strict";

/* --------------------------------------------------- */
/* SkyDragon Story track 19 (04c)                      */
/* Rumble III - Enemy of the Goddess                   */
/* (holy boss theme)                                   */
/* (c) Sean Kelly, 2017                                */
/* --------------------------------------------------- */
DATA_CHIPTUNES["Rumbl3"] = {
		"chip": "oneofeach"
	,	"bpm": 480 // beats per minute; 240 quarters in 8ths
	,	"priority": 1 // baseline nonzero for BGM
	,	"songdata" : {
			"sq":	// name of a channel on the chip	
				[
					{"command": "sweep", // set linear frequency sweep applied to every note (start and end multiply base note frequency)
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.05}
					}
				,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" sound when 2 similar frequencies overlap)
						"data": {"cents": -5}
					}

				// Section B.1 ref

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "tempo", // sixteenths.  Because just wait.
						"data": {"bpm": 960}
					}

				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gn3 1"
						,	"Dn2 1"
						,	"Gn3 1"
						,	"Dn2 1"
						,	"Bf2 1"
						,	"Gn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Fn3 1"
						,	"Cn3 1"
						,	"Fn3 1"
						,	"Cn3 1"
						,	"Bf2 1"
						,	"Gn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gn3 1"
						,	"Dn2 1"
						,	"Gn3 1"
						,	"Dn2 1"
						,	"Bf2 1"
						,	"Gn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Fn3 1"
						,	"Cn3 1"
						,	"Fn3 1"
						,	"Cn3 1"
						,	"Bf2 1"
						,	"Gn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gn3 1"
						,	"Dn2 1"
						,	"An3 1"
						,	"En3 1"
						,	"Cn3 1"
						,	"An2 1"
						]
					}
				,	{"command": "tempo", // eighths
						"data": {"bpm": 480}
					}

				// Section B.2 ref

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "tempo", // sixteenths.  Because just wait.
						"data": {"bpm": 960}
					}

				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gs3 1"
						,	"Ef3 1"
						,	"Gs3 1"
						,	"Ef3 1"
						,	"Bn2 1"
						,	"Gs2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Fs3 1"
						,	"Dn3 1"
						,	"Fs3 1"
						,	"Dn3 1"
						,	"Bf2 1"
						,	"Fs2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gs3 1"
						,	"Ef3 1"
						,	"Gs3 1"
						,	"Ef3 1"
						,	"Bn2 1"
						,	"Gs2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Fs3 1"
						,	"Dn3 1"
						,	"Fs3 1"
						,	"Dn3 1"
						,	"Bf2 1"
						,	"Fs2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"An3 1"
						,	"Fs3 1"
						,	"Bn3 1"
						,	"Fs3 1"
						,	"Dn3 1"
						,	"Bn2 1"
						]
					}
				,	{"command": "tempo", // eighths
						"data": {"bpm": 480}
					}

				// Section C ref

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 5"
						]
					}

				
				// Section A.1

				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 4"
						,	"Bf2 4"
						,	"Bf2 4"
						,	"Bf2 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.2

				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 4"
						,	"Df3 4"
						,	"Df3 4"
						,	"Df3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.3

				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.4

				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Dn3 2"
						,	"Bf2 2"
						,	"Cn3 2"
						,	"Bf2 1"
						,	"Dn3 2"
						,	"Dn3 1"
						,	"Bf2 2"
						,	"Gf3 2"
						,	"Bf2 2"
						]
					}

				// fake loop
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -17, "times": 1}
					}

				]
		,	"tri":	// name of a channel on the chip	
				[
					{"command": "sweep", // set linear frequency sweep applied to every note (start and end multiply base note frequency)
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.15}
					}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" sound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				,	{"command": "pan", "data": {"position": 0.5}}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.5}
					}

				// Section B.1 ref

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gn3 1"
						,	"Gn3 2"
						,	"Fn3 1"
						,	"Fn3 2"
						,	"Gn3 1"
						,	"Gn3 2"
						,	"Fn3 1"
						,	"Fn3 2"
						,	"Gn3 1"
						,	"An3 2"
						]
					}

				// Section B.2 ref

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gs3 1"
						,	"Gs3 2"
						,	"Fs3 1"
						,	"Fs3 2"
						,	"Gs3 1"
						,	"Gs3 2"
						,	"Fs3 1"
						,	"Fs3 2"
						,	"An3 1"
						,	"Bn3 2"
						]
					}

				// Section C ref

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gs2 1"
						,	"Gs2 1"
						,	"Rst 1"
						,	"Gs2 1"
						,	"Gs2 1"
						,	"Rst 1"
						,	"Gs2 1"
						,	"Gs2 1"
						,	"Rst 1"
						,	"Gs2 1"
						,	"Gs2 1"
						,	"Rst 5"
						]
					}

				// Section A.tacet

//				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
//						"data": [
//							"Rst 32"
//						,	"Rst 32"
//						,	"Rst 32"
//						,	"Rst 32"
//						]
//					}

				// Section A.1.a
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.05}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0.25}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Rst 0.25"
						,	"Bf2 4"
						,	"Bf2 4"
						,	"Bf2 4"
						,	"Bf2 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.2.a

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 4"
						,	"Df3 4"
						,	"Df3 4"
						,	"Df3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.3.a

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 2"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 1"
						,	"Ef3 2"
						,	"Ef3 1"
						,	"Bf2 2"
						,	"Df3 2"
						,	"Bf2 2"
						]
					}

				// Section A.4.a

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						,	"Cn3 4"
						]
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Dn3 2"
						,	"Bf2 2"
						,	"Cn3 2"
						,	"Bf2 1"
						,	"Dn3 2"
						,	"Dn3 1"
						,	"Bf2 2"
						,	"Gf3 2"
						,	"Bf2 1.75"
						]
					}

				// Section A.1
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.1}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.25, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef5 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef5 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf5 4"
						,	"Af5 2"
						,	"Gf5 4"
						,	"Ef5 6"
						]
					}

				// Section A.2

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.25, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df5 6"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef5 10"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf5 4"
						,	"Af5 2"
						,	"Gf5 4"
						,	"Ef5 6"
						]
					}

				// Section A.3

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn5 6"
						,	"Ef5 6"
						,	"Fn5 4"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.25, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gf5 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gf5 8"
						]
					}

				// Section A.4

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"An4 6"
						,	"Ef5 6"
						,	"Gf5 4"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.25, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf5 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf5 8"
						]
					}

				// fake loop
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -36, "times": 1}
					}
				
				]
		,	"st":	// name of a channel on the chip	
				[
					{"command": "sweep", // set linear frequency sweep applied to every note (start and end multiply base note frequency)
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.1}
					}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" sound when 2 similar frequencies overlap)
				//		"data": {"cents": -5}
				//	}

				//	Section B.1 ref

				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.75, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"As4 8"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"En5 2"
						,	"Dn5 1"
						,	"Cs5 2"
						,	"Bn4 1"
						,	"An4 1"
						]
					}

				// Section B.2 ref

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 0.75, "end": 1.0, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cn5 8"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Cs5 1"
						,	"Bn4 1"
						]
					}

				// Section C ref

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Cs5 1"
						,	"Cs5 1"
						,	"Rst 1"
						,	"Cs5 1"
						,	"Cs5 1"
						,	"Rst 1"
						,	"Cs5 1"
						,	"Cs5 1"
						,	"Rst 1"
						,	"Cs5 1"
						,	"Cs5 1"
						,	"Rst 5"
						]
					}

				// Section A.1
				
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.075}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0}
					}
				,	{"command": "pan", // linearly-divided fraction of the audio going to the right channel, with the remainder going to the left
						//"data": {"position": 0.25, "travel": 0.5, "dur": 60.0/240, "alternate":true}
						"data": {"position": 0.25, "travel": 0.5, "dur": 0.25, "alternate":true} // less precise, but easier for SoundEdit JSON
					}

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Rst 1"
						,	"Gf2 2"
						,	"Af2 2"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.05}
					}
				,	{"command": "tempo", // sixteenths.  Because just wait.
						"data": {"bpm": 960}
					}

				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Af2 1"
						,	"En2 1"
						,	"Df2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Af2 1"
						,	"En2 1"
						,	"Df2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "tempo", // eighths
						"data": {"bpm": 480}
					}

				// Section A.2
				
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.075}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0}
					}
				,	{"command": "pan", // linearly-divided fraction of the audio going to the right channel, with the remainder going to the left
						//"data": {"position": 0.25, "travel": 0.5, "dur": 60.0/240, "alternate":true}
						"data": {"position": 0.25, "travel": 0.5, "dur": 0.25, "alternate":true} // less precise, but easier for SoundEdit JSON
					}

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Rst 1"
						,	"Gf2 2"
						,	"Ef2 2"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.05}
					}
				,	{"command": "tempo", // sixteenths.  Because just wait.
						"data": {"bpm": 960}
					}

				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Af2 1"
						,	"En2 1"
						,	"Df2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Af2 1"
						,	"En2 1"
						,	"Df2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Bf1 1"
						]
					}
				,	{"command": "tempo", // eighths
						"data": {"bpm": 480}
					}


				// Section A.3
				
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.075}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0}
					}
				,	{"command": "pan", // linearly-divided fraction of the audio going to the right channel, with the remainder going to the left
						//"data": {"position": 0.25, "travel": 0.5, "dur": 60.0/240, "alternate":true}
						"data": {"position": 0.25, "travel": 0.5, "dur": 0.25, "alternate":true} // less precise, but easier for SoundEdit JSON
					}

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Rst 1"
						,	"Gf2 2"
						,	"Af2 2"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.05}
					}
				,	{"command": "tempo", // sixteenths.  Because just wait.
						"data": {"bpm": 960}
					}

				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Cn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Cn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Cn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.5}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Bf2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Cn2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.625}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Df3 1"
						,	"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						]
					}
				,	{"command": "pan", "data": {"position": 0.375}}
				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Bf2 1"
						,	"Gf2 1"
						,	"Ef2 1"
						,	"Cn2 1"
						]
					}
				,	{"command": "tempo", // eighths
						"data": {"bpm": 480}
					}


				// Section A.4
				
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.075}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.25, "dur": 0}
					}
				,	{"command": "pan", // linearly-divided fraction of the audio going to the right channel, with the remainder going to the left
						//"data": {"position": 0.25, "travel": 0.5, "dur": 60.0/240, "alternate":true}
						"data": {"position": 0.25, "travel": 0.5, "dur": 0.25, "alternate":true} // less precise, but easier for SoundEdit JSON
					}

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Ef3 1"
						,	"Rst 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Ef2 1"
						,	"Rst 1"
						,	"Fn2 2"
						,	"Gf2 2"
						]
					}

				,	{"command": "notes", // strings of the form "NnO L" where NnO is the Note-modifier-Octave note to play (from DEF_CHIPTUNE_PITCHES) and L is the length in beats or fractions (can be multiple characters as long as parseFloat will take it)
						"data": [
							"Gf2 1"
						,	"Rst 1"
						,	"Gf2 1"
						,	"Rst 1"
						,	"Gf2 1"
						,	"Rst 1"
						,	"Gf2 1"
						,	"Rst 1"
						,	"Fn2 1"
						,	"Rst 1"
						,	"Fn2 1"
						,	"Rst 1"
						,	"Gf2 1"
						,	"Af2 3"

						]
					}

				// fake loop
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -84, "times": 1}
					}

				]
		,	"sin":	// name of a channel on the chip	
				[
					{"command": "env", // set linear ramp envelope applied to every note; dur is measured in seconds, 0 means length of current note
						"data": {"start": 1.0, "end": 0.0, "dur": 0.25}
					}
				,	{"command": "sweep", // set linear frequency sweep applied to every note (start and end multiply base note frequency)
						"data": {"start": 1.0, "end": 0.5, "dur": 0.25}
					}
				,	{"command": "vol", // set overall volume of channel; 0.1 is a sane "loud" level
						"data": {"level": 0.15}
					}

				,	{"command": "pan", 
						"data": {"position": 0.4375}
					}

				// Section B.1 ref, B.2 ref

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}

				,	{"command": "notes", 
						"data": [
							"Cs3 3" // Cs3 - mid tom
						,	"Gn2 3" // Gn2 - low tom
						,	"Cs3 3" // Cs3 - mid tom
						,	"Cs3 2" // Cs3 - mid tom
						,	"Cs3 2" // Cs3 - mid tom
						,	"Gn2 2" // Gn2 - low tom
						]
					}

				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 1}
					}

				// Section C ref

				,	{"command": "notes", 
						"data": [
							"Gn2 3" // Gn2 - low tom
						,	"Gn2 3" // Gn2 - low tom
						,	"Gn2 3" // Gn2 - low tom
						,	"Gn2 3" // Gn2 - low tom

						,	"Gn2 2" // Gn2 - low tom
						,	"Gn2 2" // Gn2 - low tom
						]
					}

				// Section A.1, A.2, A.3, A.4

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}

				,	{"command": "notes", 
						"data": [
							"Cs3 2" // Cs3 - mid tom
						,	"Gn2 2" // Gn2 - low tom
						,	"Cs3 2" // Cs3 - mid tom
						,	"Gn2 1" // Gn2 - low tom
						,	"Cs3 2" // Cs3 - mid tom
						,	"Cs3 1" // Cs3 - mid tom
						,	"Gn2 2" // Gn2 - low tom
						,	"Cs3 2" // Cs3 - mid tom
						,	"Gn2 2" // Gn2 - low tom
						]
					}

				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 7}
					}

				// fake loop
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}
					
				]
		,	"nz":	// name of a channel on the chip	
				[
					{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.2, "dur": 0}
					}
				//,	{"command": "sweep", // set linear frequency sweep applied to every note (start and end multiply base note frequency)
				//		"data": {"start": 1.0, "end": 1.0, "dur": 0}
				//	}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.05}
					}
				,	{"command": "pan", 
						"data": {"position": 0.5625}
					}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" sound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				// Section B ref

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}

				,	{"command": "notes", 
						"data": [
							"Fn4 3" //snare?
						,	"Dn4 3" //snare?
						,	"Rst 7"
						,	"Dn6 2" //hat
						]
					}

				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 1}
					}

				// Section C ref

				,	{"command": "notes", 
						"data": [
							"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 1"
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 1"
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 1"
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 1"
						
						,	"Rst 4"
						]
					}

				// Section A.1, A.2, A.3, A.4

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.075}
					}

				,	{"command": "notes", 
						"data": [
							"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 3" //snare
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Cn4 1" //snare
						,	"Rst 3" //snare
						,	"Gn1 2" //bd
						,	"Gn1 2" //bd
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.05}
					}

				,	{"command": "notes", 
						"data": [
							"Dn6 4" //hat
						,	"Dn6 4" //hat
						,	"Dn6 4" //hat
						,	"Dn6 4" //hat
						]
					}

				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 3}
					}

				// fake loop
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -7, "times": 1}
					}
				

				]
		}
	};

