[Csnd] Using the previous value of a k-rate variable calculated at the end of an instrument at the beginning
| Date | 2011-10-29 04:52 |
| From | Forrest Cahoon |
| Subject | [Csnd] Using the previous value of a k-rate variable calculated at the end of an instrument at the beginning |
| Here's the current version of the instrument I'm working on, which is supposed to equalize the volume of everything fed into it via the signal flow opcodes: instr VolLeveller aInput inleta "in" iCutoffAmp = ampdbfs(p4) iGain = p5 kLevel rms aInput kAmp = (kLevel*iGain < iCutoffAmp) ? kLevel*iGain : iCutoffAmp aOutput gain aInput, kAmp kOutLevel rms aOutput printks "in %.0f tgt %.0f out %.0f\n", 0.5, kLevel, kAmp, kOutLevel-kAmp out aOutput endin It doesn't quite work -- the output, which I'm measuring with kOutLevel still varies considerably from the target output level. What I'd like to do is use the kOutLevel from the previous k-cycle at the beginning of the instrument to calculate a compensation factor and get a more level output. How do I do that? Forrest
|
| Date | 2011-10-29 07:55 |
| From | jpff@cs.bath.ac.uk |
| Subject | Re: [Csnd] Using the previous value of a k-rate variable calculated |
set
koldLevel init 0
at start and
koldLevel = kLevel
at the end.
Or have I misunderstood?
> Here's the current version of the instrument I'm working on, which is
> supposed to equalize the volume of everything fed into it via the signal
> flow opcodes:
>
> instr VolLeveller
>
> aInput inleta "in"
>
> iCutoffAmp = ampdbfs(p4)
>
> iGain = p5
>
> kLevel rms aInput
>
> kAmp = (kLevel*iGain < iCutoffAmp) ? kLevel*iGain : iCutoffAmp
>
> aOutput gain aInput, kAmp
>
> kOutLevel rms aOutput
>
> printks "in %.0f tgt %.0f out %.0f\n", 0.5, kLevel, kAmp, kOutLevel-kAmp
>
> out aOutput
>
> endin
>
>
> It doesn't quite work -- the output, which I'm measuring with kOutLevel
> still varies considerably from the target output level.
>
>
> What I'd like to do is use the kOutLevel from the previous k-cycle at the
> beginning of the instrument to calculate a compensation factor and get a
> more level output.
>
>
> How do I do that?
>
>
> Forrest
>
> Send bugs reports to the Sourceforge bug tracker
> https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
>
>
Send bugs reports to the Sourceforge bug tracker
https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"
|