( // MAIN LAUNCH (loads necessary files and definitions) var appEnvironment; appEnvironment = Environment.make; appEnvironment.push; s.waitForBoot({ // load "cicc_musical_data_generator.scd".loadRelative; "cicc_sonifier.scd".loadRelative; "cicc_gui.scd".loadRelative; "cicc_transcriber.scd".loadRelative; ~genAll = {arg seed; ~allMusicData = ~genMusicData.value(seed); ~patterns = ~allMusicData[0]; ~scoreData = ~allMusicData[1]; ~sectionOffsets = ~allMusicData[2]; ~currentSection = 0; ~currentSubsection = 0; ~isPlaying = false; }; ~dir = thisProcess.nowExecutingPath.dirname; ~genAll.value(20200525); ~play = Synth.new(\masterPlayerControl); ~droneFade = Synth.new(\droneFade); ~autoAdvance = true; ~interludes = false; ~sectionOrder = ~patterns.size.collect({arg sec; sec}); ~generateGUI.value; appEnvironment.pop; }); //counterfeitTranscribe.value(~scoreData); // init /* ~dir = thisProcess.nowExecutingPath.dirname; ~loadedTransform = nil; ~transform = [2, 1, 0, 1, 0, 0, 0]; ~tileMap = ~mapAll.value(6 /*max depth*/, ~transform); ~layoutState = 0; ~tempo = 120; ~dur = 0.125 * (120/~tempo); ~continuousPlay = false; // launch ~launchTileVisualizer.value; ~launchGui.value; */ ) ~dir ~fader = Synth(\crossFade, [\sel, 0, \busA, ~busA.index, \busB, ~busB.index]); ~currentSection = 0 ~play.set(\sel, ~currentSection % 2); ~patterns[~currentSection].play(quant: 0) ~transcribe.value(~scoreData) ~patterns[0].stop ~player = Ptpar(([~sectionOffsets.postln * 0.08, ~patterns].flop.flat ++ [0, ~faderPattern])) ~patterns[0][0] ~fader.play ~player.play ( ~droneFade = Synth.new(\droneFade); ~dronePattern.play ) ~droneFade.set(\gate, 1) ~dronePattern.stop t = Synth.new(\droneOut); t.free t.run ~dir