[chuck-users] Any way to use .pos passing a string?

Joel Matthys jwmatthys at yahoo.com
Sun Jul 6 20:24:11 EDT 2014


Hi Federico. ChucK has a nice feature called Associative Arrays. 
Basically you will create an empty array of SndBufs, and then create new 
ones with the string as the array index:

SndBuf buf[0]; // declare empty array
new SndBuf @=> buf["kk"]; // creates new SndBuf associated with array 
index "kk"
new SndBuf @=> buf["sn"]; // creates new SndBuf associated with array 
index "sn"
buf["kk"] => dac;
buf["sn"] => dac;
me.dir() + "/audio/kick_01.wav" => buf["kk"].read;
me.dir() + "/audio/snare_01.wav" => buf["sn"].read;
buf["kk"].samples() => buf["kk"].pos;
buf["sn"].samples() => buf["sn"].pos;

["kk", "sn"] @=> string p1[];

while( true )
{
     for( 0 => int i; i < p1.cap(); i++)
     {
         0 => buf[ p1[i] ].pos;
         0.25::second => now;
     }
}
//--END

Joel


On 07/06/2014 06:13 PM, Federico Lopez wrote:
> Hi,
> I have an array of strings (p1) that contains the same names of  
> SndBuff  instances (kk sn), I would like to pass the strings of the 
> array to trigger samples and I don't know how to do it.
>
> Here is some test code:
>
> SndBuf kk => dac;
> SndBuf sn => dac;
>
> me.dir() + "/audio/kick_01.wav" => kk.read;
> me.dir() + "/audio/snare_01.wav" => sn.read;
>
> kk.samples() => kk.pos;
> sn.samples() => sn.pos;
>
> while( true )
> {
>     ["kk", "sn"] @=> string p1[];
>
>     for( 0 => int i; i < p1.cap(); i++)
>     {
>         0 => p1[i].pos; // not working
>         0.25::second => now;
>     }
> }
>
> Thanks,
>
> Federico López
>
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20140706/1392cc51/attachment.html>


More information about the chuck-users mailing list