Crystal Hammer v0.1

A Python-assisted conversion to Dittitoy of a CPC Soundtrakker cover of the Amiga classic by Karsten 'Obi' Obarski. The original: demozoo.org/music/164308/

PS: The wrap-over toward the end is wrong, I'll fix that later or leave this as an exercise to the inclined visitor :)

Log in to post a comment.

// Forked from "Arcane FM " by Ollerich
// https://dittytoy.net/ditty/2996ac5e45

// Constants
const TAU = Math.PI * 2;
const sin = Math.sin;
const exp = Math.exp;

// Envelopes
my_env = adsr.create( { attack: 0.1, decay: 0.2, release: 0.2, duration: 10 });

// Synths
const square = synth.def( (phase, env, tick, options) => Math.sign(sin(phase*TAU))*env.value);
const saw = synth.def( (phase, env, tick, options) => ((phase % 1)*2-1) *env.value);
const sinus = synth.def( (phase, env, tick, options) => sin(phase*TAU) *env.value);
const fm = synth.def( class {
    constructor (options) {
        this.phase = 0;
        this.t = 0
        // index of modulation     
        this.iom = options.iom ? options.iom : 13.7; 
        this.mul = options.multiplier ? options.multiplier : 0.5;
    }
    process(note, env, tick, options) {
        // carrier frequency
        const fc = midi_to_hz(note);
        // modulator frequency
        const fm = fc * this.mul;
        // forward time
        this.t += ditty.dt;
        const osc = sin(
            TAU*this.t*fc + this.iom*sin(TAU*this.t*fm) 
        ) * env.value;
        return [osc, osc]; // left, right
    }
}); 
const bassdrum = synth.def( (phase, env, tick, options) => sin(phase*TAU*(tick<0.3?0.5-tick:0)) * env.value);
const snare = synth.def( (phase, env, tick, options) => (
    sin(phase*TAU*(Math.random(tick)))*(tick<options.noise.len?options.noise.factor*options.noise.vol-tick:0) + 
    sin(phase*TAU*(tick<options.sin.len?0.8-tick*1:0)) * 0.4) * 
    env.value, 
    options={
        noise: {
            len: 0.2, factor: 0.5, vol: 0.5
        },
        sin: {
            len: 0.2
        }
    }
);
const hihat = synth.def( (phase, env, tick, options) => (
    (tick<0.05) ? (sin(phase*TAU*Math.random(tick)) * 0.5-tick*4) * env.value : 0
));

class ST128 {
    constructor(options) {
        this.synth = options.synth;
        this.notes = options.notes;
        this.max = this.notes.length;
        this.adsr = options.adsr ? options.adsr : { 
            attack: 0.01, release: 0.25, duration: 0.125, amp: 1.0 };
        this.speed = options.speed ? options.speed : 0.025;
        this.transpose = options.transpose ? options.transpose : 0;
        this.arps = options.arps ? options.arps : [];
        this.pos = 0; 
    }
    process(loopCount) {
        const tpl = this.notes[this.pos++];
        if (this.pos >= this.max) this.pos = 0;

        const speed = this.speed * input.speed * 4;
        this.pause = tpl[0];
        this.note = tpl[1];
        this.adsr.duration = this.pause * (speed * 0.95);
            
        if (this.note > 0)
            this.synth.play(this.note + this.transpose, this.adsr);
        sleep(this.pause * speed);
    }
}

