( // MAIN LAUNCH (loads necessary files and definitions) var appEnvironment; //push new environment appEnvironment = Environment.make; appEnvironment.push; s.waitForBoot({ ~hash = Date.getDate.hash.asString; // load all files "tkam_musical_data_generator.scd".loadRelative; "tkam_sonifier.scd".loadRelative; "tkam_gui.scd".loadRelative; "tkam_transcriber.scd".loadRelative; ~genAll = {arg seed; ~dUnit = 8.reciprocal; ~musicData = ~genMusicData.value(seed); ~scoreData = ~genScoreData.value(~musicData[0]); ~sectionData = ~musicData[2]; ~patterns = ~genPatterns.value(~musicData[0], ~musicData[1]); }; ~patternProxy = EventPatternProxy.new; ~tempoClock = TempoClock.new(1); ~dir = thisProcess.nowExecutingPath.dirname; "loading app".postln; ~genAll.value(20200525); ~play = Synth.new(\masterPlayerControl_ ++ ~hash); 4.collect({arg p; Synth.new(\clip_ ++ ~hash, [\bin, p + 6, \bus, ~busses[4].index])}); ~generateGUI.value; "ready".postln; // generate all the data /* ~genAll = {arg seed; ~allMusicData = ~genMusicData.value(seed); ~patterns = ~allMusicData[0]; ~scoreData = ~allMusicData[1]; ~sectionOffsets = ~allMusicData[2]; ~currentSection = 0; ~currentSubsection = 0; ~isPlaying = false; }; // set the global variables ~tempoClock = TempoClock.new(60); ~dir = thisProcess.nowExecutingPath.dirname; "loading app".postln; ~genAll.value(20200525); ~play = Synth.new(\masterPlayerControl ++ ~hash); ~sectionOrder = ~patterns.size.collect({arg sec; sec}); ~generateGUI.value; "ready".postln; */ }); appEnvironment.pop; )