Tuesday, 1 November 2016

Happy Birthday to you -its my birthday and I'll ChucK if I want to

[100, 1, 
0,4,0,2, 43,1,0,2, 43,1,0,2, 45,2,0,2, 43,2,0,2, 48,2,0,2, 47,4,0,2, 
0,4,0,2, 43,1,0,2, 43,1,0,2, 45,2,0,2, 43,2,0,2, 50,2,0,2, 48,4,0,2,
0,4,0,2, 43,1,0,2, 43,1,0,2, 55,2,0,2, 52,2,0,2, 48,2,0,2, 47,2,0,2, 45,2,0,2, 
0,4,0,2, 53,1,0,2, 53,1,0,2, 52,2,0,2, 48,2,0,2, 50,2,0,2, 48,4,0,2,
0,64
] @=> int chorus_notedur[]; 
StifKarp inst  =>  dac;
now/ms => float mystart;
now/ms => float runtime;


while(true){
    <<< "Begin" >>>;    
    play ( chorus_notedur );    
}


fun void play(int part[])

      <<<"part=", part >>>;  
   for (1 => int i;i < part.cap(); i+2 => i) 
    { 
    if (part[i-1] == 100) 
        {
            if (part[i] == 1){ 
            <<< "--intro--" >>>; 
            }
            if (part[i] == 2){ 
            <<< "--bridge--" >>>; 
            }
            if (part[i] == 3){ 
            <<< "--chorus--" >>>; 
            }    
        } else 
        { 
        <<< "i=",i-1,"+",i, " runtime in s=", runtime/1000, " note[i-1]=", part[i-1], " dur[i]=", part[i] >>>;
        Std.mtof(24 + part[i-1] ) => inst.freq; 

    now/ms - mystart => runtime;
    if (part[i-1] != 0 ){
    .5 => inst.pluck;
        //.5 => inst.sustain;
        //.5 => inst.noteOn;
        .92 => inst.baseLoopGain;
        (part[i]*150)::ms => now; 

        } else {
         //1 => inst.noteOff;
        (0) => inst.sustain;
        (part[i]*60)::ms => now;
        }//end if gap
        }//end if comment
    }//end for in array loop
}//end while true loop

No comments:

Post a Comment