├── README.md ├── changelog (updated dec 09 2017) ├── tools └── step_ratio_calculator.scd ├── timewavesynth_script.scd └── resources └── How the Timewave Synthesizer Works /README.md: -------------------------------------------------------------------------------- 1 | # Timewave Synthesizer 2 | This synthesizer is derived from and based upon Terence McKenna's Timewave Zero theory. His theory proposes that the structure of time is a complex wave, and the King Wen sequence of the I Ching is the 64 hexagram code from which the waveform of time is derived; that the King Wen sequence maps the linear progression of the human states of mind, which ultimately substantiates this waveform. This theory is the basis for the well-known novelty computer program he and others had developed. 3 | 4 | How to run: 5 | 6 | - Open and evaluate the "timewavesynth.scd" file in Supercollider IDE to run the synthesizer. Instructions can be found at the top of the file. 7 | 8 | - To download and install the Supercollider IDE - http://supercollider.github.io/download.html 9 | 10 | - The Timewave Synthesizer website - http://timewavesynth.byethost14.com/timewavesynth.html 11 | 12 | 13 | [Example Piece Using Timewave Synthesizer](https://www.youtube.com/watch?v=Nl_1iM6vb7I) 14 | 15 | -------------------------------------------------------------------------------- /changelog (updated dec 09 2017): -------------------------------------------------------------------------------- 1 | Timewave synth changelog 2 | 3 | Dec. 09, 2017 - Merged the "timewavesynth_script.scd" file into the "timewavesynth.scd" file. Added a 2D slider for changing low-pass filter parameters. 4 | 5 | Nov. 21, 2017 - Enabled the option to choose the number of synths playing at one time in the GUI or in the file, all contained within one file. 6 | 7 | Nov. 20, 2017 - Adjusted low-pass filter frequency limit settings, added to settings. 8 | 9 | Nov. 15, 2017 - Fixed bugs for automate functions, adjusted automate function period, and set tolerable low-pass filter frequency limit settings. 10 | 11 | Nov. 08, 2017 - Added feature in synthdefs for mid-timewave sequence events such as randomization of frequencies during run-time. Also added invdividual frequency editor, and changed GUI layout for the added functions. 12 | 13 | Nov. 01, 2017 - Enabled edit saved and starting chords/frequencies. 14 | 15 | Oct. 31, 2017 - Fixed bugs with starting synthdef. Added new low-pass filter input into the GUI. 16 | 17 | Oct. 29, 2017 - Reduced code space for synthdefs. Reduced file size while maintianing existing program functions and adding some inputs in code. 18 | 19 | Oct. 28, 2017 - Added new synthdef settings with step ratios based on 19.47 : 360. Also added options for low-pass filters in synthdefs. 20 | -------------------------------------------------------------------------------- /tools/step_ratio_calculator.scd: -------------------------------------------------------------------------------- 1 | ( 2 | //Advisory: There are generally more effective ways to do what this file does; though it may come in handy in certain situations. 3 | 4 | //To find out the ratio per step for note increments in the inlcine/decline of the King Wen sequence. 5 | //For example, I want the note increment ratio for a KW sequence that has 64 steps(numsteps) and a starting(n1) and ending(n2) 6 | //note ratio difference of 1.6180339887499. 7 | 8 | //Press "ctrl/cmd - enter" within the parenthesis to evaluate 9 | 10 | y = Routine({var a = 1, n1 = 1, n2 = 1.6180339887499, numsteps = 64; 11 | x=1000.do({n = n1; 12 | numsteps.do({n = n*a}); 13 | if(n <= n2, 14 | {a=a+1},{x.stop}); 15 | }); 16 | x=1000.do({n = n1; 17 | numsteps.do({n = n*a}); 18 | if(n >= n2, 19 | {a=a-0.1},{x.stop}); 20 | }); 21 | x=1000.do({n = n1; 22 | numsteps.do({n = n*a}); 23 | if(n <= n2, 24 | {a=a+0.01},{x.stop}); 25 | }); 26 | x=1000.do({n = n1; 27 | numsteps.do({n = n*a}); 28 | if(n >= n2, 29 | {a=a-0.001},{x.stop}); 30 | }); 31 | x=1000.do({n = n1; 32 | numsteps.do({n = n*a}); 33 | if(n <= n2, 34 | {a=a+0.0001},{x.stop}); 35 | }); 36 | x=1000.do({n = n1; 37 | numsteps.do({n = n*a}); 38 | if(n >= n2, 39 | {a=a-0.00001},{x.stop}); 40 | }); 41 | x=1000.do({n = n1; 42 | numsteps.do({n = n*a}); 43 | if(n <= n2, 44 | {a=a+0.000001},{x.stop}); 45 | }); 46 | x=1000.do({n = n1; 47 | numsteps.do({n = n*a}); 48 | if(n >= n2, 49 | {a=a-0.0000001},{x.stop}); 50 | }); 51 | x=1000.do({n = n1; 52 | numsteps.do({n = n*a}); 53 | if(n <= n2, 54 | {a=a+0.00000001},{x.stop}); 55 | }); 56 | x=1000.do({n = n1; 57 | numsteps.do({n = n*a}); 58 | if(n >= n2, 59 | {a=a-0.000000001},{x.stop}); 60 | }); 61 | x=1000.do({n = n1; 62 | numsteps.do({n = n*a}); 63 | if(n <= n2, 64 | {a=a+0.0000000001},{x.stop}); 65 | }); 66 | x=1000.do({n = n1; 67 | numsteps.do({n = n*a}); 68 | if(n >= n2, 69 | {a=a-0.00000000001},{x.stop}); 70 | }); 71 | x=1000.do({n = n1; 72 | numsteps.do({n = n*a}); 73 | if(n <= n2, 74 | {a=a+0.000000000001},{x.stop}); 75 | }); 76 | x=1000.do({n = n1; 77 | numsteps.do({n = n*a}); 78 | if(n >= n2, 79 | {a=a-0.0000000000001},{x.stop}); 80 | }); 81 | x=1000.do({n = n1; 82 | numsteps.do({n = n*a}); 83 | if(n <= n2, 84 | {a=a+0.00000000000001},{x.stop}); 85 | }); 86 | x=1000.do({n = n1; 87 | numsteps.do({n = n*a}); 88 | if(n >= n2, 89 | {a=a-0.000000000000001},{x.stop}); 90 | }); 91 | x=1000.do({n = n1; 92 | numsteps.do({n = n*a}); 93 | if(n <= n2, 94 | {a=a+0.0000000000000001},{x.stop}); 95 | }); 96 | x=1000.do({n = n1; 97 | numsteps.do({n = n*a}); 98 | if(n >= n2, 99 | {a=a-0.00000000000000001},{x.stop}); 100 | }); 101 | x=1000.do({n = n1; 102 | numsteps.do({n = n*a}); 103 | if(n <= n2, 104 | {a=a+0.000000000000000001},{x.stop}); 105 | }); 106 | x=1000.do({n = n1; 107 | numsteps.do({n = n*a}); 108 | if(n >= n2, 109 | {a=a-0.0000000000000000001},{x.stop}); 110 | }); 111 | x=1000.do({n = n1; 112 | numsteps.do({n = n*a}); 113 | if(n <= n2, 114 | {a=a+0.00000000000000000001},{x.stop; y.stop;}); 115 | }); 116 | a.postln; 117 | }).play; 118 | ); 119 | 120 | /* e-mail: ken_brant@ymail.com */ -------------------------------------------------------------------------------- /timewavesynth_script.scd: -------------------------------------------------------------------------------- 1 | //Important Note: You must load the Timewave synthesizer program and run the synth by pressing the 2 | //"synth0" button at least once before this script can run. 3 | 4 | /*Order of execution to run script and record: 5 | 1. Press "Ctrl/Cmd - Enter" anywhere inside the "//1 - LOAD SYNTH FUNCTIONS" parenthesis about 50 lines down, 6 | 2. Click on the same line as "//2 - START RECORDING" just above "//1 - LOAD SYNTH FUNCTIONS" and press "Ctrl/Cmd - Enter", 7 | 3. Press "Ctrl/Cmd - Enter" anywhere inside the "//3 - Routine" parenthesis about 10 lines down... 8 | The recording file location will be found in the post window upon evaluating "s.record;"... 9 | Leave out #2 to run the script without recording... 10 | You can press "Ctrl/Cmd - Period" to stop synth/free the sever. 11 | 12 | You can compose a piece, and find guides for doing so, inside the "//3 - Routine" function. */ 13 | 14 | ((//3 - Routine 15 | r = Routine({/*trace*/ ~st = 0; ~trace = {("event-"++(~st = ~st + 1).asString).postln;}; ~number_of_synths.do(x = 0; {("vol"++(x=x+1)).asSymbol.envirPut(/*volume*/ ~vol)}); 16 | 1.do({ 17 | 18 | //duration of each chord 19 | a = 8; 20 | 21 | //Copy and paste "saved" chords from the "copy" button inside the Timewave synthesizer GUI here: 22 | //Choose to change each duration individually by changing the "a" variable in the code below this line, as well as "synthopen/synthflow/synthslide". 23 | //Also, the amount of frequency values in the arrays must be >= "~number_of_synths". Although, this is done 24 | //automatically when using the generated code and values from the "copy" button in the GUI. "0"'s can be used to fill in empty spots. 25 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 525.7244292648, 646.87931910571, 882.91913643716, 1181.3955692862, 706.55967076687, 711.25161146077, 977.22674582697, 662.50413564615, 0, 0, 0, 0 ].at(x-1))}); ~synthopen.value; ~trace.value; (a).wait; 26 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 1316.2675385788, 1316.2675385788, 658.1337692894, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 27 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 1051.0271787501, 1051.0271787501, 525.51358937505, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 28 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 937.1102649523, 937.1102649523, 937.1102649523, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 29 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 824.55305817848, 824.55305817848, 822.73593638317, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 30 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 824.55305817848, 1037.2062139187, 1037.2062139187, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 31 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 554.31101031015, 554.31101031015, 554.31101031015, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 32 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 521.10543213641, 521.10543213641, 521.10543213641, 521.10543213641, 521.10543213641, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 33 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 525.7244292648, 646.87931910571, 882.91913643716, 1181.3955692862, 706.55967076687, 711.25161146077, 977.22674582697, 662.50413564615, 0, 0, 0, 0 ].at(x-1))}); ~synthopen.value; ~trace.value; (a).wait; 34 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 1316.2675385788, 1316.2675385788, 658.1337692894, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 35 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 1051.0271787501, 1051.0271787501, 525.51358937505, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 36 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 937.1102649523, 937.1102649523, 937.1102649523, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 37 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 824.55305817848, 824.55305817848, 822.73593638317, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 38 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 824.55305817848, 1037.2062139187, 1037.2062139187, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 39 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 1100.8670554563, 1316.2675385788, 554.31101031015, 554.31101031015, 554.31101031015, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 40 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut([ 654.05453931384, 879.03193048766, 941.25430167146, 521.10543213641, 521.10543213641, 521.10543213641, 521.10543213641, 521.10543213641, 0, 0, 0, 0 ].at(x-1))}); ~synthflow.value; ~trace.value; (a).wait; 41 | 42 | //fade out function 43 | 100.do({~number_of_synths.do(x = 0; {("vol"++(x=x+1)).asSymbol.envirPut(("vol"++x).asSymbol.envirGet - (~vol/100))}); ~synthflow.value; 0.1.wait;}); 44 | 45 | //stop everything 46 | ~synthfree.value; 2.wait; s.stopRecording; 47 | ~number_of_synths.do(x = 0; {("vol"++(x=x+1)).asSymbol.envirPut(~vol)}); 48 | 49 | });});); 50 | r.play; 51 | ); 52 | 53 | s.record; //2 - START RECORDING 54 | s.stopRecording; // STOP RECORDING 55 | 56 | (//1 - LOAD SYNTH FUNCTIONS 57 | ~synthopen = { 58 | case 59 | {((~l1a.isRunning == false) and: (~l1a1.isRunning == false)) or: ~l1a1.isRunning == true}{ 60 | if(~l1a1.isRunning == true, { 61 | (1.do({ 62 | s.makeBundle(0, { 63 | (~number_of_synths).do(x = 0; { 64 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.set(\dur, 0)); 65 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.set(\dur, 0)); 66 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.set(\dur, 0)); 67 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.set(\dur, 0)); 68 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.set(\dur, 0)); 69 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.set(\dur, 0)); 70 | }); 71 | }); 72 | });); 73 | }); 74 | 75 | ( 76 | 1.do({ 77 | 6.do(x = 0; {("s"++(x=x+1)).asSymbol.envirPut([\gsineicfld6, \gsineicrld6, \gsineicfld2, \gsineicrld2, \gsineicfld1, \gsineicrld1].at(x-1))}); 78 | case 79 | {~sendreplysynthdef_on == 0}{~number_of_synths.do(x = 0; {("s5_"++(x=x+1)).asSymbol.envirPut(\gsineicfld1)});} 80 | {~sendreplysynthdef_on == 1}{~number_of_synths.do(x = 0; {("s5_"++(x=x+1)).asSymbol.envirPut(\gsineicfld1_f++(x))}); ~sendreply_oscfunc_array.value;}; 81 | s.makeBundle(0, { 82 | (~number_of_synths).do(x = 0; { 83 | ("l"++(x=x+1)++"a").asSymbol.envirPut(Synth(~s1, [\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]).register;); 84 | ("l"++(x)++"b").asSymbol.envirPut(Synth(~s2, [\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 85 | ("l"++(x)++"c").asSymbol.envirPut(Synth(~s3, [\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 86 | ("l"++(x)++"d").asSymbol.envirPut(Synth(~s4, [\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 87 | ("l"++(x)++"e").asSymbol.envirPut(Synth(("s5_"++(x)).asSymbol.envirGet, [\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 88 | ("l"++(x)++"f").asSymbol.envirPut(Synth(~s6, [\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 89 | }); 90 | }); 91 | }); 92 | ); 93 | 94 | if(~l1a1.isRunning == true, { 95 | AppClock.sched(0.161803398875, { 96 | (x = 0; ((Array.fill(~number_of_synths, {[ 97 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.free); 98 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.free); 99 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.free); 100 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.free); 101 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.free); 102 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.free); 103 | ]}).flatten).do(_.free))); ~slideroutine.stop; 104 | }); 105 | }); 106 | } 107 | {~l1a.isRunning == true}{ 108 | (1.do({ 109 | s.makeBundle(0, { 110 | (~number_of_synths).do(x = 0; { 111 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.set(\dur, 0)); 112 | ("l"++(x)++"b").asSymbol.envirGet.do(_.set(\dur, 0)); 113 | ("l"++(x)++"c").asSymbol.envirGet.do(_.set(\dur, 0)); 114 | ("l"++(x)++"d").asSymbol.envirGet.do(_.set(\dur, 0)); 115 | ("l"++(x)++"e").asSymbol.envirGet.do(_.set(\dur, 0)); 116 | ("l"++(x)++"f").asSymbol.envirGet.do(_.set(\dur, 0)); 117 | }); 118 | }); 119 | });); 120 | 121 | ( 122 | 1.do({ 123 | 6.do(x = 0; {("s"++(x=x+1)).asSymbol.envirPut([\gsineicfld6, \gsineicrld6, \gsineicfld2, \gsineicrld2, \gsineicfld1, \gsineicrld1].at(x-1))}); 124 | case 125 | {~sendreplysynthdef_on == 0}{~number_of_synths.do(x = 0; {("s5_"++(x=x+1)).asSymbol.envirPut(\gsineicfld1)});} 126 | {~sendreplysynthdef_on == 1}{~number_of_synths.do(x = 0; {("s5_"++(x=x+1)).asSymbol.envirPut(\gsineicfld1_f++(x))}); ~sendreply_oscfunc_array.value;}; 127 | s.makeBundle(0, { 128 | (~number_of_synths).do(x = 0; { 129 | ("l"++(x=x+1)++"a1").asSymbol.envirPut(Synth(~s1, [\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]).register;); 130 | ("l"++(x)++"b1").asSymbol.envirPut(Synth(~s2, [\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 131 | ("l"++(x)++"c1").asSymbol.envirPut(Synth(~s3, [\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 132 | ("l"++(x)++"d1").asSymbol.envirPut(Synth(~s4, [\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 133 | ("l"++(x)++"e1").asSymbol.envirPut(Synth(("s5_"++(x)).asSymbol.envirGet, [\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 134 | ("l"++(x)++"f1").asSymbol.envirPut(Synth(~s6, [\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet]);); 135 | }); 136 | }); 137 | }); 138 | ); 139 | AppClock.sched(0.161803398875, { 140 | (x = 0; ((Array.fill(~number_of_synths, {[ 141 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.free); 142 | ("l"++(x)++"b").asSymbol.envirGet.do(_.free); 143 | ("l"++(x)++"c").asSymbol.envirGet.do(_.free); 144 | ("l"++(x)++"d").asSymbol.envirGet.do(_.free); 145 | ("l"++(x)++"e").asSymbol.envirGet.do(_.free); 146 | ("l"++(x)++"f").asSymbol.envirGet.do(_.free); 147 | ]}).flatten).do(_.free))); ~slideroutine.stop; 148 | }); 149 | }; 150 | }; 151 | 152 | ~synthflow = { 153 | case 154 | {~l1a1.isRunning == true}{ 155 | (1.do({ 156 | s.makeBundle(0, { 157 | (~number_of_synths).do(x = 0; { 158 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 159 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 160 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 161 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 162 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 163 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 164 | }); 165 | }); 166 | });); 167 | } 168 | {~l1a.isRunning == true} { 169 | (1.do({ 170 | s.makeBundle(0, { 171 | (~number_of_synths).do(x = 0; { 172 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 173 | ("l"++(x)++"b").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 174 | ("l"++(x)++"c").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 175 | ("l"++(x)++"d").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 176 | ("l"++(x)++"e").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 177 | ("l"++(x)++"f").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 178 | }); 179 | }); 180 | });); 181 | }; 182 | }; 183 | 184 | ~synthslide = { 185 | case 186 | {~l1a1.isRunning == true}{( 187 | ~slideroutine = Routine({1.do({ 188 | ~slidedo.do({~slidecount=~slidecount-1; 189 | ( 190 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut(("f"++(x)).asSymbol.envirGet + ("sf"++(x)).asSymbol.envirGet)}); 191 | s.makeBundle(0, { 192 | (~number_of_synths).do(x = 0; { 193 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 194 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 195 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 196 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 197 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 198 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 199 | }); 200 | }); 201 | ); 202 | 203 | (~slidetime/~slidedo).wait;}); 204 | });}).play;);} 205 | {~l1a.isRunning == true} {( 206 | ~slideroutine = Routine({1.do({ 207 | ~slidedo.do({~slidecount=~slidecount-1; 208 | ( 209 | ~number_of_synths.do(x = 0; {("f"++(x=x+1)).asSymbol.envirPut(("f"++(x)).asSymbol.envirGet + ("sf"++(x)).asSymbol.envirGet)}); 210 | s.makeBundle(0, { 211 | (~number_of_synths).do(x = 0; { 212 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 213 | ("l"++(x)++"b").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 214 | ("l"++(x)++"c").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 215 | ("l"++(x)++"d").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd3, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 216 | ("l"++(x)++"e").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 217 | ("l"++(x)++"f").asSymbol.envirGet.do(_.set(\dur, ("f"++(x)).asSymbol.envirGet/~icd6, \lpfl, ~lpfl, \lpf_rq, ~lpf_rq, \vol, ("vol"++(x)).asSymbol.envirGet)); 218 | }); 219 | }); 220 | 221 | ); 222 | 223 | (~slidetime/~slidedo).wait;}); 224 | });}).play;);}; 225 | }; 226 | 227 | 228 | ~synthpause = {( 229 | case 230 | {~l1a1.isRunning == true}{ 231 | (1.do({ 232 | s.makeBundle(0, { 233 | (~number_of_synths).do(x = 0; { 234 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.set(\dur, 0)); 235 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.set(\dur, 0)); 236 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.set(\dur, 0)); 237 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.set(\dur, 0)); 238 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.set(\dur, 0)); 239 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.set(\dur, 0)); 240 | }); 241 | }); 242 | });); 243 | } 244 | {~l1a.isRunning == true} { 245 | (1.do({ 246 | s.makeBundle(0, { 247 | (~number_of_synths).do(x = 0; { 248 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.set(\dur, 0)); 249 | ("l"++(x)++"b").asSymbol.envirGet.do(_.set(\dur, 0)); 250 | ("l"++(x)++"c").asSymbol.envirGet.do(_.set(\dur, 0)); 251 | ("l"++(x)++"d").asSymbol.envirGet.do(_.set(\dur, 0)); 252 | ("l"++(x)++"e").asSymbol.envirGet.do(_.set(\dur, 0)); 253 | ("l"++(x)++"f").asSymbol.envirGet.do(_.set(\dur, 0)); 254 | }); 255 | }); 256 | });); 257 | }; 258 | ); 259 | }; 260 | 261 | ~synthfree = { 262 | ( 263 | case 264 | {~l1a1.isRunning == true}{ 265 | (1.do({ 266 | (~number_of_synths).do(x = 0; { 267 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.set(\dur, 0)); 268 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.set(\dur, 0)); 269 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.set(\dur, 0)); 270 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.set(\dur, 0)); 271 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.set(\dur, 0)); 272 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.set(\dur, 0)); 273 | }); 274 | });); 275 | AppClock.sched(0.161803398875, { 276 | (x = 0; ((Array.fill(~number_of_synths, {[ 277 | ("l"++(x=x+1)++"a1").asSymbol.envirGet.do(_.free); 278 | ("l"++(x)++"b1").asSymbol.envirGet.do(_.free); 279 | ("l"++(x)++"c1").asSymbol.envirGet.do(_.free); 280 | ("l"++(x)++"d1").asSymbol.envirGet.do(_.free); 281 | ("l"++(x)++"e1").asSymbol.envirGet.do(_.free); 282 | ("l"++(x)++"f1").asSymbol.envirGet.do(_.free); 283 | ]}).flatten).do(_.free))); ~slideroutine.stop; 284 | }); 285 | } 286 | {~l1a.isRunning == true}{ 287 | (1.do({ 288 | (~number_of_synths).do(x = 0; { 289 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.set(\dur, 0)); 290 | ("l"++(x)++"b").asSymbol.envirGet.do(_.set(\dur, 0)); 291 | ("l"++(x)++"c").asSymbol.envirGet.do(_.set(\dur, 0)); 292 | ("l"++(x)++"d").asSymbol.envirGet.do(_.set(\dur, 0)); 293 | ("l"++(x)++"e").asSymbol.envirGet.do(_.set(\dur, 0)); 294 | ("l"++(x)++"f").asSymbol.envirGet.do(_.set(\dur, 0)); 295 | }); 296 | });); 297 | AppClock.sched(0.161803398875, { 298 | (x = 0; ((Array.fill(~number_of_synths, {[ 299 | ("l"++(x=x+1)++"a").asSymbol.envirGet.do(_.free); 300 | ("l"++(x)++"b").asSymbol.envirGet.do(_.free); 301 | ("l"++(x)++"c").asSymbol.envirGet.do(_.free); 302 | ("l"++(x)++"d").asSymbol.envirGet.do(_.free); 303 | ("l"++(x)++"e").asSymbol.envirGet.do(_.free); 304 | ("l"++(x)++"f").asSymbol.envirGet.do(_.free); 305 | ]}).flatten).do(_.free))); ~slideroutine.stop; 306 | }); 307 | }; 308 | ); 309 | }; 310 | ); 311 | 312 | /* e-mail: ken_brant@ymail.com */ -------------------------------------------------------------------------------- /resources/How the Timewave Synthesizer Works: -------------------------------------------------------------------------------- 1 | How the Timewave Synth Works 2 | 3 | 4 | The Timewave synthesizer is modeled after the complex wave of time, derived from the King Wen sequence of the I Ching. Like the timewave, at its core, the synthesizer is programmed to play sequential notes which follow the layout of the 64 hexagrams found in the King Wen sequence. It does this by starting with an array, or chord, of six identical notes, and following the binary broken/non-broken line system of the King Wen sequence, it uses geometry related to musical intervals to determine how the appropriate 0 and 1 values of the hexagram are translated into notes in the six note array or chord. It was found within musical geometry that the opposite of a note in a harmonisphere(as shown on Timewave Synth website), a straight line across, is the interval of the diminished fifth. This is otherwise known as the devil's fifth, or the tritone. The synthesizer uses this interval as the binary relationship which follows the broken/non-broken line binary system in the King Wen sequence. It uses this interval to emulate the King Wen sequence by either mutiplying or dividing a pitch's frequency by the numeric ratio of the dim5th interval from each array of six notes to the next, giving us a sequence of chords which "sounds out" the King Wen sequence in tones. This sequence is reversed and played over the forward sequence in sync. 5 | 6 | In the first setting, at each end of a timewave cycle - or King Wen sequence - the value of the root notes are shifted upwards by the phi ratio (used in the "psine" setting) or the ratio of 19.47:360 (used in "hsine" setting) into a new musical key. In the second setting, [like in the King Wen sequence] the nine instances where all lines in the hexagram change to its opposite are used as points in the sequence to shift upwards the root notes into a new musical key, cumulating in a root note shift of phi or 19.47:360 by the end of the timewave cycle (like in the first setting). In the third setting, every step in the King Wen sequence is used as a note shift, cumulating in a root note shift of phi or 19.47:360 by the end of the timewave cycle (like in the other settings). 7 | 8 | Applying these into a trigramatic wave-form of macro cycles resembling a timewave at frequencies of mutliples of 1/1, 1/3, and 1/6, running both forwards and backwards, a timewave may be heard in tones. 9 | 10 | 11 | The Interpreted King Wen Sequence... 12 | 13 | NOTE: "/~bi" and "*~bi" represent the broken/non-broken line changes in the King Wen Sequence, and the "*~n1", for the first and third settings, or "*~n(1-9)", for the second setting, are the instances resulting in key change. In older versions, "~fth" was in the place of "~bi" and "n1-n9" was in place of "~n1-~n9" - but they are still the same values. 14 | 15 | 16 | (#a,b,c,d,e,f = /*[ 128.43436842029,128.43436842029,128.43436842029,128.43436842029,128.43436842029,128.43436842029 ]*/ 17 | [ ~basefreq,~basefreq,~basefreq,~basefreq,~basefreq,~basefreq ]; 18 | ~a = a; ~b = b; ~c =c; ~d = d; ~e = e;~f=f;); 19 | 20 | ~fth = 1.4142135623729; 21 | ~bi = ~fth; (~bi = "binary interval" - intverval of note change to a hexagram line's opposite in King Wen sequence) 22 | 23 | 24 | (The First Setting) 25 | 26 | /*1*/ #a,b,c,d,e,f=[ ~a,~b,~c,~d,~e,~f ], 27 | /*2*/ [ a = a/~bi, b = b/~bi, c = c/~bi, d = d/~bi, e = e/~bi, f = f/~bi ], 28 | /*3*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f*~bi ], 29 | /*4*/ [ a = a*~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f/~bi ], 30 | /*5*/ [ a = a/~bi, b = b*~bi, c = c, d = d*~bi, e = e, f = f*~bi ], 31 | /*6*/ [ a = a*~bi, b = b, c = c*~bi, d = d/~bi, e = e, f = f/~bi ], 32 | /*7*/ [ a = a/~bi, b = b/~bi, c = c/~bi, d = d, e = e, f = f ], 33 | /*8*/ [ a = a, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 34 | /*9*/ [ a = a*~bi, b = b, c = c, d = d*~bi, e = e*~bi, f = f*~bi ], 35 | /*10*/ [ a = a, b = b, c = c*~bi, d = d/~bi, e = e, f = f ], 36 | /*11*/ [ a = a/~bi, b = b/~bi, c = c/~bi, d = d*~bi, e = e, f = f ], 37 | /*12*/ [ a = a*~bi, b = b*~bi, c = c*~bi, d = d/~bi, e = e/~bi, f = f/~bi ], 38 | /*13*/ [ a = a, b = b, c = c, d = d*~bi, e = e, f = f*~bi ], 39 | /*14*/ [ a = a, b = b/~bi, c = c, d = d, e = e*~bi, f = f ], 40 | /*15*/ [ a = a/~bi, b = b, c = c/~bi, d = d, e = e/~bi, f = f/~bi ], 41 | /*16*/ [ a = a, b = b, c = c*~bi, d = d/~bi, e = e, f = f ], 42 | /*17*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f*~bi ], 43 | /*18*/ [ a = a*~bi, b = b/~bi, c = c/~bi, d = d*~bi, e = e*~bi, f = f/~bi ], 44 | /*19*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e, f = f*~bi ], 45 | /*20*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e/~bi, f = f/~bi ], 46 | /*21*/ [ a = a, b = b/~bi, c = c*~bi, d = d, e = e, f = f*~bi ], 47 | /*22*/ [ a = a, b = b, c = c/~bi, d = d*~bi, e = e, f = f ], 48 | /*23*/ [ a = a, b = b, c = c, d = d/~bi, e = e, f = f/~bi ], 49 | /*24*/ [ a = a/~bi, b = b, c = c, d = d, e = e, f = f*~bi ], 50 | /*25*/ [ a = a*~bi, b = b*~bi, c = c*~bi, d = d, e = e, f = f ], 51 | /*26*/ [ a = a, b = b/~bi, c = c/~bi, d = d*~bi, e = e*~bi, f = f ], 52 | /*27*/ [ a = a, b = b, c = c, d = d/~bi, e = e/~bi, f = f ], 53 | /*28*/ [ a = a/~bi, b = b*~bi, c = c*~bi, d = d*~bi, e = e*~bi, f = f/~bi ], 54 | /*29*/ [ a = a, b = b, c = c/~bi, d = d/~bi, e = e, f = f ], 55 | /*30*/ [ a = a*~bi, b = b/~bi, c = c*~bi, d = d*~bi, e = e/~bi, f = f*~bi ], 56 | /*31*/ [ a = a/~bi, b = b*~bi, c = c, d = d, e = e, f = f/~bi ], 57 | /*32*/ [ a = a, b = b/~bi, c = c, d = d, e = e*~bi, f = f ], 58 | /*33*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 59 | /*34*/ [ a = a/~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f*~bi ], 60 | /*35*/ [ a = a*~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f/~bi ], 61 | /*36*/ [ a = a/~bi, b = b, c = c/~bi, d = d*~bi, e = e, f = f*~bi ], 62 | /*37*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e, f = f ], 63 | /*38*/ [ a = a, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f ], 64 | /*39*/ [ a = a/~bi, b = b*~bi, c = c/~bi, d = d*~bi, e = e/~bi, f = f/~bi ], 65 | /*40*/ [ a = a, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f ], 66 | /*41*/ [ a = a*~bi, b = b, c = c/~bi, d = d, e = e, f = f*~bi ], 67 | /*42*/ [ a = a, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 68 | /*43*/ [ a = a/~bi, b = b, c = c*~bi, d = d*~bi, e = e*~bi, f = f ], 69 | /*44*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f/~bi ], 70 | /*45*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f ], 71 | /*46*/ [ a = a, b = b/~bi, c = c/~bi, d = d*~bi, e = e*~bi, f = f ], 72 | /*47*/ [ a = a, b = b*~bi, c = c*~bi, d = d/~bi, e = e, f = f ], 73 | /*48*/ [ a = a, b = b, c = c/~bi, d = d*~bi, e = e, f = f ], 74 | /*49*/ [ a = a, b = b, c = c*~bi, d = d, e = e/~bi, f = f*~bi ], 75 | /*50*/ [ a = a*~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f/~bi ], 76 | /*51*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f*~bi ], 77 | /*52*/ [ a = a*~bi, b = b, c = c/~bi, d = d*~bi, e = e, f = f/~bi ], 78 | /*53*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f ], 79 | /*54*/ [ a = a/~bi, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f*~bi ], 80 | /*55*/ [ a = a, b = b, c = c, d = d*~bi, e = e/~bi, f = f ], 81 | /*56*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f/~bi ], 82 | /*57*/ [ a = a, b = b*~bi, c = c/~bi, d = d, e = e*~bi, f = f ], 83 | /*58*/ [ a = a/~bi, b = b, c = c*~bi, d = d/~bi, e = e, f = f*~bi ], 84 | /*59*/ [ a = a*~bi, b = b, c = c/~bi, d = d, e = e, f = f/~bi ], 85 | /*60*/ [ a = a/~bi, b = b, c = c, d = d, e = e, f = f*~bi ], 86 | /*61*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f ], 87 | /*62*/ [ a = a/~bi, b = b/~bi, c = c*~bi, d = d*~bi, e = e/~bi, f = f/~bi ], 88 | /*63*/ [ a = a, b = b*~bi, c = c/~bi, d = d, e = e, f = f*~bi ], 89 | /*64*/ [ a = a*~bi, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f/~bi ] 90 | 91 | /*1*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1*~bi, e = e*~n1, f = f*~n1*~bi ],... 92 | 93 | 94 | (The Second Setting) 95 | 96 | /*1*/ #a,b,c,d,e,f=[ ~a,~b,~c,~d,~e,~f ], 97 | /*2*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 98 | /*3*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f*~bi ], 99 | /*4*/ [ a = a*~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f/~bi ], 100 | /*5*/ [ a = a/~bi, b = b*~bi, c = c, d = d*~bi, e = e, f = f*~bi ], 101 | /*6*/ [ a = a*~bi, b = b, c = c*~bi, d = d/~bi, e = e, f = f/~bi ], 102 | /*7*/ [ a = a/~bi, b = b/~bi, c = c/~bi, d = d, e = e, f = f ], 103 | /*8*/ [ a = a, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 104 | /*9*/ [ a = a*~bi, b = b, c = c, d = d*~bi, e = e*~bi, f = f*~bi ], 105 | /*10*/ [ a = a, b = b, c = c*~bi, d = d/~bi, e = e, f = f ], 106 | /*11*/ [ a = a/~bi, b = b/~bi, c = c/~bi, d = d*~bi, e = e, f = f ], 107 | /*12*/ [ a = a*~n2*~bi, b = b*~n2*~bi, c = c*~n2*~bi, d = d*~n2/~bi, e = e*~n2/~bi, f = f*~n2/~bi ], 108 | /*13*/ [ a = a, b = b, c = c, d = d*~bi, e = e, f = f*~bi ], 109 | /*14*/ [ a = a, b = b/~bi, c = c, d = d, e = e*~bi, f = f ], 110 | /*15*/ [ a = a/~bi, b = b, c = c/~bi, d = d, e = e/~bi, f = f/~bi ], 111 | /*16*/ [ a = a, b = b, c = c*~bi, d = d/~bi, e = e, f = f ], 112 | /*17*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f*~bi ], 113 | /*18*/ [ a = a*~n3*~bi, b = b*~n3/~bi, c = c*~n3/~bi, d = d*~n3*~bi, e = e*~n3*~bi, f = f*~n3/~bi ], 114 | /*19*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e, f = f*~bi ], 115 | /*20*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e/~bi, f = f/~bi ], 116 | /*21*/ [ a = a, b = b/~bi, c = c*~bi, d = d, e = e, f = f*~bi ], 117 | /*22*/ [ a = a, b = b, c = c/~bi, d = d*~bi, e = e, f = f ], 118 | /*23*/ [ a = a, b = b, c = c, d = d/~bi, e = e, f = f/~bi ], 119 | /*24*/ [ a = a/~bi, b = b, c = c, d = d, e = e, f = f*~bi ], 120 | /*25*/ [ a = a*~bi, b = b*~bi, c = c*~bi, d = d, e = e, f = f ], 121 | /*26*/ [ a = a, b = b/~bi, c = c/~bi, d = d*~bi, e = e*~bi, f = f ], 122 | /*27*/ [ a = a, b = b, c = c, d = d/~bi, e = e/~bi, f = f ], 123 | /*28*/ [ a = a*~n4/~bi, b = b*~n4*~bi, c = c*~n4*~bi, d = d*~n4*~bi, e = e*~n4*~bi, f = f*~n4/~bi ], 124 | /*29*/ [ a = a, b = b, c = c/~bi, d = d/~bi, e = e, f = f ], 125 | /*30*/ [ a = a*~n5*~bi, b = b*~n5/~bi, c = c*~n5*~bi, d = d*~n5*~bi, e = e*~n5/~bi, f = f*~n5*~bi ], 126 | /*31*/ [ a = a/~bi, b = b*~bi, c = c, d = d, e = e, f = f/~bi ], 127 | /*32*/ [ a = a, b = b/~bi, c = c, d = d, e = e*~bi, f = f ], 128 | /*33*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 129 | /*34*/ [ a = a/~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f*~bi ], 130 | /*35*/ [ a = a*~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f/~bi ], 131 | /*36*/ [ a = a/~bi, b = b, c = c/~bi, d = d*~bi, e = e, f = f*~bi ], 132 | /*37*/ [ a = a*~bi, b = b*~bi, c = c, d = d, e = e, f = f ], 133 | /*38*/ [ a = a, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f ], 134 | /*39*/ [ a = a*~n6/~bi, b = b*~n6*~bi, c = c*~n6/~bi, d = d*~n6*~bi, e = e*~n6/~bi, f = f*~n6/~bi ], 135 | /*40*/ [ a = a, b = b/~bi, c = c*~bi, d = d/~bi, e = e*~bi, f = f ], 136 | /*41*/ [ a = a*~bi, b = b, c = c/~bi, d = d, e = e, f = f*~bi ], 137 | /*42*/ [ a = a, b = b*~bi, c = c, d = d, e = e/~bi, f = f ], 138 | /*43*/ [ a = a/~bi, b = b, c = c*~bi, d = d*~bi, e = e*~bi, f = f ], 139 | /*44*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f/~bi ], 140 | /*45*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f ], 141 | /*46*/ [ a = a, b = b/~bi, c = c/~bi, d = d*~bi, e = e*~bi, f = f ], 142 | /*47*/ [ a = a, b = b*~bi, c = c*~bi, d = d/~bi, e = e, f = f ], 143 | /*48*/ [ a = a, b = b, c = c/~bi, d = d*~bi, e = e, f = f ], 144 | /*49*/ [ a = a, b = b, c = c*~bi, d = d, e = e/~bi, f = f*~bi ], 145 | /*50*/ [ a = a*~bi, b = b/~bi, c = c, d = d, e = e*~bi, f = f/~bi ], 146 | /*51*/ [ a = a/~bi, b = b, c = c, d = d/~bi, e = e/~bi, f = f*~bi ], 147 | /*52*/ [ a = a*~bi, b = b, c = c/~bi, d = d*~bi, e = e, f = f/~bi ], 148 | /*53*/ [ a = a, b = b*~bi, c = c, d = d, e = e, f = f ], 149 | /*54*/ [ a = a*~n7/~bi, b = b*~n7/~bi, c = c*~n7*~bi, d = d*~n7/~bi, e = e*~n7*~bi, f = f*~n7*~bi ], 150 | /*55*/ [ a = a, b = b, c = c, d = d*~bi, e = e/~bi, f = f ], 151 | /*56*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f/~bi ], 152 | /*57*/ [ a = a, b = b*~bi, c = c/~bi, d = d, e = e*~bi, f = f ], 153 | /*58*/ [ a = a/~bi, b = b, c = c*~bi, d = d/~bi, e = e, f = f*~bi ], 154 | /*59*/ [ a = a*~bi, b = b, c = c/~bi, d = d, e = e, f = f/~bi ], 155 | /*60*/ [ a = a/~bi, b = b, c = c, d = d, e = e, f = f*~bi ], 156 | /*61*/ [ a = a*~bi, b = b, c = c, d = d, e = e, f = f ], 157 | /*62*/ [ a = a*~n8/~bi, b = b*~n8/~bi, c = c*~n8*~bi, d = d*~n8*~bi, e = e*~n8/~bi, f = f*~n8/~bi ], 158 | /*63*/ [ a = a, b = b*~bi, c = c/~bi, d = d, e = e, f = f*~bi ], 159 | /*64*/ [ a = a*~n9*~bi, b = b*~n9/~bi, c = c*~n9*~bi, d = d*~n9/~bi, e = e*~n9*~bi, f = f*~n9/~bi ] 160 | 161 | /*1*/ [ a = a, b = b*~bi, c = c, d = d*~bi, e = e, f = f*~bi ],... 162 | 163 | 164 | (The Third Setting) 165 | 166 | /*1*/ #a,b,c,d,e,f=[ ~a,~b,~c,~d,~e,~f ], 167 | /*2*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 168 | /*3*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 169 | /*4*/ [ a = a*~n1*~bi, b = b*~n1/~bi, c = c*~n1, d = d*~n1, e = e*~n1*~bi, f = f*~n1/~bi ], 170 | /*5*/ [ a = a*~n1/~bi, b = b*~n1*~bi, c = c*~n1, d = d*~n1*~bi, e = e*~n1, f = f*~n1*~bi ], 171 | /*6*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1/~bi ], 172 | /*7*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1, e = e*~n1, f = f*~n1 ], 173 | /*8*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1/~bi, f = f*~n1 ], 174 | /*9*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1*~bi ], 175 | /*10*/ [ a = a*~n1, b = b*~n1, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1 ], 176 | /*11*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1, f = f*~n1 ], 177 | /*12*/ [ a = a*~n1*~bi, b = b*~n1*~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 178 | /*13*/ [ a = a*~n1, b = b*~n1, c = c*~n1, d = d*~n1*~bi, e = e*~n1, f = f*~n1*~bi ], 179 | /*14*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1, d = d*~n1, e = e*~n1*~bi, f = f*~n1 ], 180 | /*15*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1/~bi, d = d*~n1, e = e*~n1/~bi, f = f*~n1/~bi ], 181 | /*16*/ [ a = a*~n1, b = b*~n1, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1 ], 182 | /*17*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 183 | /*18*/ [ a = a*~n1*~bi, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1/~bi ], 184 | /*19*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1, f = f*~n1*~bi ], 185 | /*20*/ [ a = a*~n1*~bi, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1/~bi, f = f*~n1/~bi ], 186 | /*21*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 187 | /*22*/ [ a = a*~n1, b = b*~n1, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1, f = f*~n1 ], 188 | /*23*/ [ a = a*~n1, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1, f = f*~n1/~bi ], 189 | /*24*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 190 | /*25*/ [ a = a*~n1*~bi, b = b*~n1*~bi, c = c*~n1*~bi, d = d*~n1, e = e*~n1, f = f*~n1 ], 191 | /*26*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1 ], 192 | /*27*/ [ a = a*~n1, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1 ], 193 | /*28*/ [ a = a*~n1/~bi, b = b*~n1*~bi, c = c*~n1*~bi, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1/~bi ], 194 | /*29*/ [ a = a*~n1, b = b*~n1, c = c*~n1/~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1 ], 195 | /*30*/ [ a = a*~n1*~bi, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1*~bi, e = e*~n1/~bi, f = f*~n1*~bi ], 196 | /*31*/ [ a = a*~n1/~bi, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1/~bi ], 197 | /*32*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1, d = d*~n1, e = e*~n1*~bi, f = f*~n1 ], 198 | /*33*/ [ a = a*~n1*~bi, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1/~bi, f = f*~n1 ], 199 | /*34*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1, d = d*~n1, e = e*~n1*~bi, f = f*~n1*~bi ], 200 | /*35*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 201 | /*36*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1, f = f*~n1*~bi ], 202 | /*37*/ [ a = a*~n1*~bi, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1 ], 203 | /*38*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1*~bi, f = f*~n1 ], 204 | /*39*/ [ a = a*~n1/~bi, b = b*~n1*~bi, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 205 | /*40*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1*~bi, f = f*~n1 ], 206 | /*41*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1/~bi, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 207 | /*42*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1/~bi, f = f*~n1 ], 208 | /*43*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1*~bi, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1 ], 209 | /*44*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1/~bi ], 210 | /*45*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1 ], 211 | /*46*/ [ a = a*~n1, b = b*~n1/~bi, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1*~bi, f = f*~n1 ], 212 | /*47*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1 ], 213 | /*48*/ [ a = a*~n1, b = b*~n1, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1, f = f*~n1 ], 214 | /*49*/ [ a = a*~n1, b = b*~n1, c = c*~n1*~bi, d = d*~n1, e = e*~n1/~bi, f = f*~n1*~bi ], 215 | /*50*/ [ a = a*~n1*~bi, b = b*~n1/~bi, c = c*~n1, d = d*~n1, e = e*~n1*~bi, f = f*~n1/~bi ], 216 | /*51*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1, d = d*~n1/~bi, e = e*~n1/~bi, f = f*~n1*~bi ], 217 | /*52*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1/~bi, d = d*~n1*~bi, e = e*~n1, f = f*~n1/~bi ], 218 | /*53*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1 ], 219 | /*54*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1*~bi, f = f*~n1*~bi ], 220 | /*55*/ [ a = a*~n1, b = b*~n1, c = c*~n1, d = d*~n1*~bi, e = e*~n1/~bi, f = f*~n1 ], 221 | /*56*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1/~bi ], 222 | /*57*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1/~bi, d = d*~n1, e = e*~n1*~bi, f = f*~n1 ], 223 | /*58*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1, f = f*~n1*~bi ], 224 | /*59*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1/~bi, d = d*~n1, e = e*~n1, f = f*~n1/~bi ], 225 | /*60*/ [ a = a*~n1/~bi, b = b*~n1, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 226 | /*61*/ [ a = a*~n1*~bi, b = b*~n1, c = c*~n1, d = d*~n1, e = e*~n1, f = f*~n1 ], 227 | /*62*/ [ a = a*~n1/~bi, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1*~bi, e = e*~n1/~bi, f = f*~n1/~bi ], 228 | /*63*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1/~bi, d = d*~n1, e = e*~n1, f = f*~n1*~bi ], 229 | /*64*/ [ a = a*~n1*~bi, b = b*~n1/~bi, c = c*~n1*~bi, d = d*~n1/~bi, e = e*~n1*~bi, f = f*~n1/~bi ] 230 | 231 | /*1*/ [ a = a*~n1, b = b*~n1*~bi, c = c*~n1, d = d*~n1*~bi, e = e*~n1, f = f*~n1*~bi ],... 232 | --------------------------------------------------------------------------------