-
-
Notifications
You must be signed in to change notification settings - Fork 131
composition.gs
Thomas Tortorini edited this page Jan 17, 2020
·
55 revisions
{
id: "6313f4d6-1298-4ce2-a076-391b3dc12839",
savedAt: 1558306516, // (timestamp in seconds)
duration: 4, // in beats
name: "My first composition",
bpm: 120,
beatsPerMeasure: 4,
stepsPerBeat: 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 },
},
}