"use strict";

/* --------------------------------------------------- */
/* SkyDragon Story track 01                            */
/* Fly, Legendary SkyDragon                            */
/* (title theme)                                       */
/* (c) Sean Kelly, 2013, 2018                          */
/* --------------------------------------------------- */
DATA_CHIPTUNES["Fly, Legendary SkyDragon"] = {
		"chip": "oneofeach"
	,	"bpm": 270 // beats per minute; 135 quarters, taken in 8ths
	,	"priority": 1 // baseline nonzero for BGM
	,	"songdata" : {
			"st":	// name of a channel on the chip	
				[
					{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "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.1}
					}
				//,	{"command": "pan", 
				//		"data": {"position": 0.4}
				//	}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				// Section A.1

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 5}
					}

				// Section A.2

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 3}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				// Section B.1

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

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.12}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.8, "dur": 0.0}
					}

				,	{"command": "notes", 
						"data": [
							"Af4 3"
						,	"Ef4 1"
						,	"Af4 3"
						,	"Ef4 1"
						,	"Af4 1"
						,	"Ef4 1"
						,	"Af4 4"
						,	"Af4 1"
						,	"Ef4 1"

						,	"Bf4 3"
						,	"Fn4 1"
						,	"Fn4 4"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 3"
						,	"Fn4 1"
						,	"Fn4 4"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -5, "times": 1}
					}

				// Section B.2

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

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.1}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}

				,	{"command": "notes", 
						"data": [
							"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Cn3 1.9"
						,	"Rst 0.1"
						,	"Cn3 0.9"
						,	"Rst 0.1"
						,	"Cn3 0.9"
						,	"Rst 0.1"

						,	"Cn3 1.9"
						,	"Rst 0.1"
						,	"Cn3 0.9"
						,	"Rst 0.1"
						,	"Cn3 0.9"
						,	"Rst 0.1"

						,	"Gn2 1.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"

						,	"Gn2 1.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"

						,	"An2 1.9"
						,	"Rst 0.1"
						,	"An2 0.9"
						,	"Rst 0.1"
						,	"An2 0.9"
						,	"Rst 0.1"

						,	"An2 1.9"
						,	"Rst 0.1"
						,	"An2 0.9"
						,	"Rst 0.1"
						,	"An2 0.9"
						,	"Rst 0.1"

						,	"Gn2 1.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"
						,	"Gn2 0.9"
						,	"Rst 0.1"

						,	"Gn2 1.9"
						,	"Rst 0.1"
						,	"Fn2 0.9"
						,	"Rst 0.1"
						,	"Fn2 0.9"
						,	"Rst 0.1"
						]
					}

				// Section A.rep

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 3}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Dn3 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.8"
						,	"Rst 0.2"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						,	"Bf2 0.4"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -4, "times": 1}
					}

				
				]
		,	"tri":	// name of a channel on the chip	
				[
				//	{"command": "env", // set linear ramp envelope applied to every note
				//		"data": {"start": 1.0, "end": 0.0, "dur": 0.5}
				//	}
				//,	{"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.08}
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				// Section A.1, A.2

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 16"
						,	"Af4 16"
						,	"Df4 8"
						,	"Gf4 8"
						,	"Fn4 16"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 1}
					}

				// Section B.1, B.2

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

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

				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "notes", 
						"data": [
							"Cn4 7"
						,	"Rst 1"
						,	"Cn4 2"
						,	"Dn4 2"
						,	"Ef4 2"
						,	"Cn4 2"

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

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

				,	{"command": "notes", 
						"data": [
							"En4 7"
						,	"Rst 1"
						,	"En4 2"
						,	"Fn4 2"
						,	"Gn4 2"
						,	"En4 2"

						,	"An4 8"
						,	"Cn5 6"
						,	"Rst 1"
						,	"Bf4 0.8"
						,	"Rst 0.2"
						]
					}

				// Section A.rep

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

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

				,	{"command": "notes", 
						"data": [
							"Bf4 14"
						,	"Rst 1"
						,	"Bf4 0.8"
						,	"Rst 0.2"

						,	"Af4 14"
						,	"Rst 1"
						,	"Af4 0.8"
						,	"Rst 0.2"

						,	"Gn4 14"
						,	"Rst 1"
						,	"Gn4 0.8"
						,	"Rst 0.2"

						,	"Gf4 16"

						,	"Gf4 14"
						,	"Rst 1"
						,	"Gf4 0.8"
						,	"Rst 0.2"

						,	"Fn4 3"
						,	"Dn5 13"
						,	"Dn5 16"
						]
					}

				]
		,	"sq":	// name of a channel on the chip	
				[
				//	{"command": "env", // set linear ramp envelope applied to every note
				//		"data": {"start": 1.0, "end": 0.0, "dur": 0.5}
				//	}
				//,	{"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.12}
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				// Section A.1	

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 8" // Fly,
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2" // Leg-
						,	"Ef5 1" // en-
						,	"Dn5 2" // da-
						,	"Ef5 3" // ry

						,	"Dn5 3" // Sky
						,	"Bf4 0.8" // Dra-
						,	"Rst 0.2"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 4" // gon!
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2" // some-
						,	"Ef5 1" // thing
						,	"Dn5 2" // some-
						,	"Ef5 3" // thing
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.09}
					}
				,	{"command": "notes", 
						"data": [
							"Fs4 3" // daaa
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.1}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 3" // daaa
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.11}
					}
				,	{"command": "notes", 
						"data": [
							"Cn5 2" // da
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.12}
					}
				,	{"command": "notes", 
						"data": [
							"Df5 2" // dee
						,	"Cn5 1" // da
						,	"Bf4 2" // daa
						,	"Gf4 1" // da
						,	"Af4 1" // da
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 12" // doooooo
						,	"Rst 1"
						]
					}
					// no, really!  Those are the lyrics!  It says so in the code!
					// I'm not making this up, I swear!

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.5"
						,	"Gn4 0.5"
						,	"Af4 0.5"
						,	"An4 0.5"
						,	"Fn4 0.5"
						,	"Gn4 0.5"
						,	"Af4 0.5"
						,	"An4 0.5"
						]
					}

				// Section A.2

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"

						,	"Dn5 3"
						,	"Bf4 0.8"
						,	"Rst 0.2"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 4"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.09}
					}
				,	{"command": "notes", 
						"data": [
							"Fs4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.1}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.11}
					}
				,	{"command": "notes", 
						"data": [
							"Cn5 2"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.12}
					}
				,	{"command": "notes", 
						"data": [
							"Df5 2"
						,	"Cn5 1"
						,	"Bf4 2"
						,	"Gf4 1"
						,	"Af4 1"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 9" // purple! (otherwise lyrics follow phrase 1)
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.5"
						,	"Gn4 0.5"
						,	"An4 0.5"
						,	"Bf4 0.5"
						,	"Fn4 0.5"
						,	"Gn4 0.5"
						,	"An4 0.5"
						,	"Bf4 0.5"
						,	"Fn4 0.5"
						,	"Gn4 0.5"
						,	"An4 0.5"
						,	"Bf4 0.5"

						,	"Af4 0.5"
						,	"Gf4 0.5"
						,	"Fn4 0.5"
						,	"Df4 0.5"
						]
					}

				// Section B.1

				,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
						"data": {"cents": -5}
					}

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

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 1.0, "dur": 0}
					}

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

				,	{"command": "notes", 
						"data": [
							"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Af2 1.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"
						,	"Af2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"

						,	"Bf2 1.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						,	"Bf2 0.9"
						,	"Rst 0.1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 1}
					}

				// Section B.2

				,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
						"data": {"cents": 0}
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.09}
					}
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 2"
						,	"Gn4 0.68"
						,	"Fn4 0.66"
						,	"Gn4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Ef4 0.68"
						,	"Dn4 0.66"
						,	"Ef4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Cn4 0.68"
						,	"Bn3 0.66"
						,	"Cn4 0.66"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -6, "times": 1}
					}


				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.1}
					}
				
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 2"
						,	"An4 0.68"
						,	"Gn4 0.66"
						,	"An4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.68"
						,	"En4 0.66"
						,	"Fn4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Dn4 0.68"
						,	"Cn4 0.66"
						,	"Dn4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 2"
						,	"An4 0.68"
						,	"Fn4 0.66"
						,	"An4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.68"
						,	"Dn4 0.66"
						,	"Fn4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Dn4 0.68"
						,	"An3 0.66"
						,	"Dn4 0.66"
						]
					}


				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.11}
					}
				,	{"command": "jump", // reset the loop counter
						"data": {"reset": true}
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 2"
						,	"Cn5 0.68"
						,	"Bn4 0.66"
						,	"Cn5 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Gn4 0.68"
						,	"Fn4 0.66"
						,	"Gn4 0.66"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"En4 0.68"
						,	"Dn4 0.66"
						,	"En4 0.66"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -6, "times": 1}
					}


				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.12}
					}
				,	{"command": "notes", 
						"data": [
							"En4 0.68"
						,	"En4 0.66"
						,	"En4 0.66"
						,	"En4 1"
						,	"En4 1"
						,	"En4 0.68"
						,	"En4 0.66"
						,	"En4 0.66"
						,	"En4 1"
						,	"En4 1"
						,	"En4 0.68"
						,	"En4 0.66"
						,	"En4 0.66"
						,	"En4 1"
						,	"En4 1"
						,	"En4 0.68"
						,	"En4 0.66"
						,	"En4 0.66"
						,	"Ef4 1"
						,	"Ef4 1"
						]
					}

				// Section A.rep

				,	{"command": "pan", 
						"data": {"position": 0.45}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 3"
						,	"Bf3 0.5"
						,	"Dn4 0.5"
						,	"Fn4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.55}
					}
				,	{"command": "notes", 
						"data": [
							"Dn4 0.5"
						,	"Fn4 0.5"
						,	"Bf4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.5"
						,	"Bf4 0.5"
						,	"Dn5 3"
						,	"Rst 1"
						]
					}

				,	{"command": "pan", 
						"data": {"position": 0.4}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 3"
						,	"Af3 0.5"
						,	"Cn4 0.5"
						,	"Ef4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.6}
					}
				,	{"command": "notes", 
						"data": [
							"Cn4 0.5"
						,	"Ef4 0.5"
						,	"Af4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Ef4 0.5"
						,	"Af4 0.5"
						,	"Cn5 3"
						,	"Rst 1"
						]
					}

				,	{"command": "pan", 
						"data": {"position": 0.35}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 3"
						,	"Gn3 0.5"
						,	"Bf3 0.5"
						,	"Ef4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.65}
					}
				,	{"command": "notes", 
						"data": [
							"Bf3 0.5"
						,	"Ef4 0.5"
						,	"Gn4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Ef4 0.5"
						,	"Gn4 0.5"
						,	"Bf4 3"
						,	"Rst 1"
						]
					}

				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 3"
						,	"Gf3 0.5"
						,	"Bf3 0.5"
						,	"Df4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Bf3 0.5"
						,	"Df4 0.5"
						,	"Gf4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.6}
					}
				,	{"command": "notes", 
						"data": [
							"Df4 0.5"
						,	"Gf4 0.5"
						,	"Bf4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.4}
					}
				,	{"command": "notes", 
						"data": [
							"Gf4 0.5"
						,	"Bf4 0.5"
						,	"Df5 13"
						,	"Rst 1"
						]
					}

				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				,	{"command": "notes", 
						"data": [
							"Df5 2"
						,	"Dn5 3"
						]
					}

				,	{"command": "pan", 
						"data": {"position": 0.3}
					}
				,	{"command": "notes", 
						"data": [
							"Bf3 0.5"
						,	"Dn4 0.5"
						,	"Fn4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.7}
					}
				,	{"command": "notes", 
						"data": [
							"Dn4 0.5"
						,	"Fn4 0.5"
						,	"Bf4 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.4}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 0.5"
						,	"Bf4 0.5"
						,	"Dn5 3"
						]
					}
				,	{"command": "pan", 
						"data": {"position": 0.6}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 0.5"
						,	"Dn5 0.5"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.0, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 16"
						]
					}

				]
		,	"nz":	// name of a channel on the chip	
				[
					{"command": "env", // set linear ramp envelope applied to every 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": 1.0, "dur": 0}
				//	}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.07}
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				//,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
				//		"data": {"cents": 0}
				//	}

				// Section A.1, A.2

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

				,	{"command": "notes", 
						"data": [
							"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 1" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 14}
					}
				,	{"command": "notes", 
						"data": [
							"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						]
					}

				// Section B.1, B.2

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

				,	{"command": "notes", 
						"data": [
							"Cn2 2" //bd
						,	"Cn6 1" //hat
						,	"Cn2 1" //bd
						,	"Cn2 2" //bd
						,	"Cn6 2" //hat
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 13}
					}

				,	{"command": "notes", 
						"data": [
							"Cn2 1.34" //bd
						,	"Cn2 1.33" //bd
						,	"Cn2 1.33" //bd
						
						,	"Cn2 0.68" //bd
						,	"Cn2 0.66" //bd
						,	"Cn2 0.66" //bd
						,	"Cn2 0.68" //bd
						,	"Cn2 0.66" //bd
						,	"Cn2 0.66" //bd

						,	"En4 0.68" //snare
						,	"En4 0.66" //snare
						,	"En4 0.66" //snare
						,	"En4 0.68" //snare
						,	"En4 0.66" //snare
						,	"En4 0.66" //snare

						,	"Cn6 0.68" //hat
						,	"Cn6 0.66" //hat
						,	"Cn6 0.66" //hat
						,	"Cn6 0.68" //hat
						,	"Cn6 0.66" //hat
						,	"Cn6 0.66" //hat
						]
					}

				// Section A.rep

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

				,	{"command": "notes", 
						"data": [
							"Cn2 1" //bd
						,	"Rst 1"
						,	"Cn6 1" //hat
						,	"Rst 1"
						,	"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn2 1" //bd
						,	"Rst 1"
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 8}
					}

				,	{"command": "notes", 
						"data": [
							"Cn6 0.5" //hat
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"Cn2 0.5" //bd
						,	"Cn6 0.5" //hat
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"Cn2 0.5" //bd
						,	"Cn6 0.5" //hat
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"Cn2 0.5" //bd
						,	"Cn6 0.5" //hat
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"Cn2 0.5" //bd
						]
					}

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

				,	{"command": "notes", 
						"data": [
							"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 1" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn2 1" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						]
					}
				,	{"command": "jump", // go forwards/backwards delta commands if loop counter < times; increase loop counter
						"data": {"delta": -1, "times": 2}
					}

				,	{"command": "notes", 
						"data": [
							"Cn6 0.5" //hat
						,	"Cn6 0.5" //hat
						,	"Cn2 0.5" //bd
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"Cn2 0.5" //bd
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"Cn6 0.5" //hat
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						,	"En4 0.5" //snare
						]
					}
				]
		,	"sin":	// name of a channel on the chip	
				[
					{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.5, "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.08}
					}
				,	{"command": "pan", 
						"data": {"position": 0.5}
					}
				//,	{"command": "tempo", // change tempo mid-tune
				//		"data": {"bpm": 120}
				//	}
				,	{"command": "detune", // detune in cents to be applied to the oscillator (for "richer" cound when 2 similar frequencies overlap)
						"data": {"cents": -5}
					}

				// echo.  Oldest trick in the book.
				,	{"command": "notes", 
						"data": [
							"Rst 0.25"
						]
					}

				// Section A.1	

				
				// Section A.1	

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"

						,	"Dn5 3"
						,	"Bf4 0.8"
						,	"Rst 0.2"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 4"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.04}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.05}
					}
				,	{"command": "notes", 
						"data": [
							"Fs4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.06}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.07}
					}
				,	{"command": "notes", 
						"data": [
							"Cn5 2"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "notes", 
						"data": [
							"Df5 2"
						,	"Cn5 1"
						,	"Bf4 2"
						,	"Gf4 1"
						,	"Af4 1"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn4 12"
						,	"Rst 1"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.5, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Rst 4"
						]
					}

				// Section A.2

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 8"
						]
					}

				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"

						,	"Dn5 3"
						,	"Bf4 0.8"
						,	"Rst 0.2"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 4"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.04}
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 1.0, "end": 0.75, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Fn5 2"
						,	"Ef5 1"
						,	"Dn5 2"
						,	"Ef5 3"
						]
					}

				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.05}
					}
				,	{"command": "notes", 
						"data": [
							"Fs4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.06}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 3"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.07}
					}
				,	{"command": "notes", 
						"data": [
							"Cn5 2"
						]
					}
				,	{"command": "vol", // set overall volume of channel
						"data": {"level": 0.08}
					}
				,	{"command": "notes", 
						"data": [
							"Df5 2"
						,	"Cn5 1"
						,	"Bf4 2"
						,	"Gf4 1"
						,	"Af4 1"
						]
					}
				,	{"command": "env", // set linear ramp envelope applied to every note
						"data": {"start": 0.8, "end": 1.2, "dur": 0}
					}
				,	{"command": "notes", 
						"data": [
							"Bf4 9"
						]
					}

				,	{"command": "notes", 
						"data": [
							"Rst 7.75" // back in sync
						]
					}

				// and then 28 bars of rest or the loop will arse us
				,	{"command": "notes", 
						"data": [
							"Rst 224" // back in sync
						,	"Rst 16" // v2 added hold
						]
					}
				]
		}
	};

