[Stk] Ramping with ADSR
Ariel Elkin
arielelkin at gmail.com
Mon Sep 17 08:22:54 PDT 2012
…so the class was already there… guess I wasn't even able to reinvent the wheel :-(
Anyway, so I'm now using Envelope, but the values are still ramping up too slowly.
This is how I set up my Envelope:
audioData.envelope = new Envelope();
audioData.envelope->setTime(10);
And later on I call:
audioData.envelope->setTarget(400);
But I'm getting the same problem. When I call envelope->lastOut() every 500ms to check its value, after 10 seconds of calling setTarget(), the value is still at around 1.4 instead of 400.
If I divide by 100 the parameter I give to setTime(), then it ramps at more or less the desired duration. Are you sure the value is in seconds?
Ariel
On 17 Sep 2012, at 3:46pm, Gary Scavone wrote:
> If you want a basic ramp, try Envelope (https://ccrma.stanford.edu/software/stk/classstk_1_1Envelope.html).
>
> --gary
>
> On 2012-09-17, at 10:39 AM, Ariel Elkin <arielelkin at gmail.com> wrote:
>
>> Hi all,
>>
>> I would like to have a sine wave's frequency smoothly go from 0 to 400 over 10 seconds.
>>
>> I've tried implementing that with a function that updates the wave's frequency every 20 milliseconds, but there are audible bumps in the sound. So I need something that can create a smoother ramp, and I thought of ADSR.
>>
>> But I noticed that calling ADSR::keyOn() automatically sets the attack target to 1.0, and I want it to be an arbitrary value (400.0 in my case). So I added the function below to ADSR:
>>
>> void ADSR:: keyTo( StkFloat target )
>> {
>> target_ = target;
>> state_ = ATTACK;
>> }
>>
>> Here's how I setup my ADSR object:
>>
>> audioData.adsr = new ADSR();
>> audioData.adsr->setValue(0);
>>
>> audioData.adsr->setAttackTime(10);
>> audioData.adsr->setDecayTime(1);
>> audioData.adsr->setReleaseTime(1);
>>
>> I've then been calling ADSR::lastOut() every 500ms to check its value, and I notice that it goes from 0.0 to about 1.5 in the first 10 seconds. Can anybody see why? Is it possible/a good idea to implement a ramp with ADSR?
>>
>> Cheers
>>
>> Ariel
>>
>> _______________________________________________
>> Stk mailing list
>> Stk at ccrma.stanford.edu
>> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>
More information about the Stk
mailing list