///////////////////////////////////////////////////////////
//// SEQUENCER / TIMELINE /////////////////////////////////
///////////////////////////////////////////////////////////

(( // TEMPO AND CLOCK DISPLAY  ////////////////

~t1 = TempoClock.new(45/60, 4);
~t2 = TempoClock.new(2, 4);

~postClockInfo = {};
~postClockInfo = {
	("beat:" +((~t1.beats.floor)%~t1.beatsPerBar + 1) ).postln;
	("bar:" +(~t1.bar) ).postln;
	"".postln;
	1
}); //////////////////////////////////////////////

// SET CLOCK INFO PRINTOUT RUNNING

~t1.schedAbs( ~t1.nextBar, {~postClockInfo.value;} );

z = Pseq([ // START SEQUENCER
	/*
	Ppar( [~synth2_pree], 1 ),  // STASIS INTRO - in parallel
	 Ppar( [~synth1_intr, ~synth2_intr], 1 ),  // STASIS INTRO - in parallel
	Rest(1), // MARKER = PREPARE*/

	Ppar( [~synth1_0000, ~synth2_0001,          ~hh_intr, ~kick_one_], 1 ),  // OCTAVES
	Ppar( [~synth1_0001, ~synth2_0002, ~d_intr, ~hh_main, ~kick_intr], 1 ), // OCTAVES
	Ppar( [~synth1_0002, ~synth2_0003, ~d_main, ~hh_main, ~kick_main], 1 ), // ARPPEGIO
	//Ppar( [~synth1_midl, ~synth2_midl, ~d_midl         ], 1 ),  // in parallel
	//Ppar( [~kick_amen, ~snare_amen                               ], 1 ), // DRUM BREAK  - TODO ~drum_break

	Ppar( [~synth1_0004, ~synth2_0004, ~d_main, ~hh_wild, ~kick_main, ~snare_intr], 1 ),
	Ppar( [~synth1_0006, ~synth2_0005, ~d_wild, ~hh_main, ~kick_main, ~snare_main], 1 ),

	Ppar( [~drop_0000, ~drop_0001], 1 ), // 12-tone scale DROP
	Ppar( [~synth1_0003, ~synth2_0005, ~d_wild, ~hh_main, ~kick_main, ~snare_main], 1 ),
	// drop 2 here
	Ppar( [~synth1_0000, ~synth2_0006,  ~hh_intr, ~kick_intr], 1 ),
	Ppar( [~synth1_outr, ~synth2_outr], 2 ),  // chromatic slides

], 1 ).play(~t1, quant:1));


// CONTROLS ----------------------

z.play();
z.pause;
z.stop;
z.start;
z.resume;

///////////////////////////////////
///////////////////////////////////
///////////////////////////////////

// TODO break into subsections to livecode section cues




