| Tao Particles, Lambdakismós |
|
Tao Particles (there are none) is written in three parts for MIDI Piano and took seven months to compose. At first everything was going fabulous. My theories set in a perfect harmonic gesture. Then early one morning while rescuing a mud sparrow that had flown headfirst at my window, it all became perfectly clear. Life is meaningless without purpose. We live not long enough to make a humanistic change necessary for world peace; there are no Tao particles! We are burning embers in a cosmic explosion. A literal flame resides in our hearts and it is best described by Decartes in his Discourse On the Method of Rightly Conducting the Reason and Seeking for the Truth in the Sciences, Part V. Really, an actual flame within the heart!
Recall the story of the great orator Demosthenes standing firm at the Adriatic Sea, his mouth stuffed with sea gems, trying to out-shout the crashing surf. This sure solved Demosthenes' stutter. On an 8X8 Lambdoma matrix there are 43 unique particles out of 64. I arranged the 43 particles in ascending order and applied a tempo/duration for each according to their ratios from the Lambdoma mixture of overtone and undertone partial series ratios. Once these pebbles were placed in my harmonic sorting algorithm they began to stutter. The sound they produce is Lambdakismos Part I, Tao Particles.
Lambdaksimos, Part I Tao Particles (there are none)
REM Lambdoma 8X8 12/8/04 Drew Lesso REM Harmonic Tempi and Pitch Regressions REM This program contains multiple data for separate runs REM Check for changes in rem statements REM Lambdoma original parts for 2x2 (3) 3x3 (7) 4x4 (11) 5x5 (19) 6x6 (23) REM 7x7 (35) 8x8 (43) 9x9 (55) 10x10 (63) 11x11 (83) 12x12 (91) REM 13x13 (115) 14x14 (127) 15x15 (143) 16x16 (159) REM Only use parts up to an including 8X8 CLEAR, 200000& midiopen 10000,2048 DIM midibyte%(6000), data1%(6000), data2%(6000) DIM timestamp&(6000) DIM tempi&(43): REM variable change per tr in DP (43,35,23,19,11,7,3) DIM tone%(43): REM change(43,35,23,19,11,7,3) REM MidiBasic Variables midibyte%=1: timestamp&=1: count%=0: ticklength%=678: time&=0 REM Load MM tempi array expressed in milliseconds. FOR x = 1 TO 43: REM change per run time to (43,35,23,19,11,7,3) READ tempi&(x) NEXT x REM this is 23's DATA 6000,5000,4000,3000,2500,2000,1667,1500,1333,1250,1200,1000 REM this is 23's DATA 833,800,750,667,600,500,400,333,250,200,167 REM this is 19's DATA 5000,4000,3000,2500,2000,1667,1500,1333,1250,1000,800,750,667,600,500,400,333,250,200 REM this is 11's DATA 4000,3000,2000,1500,1333,1000,750,667,500,333,250 REM this is 7's DATA 3000,2000,1500,1000,667,500,333 REM this is 3's DATA 2000,1000,500 REM this is 35's DATA 7000,6000,5000,4000,3500,3000,2500,2333,2000,1750,1667,1500,1400,1333,1250,1200,1167,1000 REM this is 35's DATA 857,833,800,750,714,667,600,571,500,429,400,333,286,250,200,143,167 DATA 8000,7000,6000,5000,4000,3500,3000,2667,2500,2333,2000,1750,1667,1600,1500,1400,1333,1250,1200,1167,1143,1000 REM this is 43's DATA 875,857,833,800,750,714,667,625,600,571,500,429,400,375,333,286,250,200,143,167,125 REM Load tonal array corresponding to tempi. FOR x = 1 TO 43: REM change(43,35,23,19,11,7,3) READ tone%(x) NEXT x REM this is 23's DATA 26,29,33,38,41,45,48,50,52,53,54,57,60,61,62,64,66,69,73,76,81,85,88 REM this is 19's DATA 29,33,38,41,45,48,50,52,53,57,61,62,64,66,69,73,76,81,85 REM this is 11's DATA 33,38,45,50,52,57,62,64,69,76,81 REM this is 7's DATA 38,45,50,57,64,69,76 REM this is 3's DATA 45,57,69 REM this is 35's DATA 23,26,29,33,35,38,41,42,45,47,48,50,51,52,53,54,54,57,60,60 REM this is 35's DATA 61,62,63,64,66,67,69,72,73,76,79,81,85,88,91 REM this is 43's DATA 21,23,26,29,33,35,38,40,41,42,45,47,48,49,50,51,52,53,54,54,55,57,59,60,60 DATA 61,61,62,63,64,64,66,67,69,69,72,73,76,79,81,85,88,91 REM Harmonic Lunch DEFINT number:number=1 DEFINT increment:increment=1 DEFINT location:location=0 DEFINT advance:advance=1 DEFLNG btime:btime=100 FOR x = 1 TO 41: REM change x=1 to (41,33,21,17,9,5,1) REM happyincrements creates the stacking of time/tonal material. GOSUB happyincrements FOR y = 1 TO 43: REM change (43,35,23,19,11,7,3) location=number+increment IF location>43 THEN LET location=location-43: REM change(43,35,23,19,11,7,3) number=location REM Location Location Location REM toggleon midibyte%(advance)=144:timestamp&(advance)=btime btime=timestamp&(advance) REM compseq data1%(advance)=tone%(location) data2%(advance)=67 advance=advance+1 REM toggleoff midibyte%(advance)=128:timestamp&(advance)=tempi&(location)+btime btime=timestamp&(advance)+100: REM distance between attacks,see next line REM DPlamdasenarius 250 tr 1, 100 tr 2 REM Velocity off data1%(advance)=tone%(location) data2%(advance)=0 advance=advance+1 NEXT y NEXT x tracktop%=advance GOSUB play libterm BEEP END happyincrements: increment=increment+1 location=0 number=1 RETURN play: midiport 1: midiport 3 trackindex%=1 upperlimit%=tracktop% midi 0: miditime 0: miditime ticklength%: settime 100: count% = 0 syncstate%=0:tickfactor%=1 midifilter 1,254,254,0 midisync syncstate%,tickfactor% WHILE (trackindex% < upperlimit%) outcount count% WHILE count% > 0: outcount count%: WEND midiout midibyte%(trackindex%), timestamp&(trackindex%) midiout data1%(trackindex%), timestamp&(trackindex%) PRINT data1%(trackindex%), timestamp&(trackindex%) midiout data2%(trackindex%), timestamp&(trackindex%) trackindex%=trackindex% +1 WEND REM Reset outside seq clock syncstate%=0 midisync syncstate%,tickfactor% RETURN |