const tracks = [

[[408, 0], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 65], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 65], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [6, 67], [12, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [6, 67], [12, 67], [798, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 65], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [12, 67], [6, 67], [30, 65], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [6, 67], [12, 67], [30, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [48, 67], [6, 67], [12, 67], [12, 67]] ,
[[12, 0], [24, 55], [24, 55], [24, 55], [24, 55], [24, 58], [24, 58], [48, 63], [24, 55], [24, 55], [24, 55], [24, 55], [24, 58], [78, 58], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 51], [36, 63], [12, 51], [36, 63], [12, 53], [36, 65], [12, 53], [36, 65], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 51], [36, 63], [12, 53], [36, 65], [12, 53], [36, 65], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 53], [36, 65], [12, 50], [36, 62], [12, 51], [36, 63], [12, 55], [24, 67], [24, 48], [36, 60], [12, 46], [36, 58], [12, 53], [36, 53], [12, 55], [36, 67], [12, 53], [36, 65], [12, 50], [36, 62], [12, 51], [36, 63], [12, 55], [24, 67], [24, 48], [36, 60], [12, 46], [36, 58], [12, 53], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 51], [36, 63], [12, 51], [36, 63], [12, 53], [36, 65], [12, 53], [36, 65], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 51], [36, 63], [12, 53], [36, 65], [12, 53], [36, 65], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 55], [36, 67], [12, 53], [36, 65], [12, 50], [36, 62], [12, 51], [36, 63], [12, 55], [24, 67], [24, 48], [36, 60], [12, 46], [36, 58], [12, 53], [36, 53], [12, 55], [36, 67], [12, 53], [36, 65], [12, 50], [36, 62], [12, 51], [36, 63], [12, 55], [24, 67], [24, 48], [36, 60], [12, 46], [36, 58], [12, 53], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 65], [12, 55], [36, 55], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 65], [12, 55], [36, 55], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 53], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [24, 51], [24, 51], [36, 63], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [36, 51], [18, 51], [30, 53], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [24, 51], [24, 51], [36, 63], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [36, 51], [18, 51], [798, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 58], [36, 70], [12, 51], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 65], [12, 55], [36, 55], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 53], [12, 55], [36, 67], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 65], [12, 55], [36, 55], [12, 55], [36, 67], [12, 51], [36, 63], [12, 53], [36, 53], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [24, 51], [24, 51], [36, 63], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [36, 51], [18, 51], [30, 53], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [24, 51], [24, 51], [36, 63], [12, 46], [36, 46], [12, 46], [36, 46], [12, 53], [36, 53], [12, 53], [36, 53], [12, 55], [36, 55], [12, 55], [36, 55], [12, 51], [36, 51], [18, 51], [18, 53]] ,
[[6, 79], [0, 79], [6, 86], [0, 86], [6, 82], [0, 82], [6, 84], [0, 84], [6, 84], [0, 84], [6, 82], [0, 82], [6, 86], [0, 86], [6, 79], [0, 79], [6, 77], [6, 77], [6, 79], [0, 79], [6, 84], [0, 84], [6, 82], [6, 82], [6, 84], [12, 84], [6, 86], [0, 86], [6, 87], [0, 87], [6, 89], [0, 89], [6, 86], [0, 86], [6, 84], [0, 84], [6, 77], [6, 77], [6, 82], [6, 82], [6, 84], [12, 84], [6, 82], [0, 82], [6, 84], [6, 84], [6, 79], [0, 79], [6, 86], [0, 86], [6, 82], [0, 82], [6, 84], [0, 84], [6, 84], [0, 84], [6, 82], [0, 82], [6, 86], [0, 86], [6, 79], [0, 79], [6, 77], [6, 77], [6, 79], [0, 79], [6, 84], [0, 84], [6, 82], [6, 82], [6, 84], [6, 84], [6, 87], [0, 87], [6, 87], [0, 87], [6, 86], [0, 86], [6, 86], [0, 86], [6, 84], [0, 84], [6, 84], [0, 84], [6, 82], [0, 82], [6, 77], [0, 77], [6, 84], [0, 84], [6, 84], [0, 84], [6, 82], [0, 82], [6, 81], [0, 81], [6, 79], [0, 79], [6, 77], [0, 77], [6, 74], [0, 74], [12, 82], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [18, 84], [6, 86], [6, 87], [6, 89], [6, 86], [6, 84], [12, 77], [12, 82], [18, 84], [6, 82], [12, 84], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [12, 84], [6, 87], [6, 87], [6, 86], [6, 86], [6, 84], [6, 84], [6, 82], [6, 77], [6, 84], [6, 84], [6, 82], [6, 81], [6, 79], [6, 77], [12, 74], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [18, 84], [6, 86], [6, 87], [6, 89], [6, 86], [6, 84], [12, 77], [12, 82], [18, 84], [6, 82], [12, 84], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [12, 84], [6, 87], [6, 87], [6, 86], [6, 86], [6, 84], [6, 84], [6, 82], [6, 77], [6, 84], [6, 84], [6, 82], [6, 81], [6, 79], [6, 77], [1062, 74], [6, 67], [6, 79], [6, 69], [6, 81], [6, 70], [6, 82], [6, 72], [6, 84], [6, 74], [6, 86], [6, 75], [6, 87], [6, 77], [6, 89], [6, 79], [294, 91], [6, 67], [6, 79], [6, 69], [6, 81], [6, 70], [6, 82], [6, 72], [6, 84], [6, 74], [6, 86], [6, 75], [6, 87], [6, 77], [6, 89], [6, 79], [6, 91], [6, 82], [6, 82], [12, 79], [12, 74], [12, 70], [132, 67], [6, 72], [198, 74], [6, 82], [6, 82], [12, 79], [12, 74], [12, 70], [132, 67], [6, 72], [1254, 74], [6, 67], [6, 79], [6, 69], [6, 81], [6, 70], [6, 82], [6, 72], [6, 84], [6, 74], [6, 86], [6, 75], [6, 87], [6, 77], [6, 89], [6, 79], [294, 91], [6, 67], [6, 79], [6, 69], [6, 81], [6, 70], [6, 82], [6, 72], [6, 84], [6, 74], [6, 86], [6, 75], [6, 87], [6, 77], [6, 89], [6, 79], [6, 91], [6, 82], [6, 82], [12, 79], [12, 74], [12, 70], [132, 67], [6, 72], [198, 74], [6, 82], [6, 82], [12, 79], [12, 74], [12, 70], [132, 67], [6, 72], [2862, 74], [6, 65], [378, 62], [6, 65], [24, 62], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [18, 84], [6, 86], [6, 87], [6, 89], [6, 86], [6, 84], [12, 77], [12, 82], [18, 84], [6, 82], [12, 84], [6, 79], [6, 86], [6, 82], [6, 84], [6, 84], [6, 82], [6, 86], [6, 79], [12, 77], [6, 79], [6, 84], [12, 82], [12, 84], [6, 87], [6, 87], [6, 86], [6, 86], [6, 84], [6, 84], [6, 82], [6, 77], [6, 84], [6, 84], [6, 82], [6, 81], [6, 79], [6, 77], [2670, 74], [6, 65], [378, 62], [6, 65], [6, 62]] ,
[[384, 0], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 72], [0, 87], [12, 72], [12, 72], [12, 70], [0, 87], [12, 72], [12, 72], [0, 87], [12, 72], [12, 70], [0, 86], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [0, 89], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [0, 86], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 72], [0, 87], [12, 72], [12, 72], [12, 70], [0, 87], [12, 72], [12, 72], [0, 87], [12, 72], [12, 70], [0, 86], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [0, 89], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [0, 86], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 72], [0, 86], [12, 70], [12, 72], [12, 69], [0, 84], [12, 65], [12, 62], [12, 67], [0, 82], [12, 69], [12, 70], [12, 69], [12, 70], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 65], [12, 62], [12, 60], [12, 62], [12, 63], [12, 65], [12, 67], [12, 70], [12, 69], [12, 70], [12, 72], [12, 65], [12, 70], [12, 69], [12, 70], [12, 67], [12, 72], [0, 86], [12, 70], [12, 72], [12, 69], [0, 84], [12, 65], [12, 62], [12, 67], [0, 82], [12, 69], [12, 70], [12, 69], [12, 70], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 65], [12, 62], [12, 60], [12, 62], [12, 63], [12, 65], [12, 67], [12, 70], [12, 69], [12, 70], [12, 72], [12, 65], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 72], [0, 87], [12, 72], [12, 72], [12, 70], [0, 87], [12, 72], [12, 72], [0, 87], [12, 72], [12, 70], [0, 86], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [0, 89], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [0, 86], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 72], [0, 87], [12, 72], [12, 72], [12, 70], [0, 87], [12, 72], [12, 72], [0, 87], [12, 72], [12, 70], [0, 86], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [0, 89], [12, 69], [12, 69], [0, 84], [12, 69], [12, 67], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [0, 86], [12, 70], [12, 67], [0, 82], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 67], [12, 62], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 72], [0, 86], [12, 70], [12, 72], [12, 69], [0, 84], [12, 65], [12, 62], [12, 67], [0, 82], [12, 69], [12, 70], [12, 69], [12, 70], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 65], [12, 62], [12, 60], [12, 62], [12, 63], [12, 65], [12, 67], [12, 70], [12, 69], [12, 70], [12, 72], [12, 65], [12, 70], [12, 69], [12, 70], [12, 67], [12, 72], [0, 86], [12, 70], [12, 72], [12, 69], [0, 84], [12, 65], [12, 62], [12, 67], [0, 82], [12, 69], [12, 70], [12, 69], [12, 70], [12, 67], [12, 70], [12, 69], [12, 70], [12, 67], [12, 65], [12, 62], [12, 60], [12, 62], [12, 63], [12, 65], [12, 67], [12, 70], [12, 69], [12, 70], [12, 72], [12, 65], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [12, 89], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [0, 70], [6, 89], [6, 72], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [12, 89], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [0, 70], [6, 89], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [60, 63], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [48, 63], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [60, 63], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [48, 63], [6, 70], [30, 72], [24, 75], [24, 74], [12, 79], [48, 77], [36, 72], [12, 72], [36, 74], [24, 74], [24, 70], [12, 70], [24, 75], [12, 75], [12, 74], [12, 70], [12, 58], [0, 77], [24, 72], [36, 82], [24, 75], [24, 74], [12, 79], [48, 77], [36, 72], [12, 72], [36, 74], [24, 74], [24, 70], [12, 70], [24, 75], [12, 75], [12, 74], [12, 70], [12, 58], [0, 77], [24, 72], [12, 82], [12, 70], [12, 69], [12, 67], [12, 65], [12, 75], [12, 74], [12, 70], [12, 65], [12, 70], [12, 72], [12, 74], [12, 79], [12, 77], [6, 72], [6, 74], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 69], [12, 70], [12, 65], [12, 70], [12, 65], [12, 63], [12, 62], [12, 67], [12, 70], [12, 72], [12, 65], [6, 62], [6, 70], [12, 65], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [12, 89], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [0, 70], [6, 89], [6, 72], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [12, 89], [12, 86], [12, 79], [12, 87], [12, 89], [12, 84], [12, 77], [12, 86], [12, 77], [12, 82], [12, 75], [12, 70], [12, 82], [12, 84], [12, 77], [12, 84], [0, 70], [6, 89], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [60, 63], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [48, 63], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [60, 63], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 72], [12, 70], [6, 72], [6, 74], [6, 70], [42, 72], [6, 70], [6, 72], [6, 74], [6, 74], [12, 72], [12, 74], [6, 72], [12, 74], [6, 74], [12, 72], [12, 74], [12, 70], [12, 75], [12, 74], [12, 70], [48, 63], [6, 70], [30, 72], [24, 75], [24, 74], [12, 79], [48, 77], [36, 72], [12, 72], [36, 74], [24, 74], [24, 70], [12, 70], [24, 75], [12, 75], [12, 74], [12, 70], [12, 58], [0, 77], [24, 72], [36, 82], [24, 75], [24, 74], [12, 79], [48, 77], [36, 72], [12, 72], [36, 74], [24, 74], [24, 70], [12, 70], [24, 75], [12, 75], [12, 74], [12, 70], [12, 58], [0, 77], [24, 72], [24, 82]] ,
[[1872, 0], [6, 67], [6, 67], [6, 69], [6, 69], [6, 70], [6, 70], [6, 72], [1074, 72], [12, 82], [12, 82], [12, 82], [6, 84], [342, 86], [12, 82], [12, 82], [12, 82], [6, 84], [762, 86], [6, 67], [6, 67], [6, 69], [6, 69], [6, 70], [6, 70], [6, 72], [1074, 72], [12, 82], [12, 82], [12, 82], [6, 84], [342, 86], [12, 82], [12, 82], [12, 82], [6, 84], [1182, 86], [6, 70], [762, 72], [6, 70], [654, 72], [12, 82], [24, 87], [12, 87], [12, 86], [24, 82], [12, 70], [0, 77], [12, 77], [276, 82], [12, 82], [24, 87], [12, 87], [12, 86], [24, 82], [12, 70], [0, 77], [12, 77], [1536, 82], [6, 70], [762, 72], [6, 70], [654, 72], [12, 82], [24, 87], [12, 87], [12, 86], [24, 82], [12, 70], [0, 77], [12, 77], [276, 82], [12, 82], [24, 87], [12, 87], [12, 86], [24, 82], [12, 70], [0, 77], [12, 77], [12, 82]] ,
[[1152, 0], [12, 82], [12, 81], [12, 79], [6, 77], [18, 79], [12, 82], [12, 84], [12, 86], [12, 77], [12, 82], [12, 86], [30, 84], [6, 79], [6, 91], [6, 89], [6, 91], [6, 89], [12, 91], [12, 86], [12, 84], [12, 82], [12, 79], [12, 82], [12, 84], [6, 86], [6, 77], [6, 87], [6, 87], [12, 86], [12, 82], [60, 84], [12, 79], [12, 86], [12, 82], [12, 79], [6, 74], [6, 77], [12, 79], [6, 84], [6, 82], [6, 84], [6, 86], [6, 89], [6, 89], [12, 87], [12, 86], [6, 82], [18, 84], [6, 82], [6, 86], [6, 82], [6, 77], [6, 79], [6, 77], [12, 74], [12, 86], [12, 84], [12, 82], [12, 79], [12, 81], [12, 82], [12, 84], [12, 86], [12, 87], [12, 89], [60, 84], [24, 79], [12, 77], [24, 79], [24, 82], [24, 77], [24, 74], [48, 72], [12, 74], [12, 82], [24, 86], [156, 79], [24, 79], [12, 77], [24, 79], [24, 82], [24, 77], [24, 74], [48, 72], [12, 74], [12, 82], [24, 86], [924, 79], [12, 82], [12, 81], [12, 79], [6, 77], [18, 79], [12, 82], [12, 84], [12, 86], [12, 77], [12, 82], [12, 86], [30, 84], [6, 79], [6, 91], [6, 89], [6, 91], [6, 89], [12, 91], [12, 86], [12, 84], [12, 82], [12, 79], [12, 82], [12, 84], [6, 86], [6, 77], [6, 87], [6, 87], [12, 86], [12, 82], [60, 84], [12, 79], [12, 86], [12, 82], [12, 79], [6, 74], [6, 77], [12, 79], [6, 84], [6, 82], [6, 84], [6, 86], [6, 89], [6, 89], [12, 87], [12, 86], [6, 82], [18, 84], [6, 82], [6, 86], [6, 82], [6, 77], [6, 79], [6, 77], [12, 74], [12, 86], [12, 84], [12, 82], [12, 79], [12, 81], [12, 82], [12, 84], [12, 86], [12, 87], [12, 89], [60, 84], [24, 79], [12, 77], [24, 79], [24, 82], [24, 77], [24, 74], [48, 72], [12, 74], [12, 82], [24, 86], [156, 79], [24, 79], [12, 77], [24, 79], [24, 82], [24, 77], [24, 74], [48, 72], [12, 74], [12, 82], [24, 86], [24, 79]] ,
[[1488, 0], [6, 91], [12, 94], [6, 91], [12, 96], [2268, 98], [6, 91], [12, 94], [6, 91], [12, 96], [1932, 98], [36, 70], [12, 69], [36, 70], [12, 69], [36, 67], [12, 62], [36, 72], [12, 74], [84, 70], [36, 77], [12, 75], [12, 74], [24, 70], [24, 72], [36, 70], [12, 69], [36, 70], [12, 69], [36, 67], [12, 62], [36, 72], [12, 74], [84, 70], [36, 77], [12, 75], [12, 74], [24, 70], [24, 72], [96, 86], [96, 84], [36, 86], [36, 84], [24, 82], [48, 75], [48, 72], [72, 74], [12, 75], [84, 77], [12, 79], [12, 81], [24, 82], [24, 84], [24, 86], [24, 82], [96, 75], [96, 86], [96, 84], [36, 86], [36, 84], [24, 82], [48, 75], [48, 72], [72, 74], [12, 75], [84, 77], [12, 79], [12, 81], [24, 82], [24, 84], [24, 86], [24, 82], [96, 75], [0, 70], [36, 65], [60, 63], [84, 72], [12, 67], [96, 70], [0, 67], [96, 51], [0, 70], [36, 65], [60, 63], [84, 72], [12, 67], [96, 70], [0, 67], [480, 51], [36, 70], [12, 69], [36, 70], [12, 69], [36, 67], [12, 62], [36, 72], [12, 74], [84, 70], [36, 77], [12, 75], [12, 74], [24, 70], [24, 72], [36, 70], [12, 69], [36, 70], [12, 69], [36, 67], [12, 62], [36, 72], [12, 74], [84, 70], [36, 77], [12, 75], [12, 74], [24, 70], [24, 72], [96, 86], [96, 84], [36, 86], [36, 84], [24, 82], [48, 75], [48, 72], [72, 74], [12, 75], [84, 77], [12, 79], [12, 81], [24, 82], [24, 84], [24, 86], [24, 82], [96, 75], [96, 86], [96, 84], [36, 86], [36, 84], [24, 82], [48, 75], [48, 72], [72, 74], [12, 75], [84, 77], [12, 79], [12, 81], [24, 82], [24, 84], [24, 86], [24, 82], [96, 75], [0, 70], [36, 65], [60, 63], [84, 72], [12, 67], [96, 70], [0, 67], [96, 51], [0, 70], [36, 65], [60, 63], [84, 72], [12, 67], [96, 70], [0, 67], [0, 51]] ,
[[24, 55], [24, 67], [24, 55], [24, 67], [24, 58], [24, 70], [24, 51], [12, 53], [12, 65], [24, 55], [24, 67], [24, 55], [24, 67], [24, 58], [24, 70], [12, 51], [12, 63], [12, 53], [18, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [42, 67], [6, 51], [24, 63], [6, 51], [12, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [42, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 53], [24, 65], [6, 53], [12, 65], [6, 50], [24, 62], [6, 50], [12, 62], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [18, 67], [6, 60], [18, 48], [6, 48], [12, 60], [6, 46], [24, 58], [6, 46], [12, 58], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 53], [24, 65], [6, 53], [12, 65], [6, 50], [24, 62], [6, 50], [12, 62], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [18, 67], [6, 60], [18, 48], [6, 48], [12, 60], [6, 46], [24, 58], [6, 46], [12, 58], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [42, 67], [6, 51], [24, 63], [6, 51], [12, 63], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [42, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 53], [24, 65], [6, 53], [12, 65], [6, 50], [24, 62], [6, 50], [12, 62], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [18, 67], [6, 60], [18, 48], [6, 48], [12, 60], [6, 46], [24, 58], [6, 46], [12, 58], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 53], [24, 65], [6, 53], [12, 65], [6, 50], [24, 62], [6, 50], [12, 62], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [18, 67], [6, 60], [18, 48], [6, 48], [12, 60], [6, 46], [24, 58], [6, 46], [12, 58], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [42, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [18, 51], [6, 63], [18, 51], [6, 53], [12, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [12, 51], [6, 51], [42, 63], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [18, 51], [6, 63], [18, 51], [6, 53], [12, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [12, 51], [6, 51], [810, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [24, 63], [6, 65], [12, 53], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 55], [12, 67], [6, 58], [24, 70], [6, 58], [12, 70], [6, 51], [42, 63], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [42, 65], [6, 55], [24, 67], [6, 55], [12, 67], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [24, 65], [6, 53], [12, 65], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 51], [12, 63], [6, 53], [42, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [18, 51], [6, 63], [18, 51], [6, 53], [12, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [12, 51], [6, 51], [42, 63], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [18, 51], [6, 63], [18, 51], [6, 53], [12, 65], [6, 46], [24, 58], [6, 58], [12, 46], [6, 46], [24, 58], [6, 58], [12, 46], [6, 53], [24, 65], [6, 65], [12, 53], [6, 53], [24, 65], [6, 65], [12, 53], [6, 55], [24, 67], [6, 67], [12, 55], [6, 55], [24, 67], [6, 53], [12, 65], [6, 51], [24, 63], [6, 63], [12, 51], [6, 51], [6, 63]] ,
[[384, 0], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [816, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70], [48, 70]] ,
[[8436, 0], [6, 67], [378, 67], [6, 67], [3066, 67], [6, 67], [378, 67], [6, 67], [6, 67]] ,
[[8064, 0], [24, 62], [48, 62], [24, 63], [48, 63], [24, 53], [24, 53], [24, 67], [60, 67], [36, 67], [72, 51], [24, 62], [48, 62], [24, 63], [48, 63], [24, 53], [24, 53], [24, 67], [60, 67], [36, 67], [2760, 51], [24, 62], [48, 62], [24, 63], [48, 63], [24, 53], [24, 53], [24, 67], [60, 67], [36, 67], [72, 51], [24, 62], [48, 62], [24, 63], [48, 63], [24, 53], [24, 53], [24, 67], [60, 67], [36, 67], [36, 51]] ,

];

const song = [
    { name: 'Drum 1', synth: snare, notes: tracks[0], 
        adsr: { attack: 0.01, decay: 0.5, sustain: 0.0, amp: 0.9 } 
    },{ name: 'Dingding', synth: sinus, notes: tracks[1], 
        adsr: { attack: 0.01, decay: 0.5, sustain: 0.0, amp: 0.5 }
    },{  name: 'Piano', synth: saw, notes: tracks[2], 
        adsr: { attack: 0.01, decay: .4, sustain: 0.0, amp: 0.3 }, 
    },{ name: 'Vibrato1', synth: fm, iom: 7.23, notes: tracks[3], transpose: -12,
        adsr: { attack: 0.01, decay: 0.3, sustain: 0.0, amp: 0.4 } 
    },{ name: 'Wave', synth: saw, notes: tracks[4], 
        adsr: { attack: 0.01, decay: 0.2, sustain: 0.0, amp: 0.9 } 
    },{ name: 'Vibrato2', synth: saw, notes: tracks[5], 
        adsr: { attack: 0.01, decay: 0.5, sustain: 0.0, amp: 0.5 } 
    },{ name: 'Flute1', synth: saw, notes: tracks[6], 
        adsr: { attack: 0.01, decay: 0.1, sustain: 0.0, amp: 0.9 } 
    },{ name: 'Klick', synth: hihat, notes: tracks[7], 
        adsr: { attack: 0.01, decay: 0.1, sustain: 0, amp: 0.9 }
    },{ name: 'Bassdrum', synth: bassdrum, notes: tracks[8], 
        adsr: { attack: 0.01, decay: 0.2, sustain: 0, amp: 0.9 } 
    },{ name: 'Drum2', synth: snare, notes: tracks[9], 
        adsr: { attack: 0.01, decay: 0.01, sustain: 0, amp: 0.9 } 
    },{ name: 'Zisch', synth: saw, notes: tracks[10], 
        adsr: { attack: 0.01, decay: 0.5, sustain: 0.0, amp: 0.9 } 
    }
];

input.speed = 0.4;

// Play it, Sam!
ditty.bpm = 120;
for (let track of song) {
    loop(ST128, track);
}