[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