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@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users