[chuck-users] Array of SndBufs at different rates

Mario Buoninfante mario.buoninfante at gmail.com
Fri Jan 10 13:50:04 EST 2020


Hi James,

here's an example that shows how you can get/set values when dealing with
arrays:

[0.25, -0.5, 1., 0.25] @=> float rates[];

<<< "GET VALUES\n---------" >>>;
// get values from the array
for(0 => int c; c < rates.size(); c++)
{
    <<< rates[c] >>>;
}

<<< "\nSET VALUES\n---------" >>>;
// set values
for(0 => int c; c < rates.size(); c++)
{
    Math.random2f(-1, 1) => rates[c];
    <<< rates[c] >>>;
}

if you want to randomize the whole array, of course you'd need to have
something like a for loop in which you randomize all the elements.

Just one thing, looking at the script you attached, I would take the line
of code where you load the audio file out of the while loop. You only need
to load it once.
The same with the line where you set the delay size (d.max()). You could
simply pick a length that is never shorter than the 'delay' value
(d.delay()) you randomize in the while loop.

Cheers,
Mario


On Fri, 10 Jan 2020 at 12:28, Matthew.Noone <Matthew.Noone at ul.ie> wrote:

> Hi all,
> I'm trying to figure out the easiest way to setup an array of the same
> SndBuf playing at different rates.
>
> I'm using a Gong sample.  Playing that back at different rates to make
> basic melodic patterns.
>
> I can make a random function but I don't know who I can set an array of
> rates which I can then randomise.
>
> Any ideas?
>
> Here is my existing code with random function. (I tried writing an array
> at the start but not sure how to call that?)
>
> Sorry for such an easy question...
> MJ
>
> //Sndbuf
>
>
> //4 => int gongs;
>
> //[.25, 0.5, 1.0, .25] @=> float rates[];//array of possible rates
> (changing will change harmony)
>
>
> //program
>
> SndBuf mySound => Delay d => JCRev rev => Gain g => dac;
>
>
> 0.8 => rev.mix;
>
>
> //delay and rev setup
>
>
> d => Gain feedback => d;
>
>
>
>
> while (true)
>
> {
>
>     .02 => g.gain;
>
>     me.dir()+"Samples/MotherGong.wav" =>mySound.read;
>
>
>
>
>
>
>
>     0 =>mySound.pos;
>
>     Math.random2f ( 20.1, 22.01 ) => mySound.rate;
>
>     Math.random2f( 0.3, 0.5) ::second => d.max;
>
>     Math.random2( 30, 70) ::ms =>d.delay;
>
>
>
>     Math.random2f( 0.3, .8) => feedback.gain;
>
>
>
>     0.50 ::second => now;
>
>
>
>
>
>
>
> }
>
>
> Dr. Matthew James Noone
> *Sarode Artist & Irish Research Council Postdoctoral Fellow*
> *Irish World Academy of Music and Dance*
> *University of Limerick*
>
> _______________________________________________
> 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/20200110/54b78112/attachment.html>


More information about the chuck-users mailing list