Skip to content

composition.gs

Thomas Tortorini edited this page Jan 17, 2020 · 55 revisions
{
	id: "6313f4d6-1298-4ce2-a076-391b3dc12839",
	savedAt: 1558306516, // (timestamp in seconds)
	name: "My first composition",
	bpm: 120,
	duration: 4,
	stepsPerBeat: 4,
	beatsPerMeasure: 4,
	buffers: {
		"0": { type: "audio/wav", duration: 1.8111, hash: "V-00000SIZE-HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASH" },
		"1": { type: "audio/mp3", duration: 4.0128, hash: "1-000644840-c3000494dcd794c26b60438edf7f41ecc81a70" },
	},
	effects: {
		"0": {
			order: 0,
			dest: "main",
			type: "filter",
			toggle: true,
			data: {
				type: "lowpass",
				Q: 5,
				gain: -20,
				detune: 0,
				frequency: 500,
			},
		},
	},
	channels: {
		"main": { order: 0, toggle: true, name: "main",   pan: 0, gain: 1 },
		"1":    { order: 1, toggle: true, name: "chan 1", pan: 0, gain: 1, dest: "main" },
		"2":    { order: 2, toggle: true, name: "chan 2", pan: 0, gain: 1, dest: "main" },
		"3":    { order: 3, toggle: true, name: "chan 3", pan: 0, gain: 1, dest: "main" },
		"4":    { order: 4, toggle: true, name: "chan 4", pan: 0, gain: 1, dest: "main" },
	},
	patterns: {
		"0": { order: 0, type: "buffer", name: "drumloop", duration: 4, buffer: "0", dest: "main" },
		"1": { order: 1, type: "buffer", name: "vocal", duration: 4, buffer: "1", dest: "main" },
		"2": { order: 0, type: "keys", name: "melody", duration: 12, synth: "0", keys: "0" },
		"3": { order: 0, type: "drums", name: "drums", duration: 4, drums: "0" },
	},
	synths: {
		"0": {
			dest: "main",
			name: "synth",
			lfo: { toggle: true, type: "sine", delay: 0, attack: .5, amp: 1, speed: 4 },
			oscillators: {
				"0": { order: 0, gain: 1, pan:  0, detune:   0, type: "sine" },
				"1": { order: 1, gain: 1, pan:  1, detune: -50, type: "triangle" },
				"2": { order: 2, gain: 1, pan: -1, detune:  50, type: "sawtooth" },
				"3": { order: 3, gain: 1, pan:  0, detune:   0, type: "square" },
			},
		},
	},
	drumrows: {
		"0": { order: 0, buffer: "0", gain: 1, pan: 0, toggle: false },
		"1": { order: 1, buffer: "1", gain: 1, pan: 0, toggle: true },
		"2": { order: 2, buffer: "2", gain: 1, pan: 0, toggle: true },
		"3": { order: 3, buffer: "3", gain: 1, pan: 0, toggle: true },
	},
	drums: {
		"0": {
			"0": { row: "3", when: 0, gain: 1, pan: 0, lowpass: 0, highpass: 0, ... },
			"1": { row: "1", when: 0, gain: 1, pan: 0, lowpass: 0, highpass: 0, ... },
			"2": { row: "0", when: 0, gain: 1, pan: 0, lowpass: 0, highpass: 0, ... },
		},
	},
	keys: {
		"0": {
			"0": { when: 0,  duration: .25, gain: 1,  pan: 1,  key: 48, selected: true },
			"1": { when: 4,  duration: 2,   gain: .8, pan: -1, key: 49 },
			"2": { when: 8,  duration: 4,   gain: .2, pan: 0,  key: 50, next: "3" },
			"3": { when: 12, duration: 1,   gain: .8, pan: 0,  key: 48, prev: "2", next: "4" },
			"4": { when: 13, duration: 3,   gain: .8, pan: 0,  key: 48, prev: "3" },
		},
	},
	tracks: {
		"0": { order: 0, name: "drum",  toggle: false },
		"1": { order: 1, name: "vocal", toggle: true },
		"2": { order: 2, name: "keys",  toggle: true },
	},
	blocks: {
		"0": { pattern: "0", track: "0", when: 0, offset: 0, duration:  4 },
		"1": { pattern: "0", track: "0", when: 4, offset: 0, duration:  4 },
		"2": { pattern: "0", track: "0", when: 8, offset: 0, duration:  4 },
		"3": { pattern: "1", track: "1", when: 4, offset: 0, duration:  4 },
		"4": { pattern: "1", track: "1", when: 8, offset: 0, duration:  4 },
		"5": { pattern: "2", track: "2", when: 0, offset: 0, duration: 12 },
	},
}
Clone this wiki locally