[chuck-users] ADSR AttackRate, decayRate, sustainRate

Mario Buoninfante mario.buoninfante at gmail.com
Tue Feb 18 04:18:04 EST 2020


Hi Herman,

These functions (attackRate, decayRate, releaseRate) are the inverse of the
time ones (attackTime, decayTime and releaseTime).
Looking at the source code you'll find the methods at row 4911 of
ugen_stk.cpp.
You can try the following script to see them in action:

Step step => ADSR a1 => blackhole;
step => ADSR a2 => blackhole;
step.next(1);

second / samp => float SR;
250::ms => dur attack;
750::ms => dur decay;
0.34 => float sustain;
890::ms => dur release;

a1.set(attack, decay, sustain, release);
a2.attackRate(1::ms / (attack*SR*0.001));
a2.decayRate( (1 - sustain) / ((decay/ms)*SR*0.001) );
a2.sustainLevel(sustain);
a2.releaseRate(sustain / ((release/ms)*SR*0.001));

// trigger the ADSRs and print their current value every 100 msec
a1.keyOn(1);
a2.keyOn(1);
for(0 => int c; c < 20; c++)
{
    <<< a1.last(), a2.last() >>>;
    100::ms => now;
}

// release the ADSRs and print their current value every 100 msec
a1.keyOff(1);
a2.keyOff(1);
for(0 => int c; c < 20; c++)
{
    <<< a1.last(), a2.last() >>>;
    100::ms => now;
}

Cheers,
Mario

On Mon, 17 Feb 2020 at 10:56, herman verbaeten <hverb54 at hotmail.com> wrote:

> Hi,
>
> I was wondering what the function is of AttackRate,  decayRate,
> sustainRate in ADSR.
> Normally when using an ADSR,  attack only uses time. Same for decay and
> sustain.
>
> Also the declaration at the end of de memeber description is not very
> clear to me:
>
> The \e state = ADSR::DONE after the
>     envelope value reaches 0.0 in the
>     ADSR::RELEASE state.
>
>
> Thanks in advance for your assistance.
>
> Kind regards,
>
> Herman
> _______________________________________________
> 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/20200218/fded3245/attachment.html>


More information about the chuck-users mailing list