[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sc-devel] Amplitude.kr problem



> Will next look at fixing the a-to-k issue...

Done, svn rev 6818 (added two calc funcs specifically to handle
Amplitude.kr(x.ar))

Dan

2007/12/15, Dan Stowell <danstowell@xxxxxxxxx>:
> Thanks Julian, I've committed the fix for this (rev 6807). The UGen
> behaves exactly the same, but is more more efficient with k-rate
> coefficients. Will next look at fixing the a-to-k issue...
>
> Dan
>
>
> 2007/12/14, Julian Rohrhuber <rohrhuber@xxxxxxxxxxxxxx>:
> > yes, this is incorrect.
> >
> > >In fact Julian's code for k-rate modulation (Amplitude_next_kk) looks
> > >wrong to me. This bit:
> > >
> > >if(ZIN0(1) != unit->m_clamp_in) {
> > >       clampcoef = exp(log1/(ZIN0(1) * SAMPLERATE));
> > >       unit->m_clamp_in = clampcoef;
> > >} else {
> > >       clampcoef = unit->m_clamp_in;
> > >}
> > >
> > >should be
> > >
> > >if(ZIN0(1) != unit->m_clamp_in) {
> > >       clampcoef = unit->m_clampcoef =  exp(log1/(ZIN0(1) * SAMPLERATE));
> > >       unit->m_clamp_in = ZIN0(1);
> > >} else {
> > >       clampcoef = unit->m_clampcoef;
> > >}
> > >
> > >The same goes for the "relax" input.
> > >
> > >Julian, please correct me if I'm wrong, but it looks to me like you've
> > >conflated the clamp-input and clamp-coefficient variables. The UGen
> > >works correctly but is not as optimal as you intended, because the
> > >recalculation of the coefficient would still happen once every control
> > >period.
> > >
> > >I'll fix this later (and do the a-rate calc func too); let me know if
> > >I've got this right or not...
> > >
> > >Dan
> > >
> > >
> > >
> > >2007/12/14, Dan Stowell <danstowell@xxxxxxxxx>:
> > >>  A while ago Julian reworked the Amplitude UGen slightly to allow the
> > >>  coefficients to be modulated. Julian, you left some old calc-func code
> > >>  in there, deactivated using some "#if" macros. Is it OK to remove the
> > >>  old code? Would make it easier to work on fixing the current code...
> > >>
> > >>  Dan
> > >>
> > >>
> > >>  2007/12/13, Josh Parmenter <josh@xxxxxxxxxxxxxxxxx>:
> > >>  > I think option 1 makes sense. Pitch.kr can take an audio input, so it
> > >>  > makes sense (to me at least) that Amplitude should be able to also.
> > >>  >
> > >>  > Josh
> > >>  >
> > >>  > On Dec 13, 2007, at 1:50 PM, Dan Stowell wrote:
> > >>  >
> > >>  > > Hi all,
> > >>  > >
> > >>  > > Applying Amplitude.kr to an audio-rate signal is allowed, in fact all
> > >>  > > the examples in the helpfile do this. However, I noticed that the UGen
> > >>  > > doesn't really handle this case "correctly" - if run at control-rate
> > >>  > > it simply expects its input to be control rate; the end result on
> > >>  > > audio-rate input is a dodgy downsampling which can lead to incorrect
> > >>  > > results.
> > >>  > >
> > >>  > > For example, these two should really give similar results but they
> > >>  > > don't (give them a few seconds to converge):
> > >>  > >
> > >>  > > x = {(Amplitude.kr(Impulse.ar(44100/64, 0.0),1,1)).poll}.play // 1
> > >>  > > x = {(Amplitude.kr(Impulse.ar(44100/64, 0.02),1,1)).poll}.play // 0
> > >>  > >
> > >>  > > Same goes for these:
> > >>  > >
> > >>  > > x = {(Amplitude.kr(SinOsc.ar(44100/64, 0.0),1,1)).poll}.play // 0.098
> > >>  > > x = {(Amplitude.kr(SinOsc.ar(44100/64, pi/4),1,1)).poll}.play // 0.77
> > >>  > >
> > >>  > > Options for fixing this:
> > >>  > >
> > >>  > > (1) Alter the UGen source, add a new calc func to deal with the a-to-k
> > >>  > > (2) Make Amplitude a subclass of Filter, so it refuses to run k-rate
> > >>  > > on an a-rate input (unhelpful!)
> > >>  > > (3) Alter the Amplitude class so it automatically replaces
> > >>  > > Amplitude.kr(x.ar) with A2K.kr(Amplitude.ar(x.ar))
> > >>  > >
> > >>  > > Any particular thoughts?
> > >>  > >
> > >>  > > Dan
> > >>  > >
> > >>  > > --
> > >>  > > http://www.mcld.co.uk
> > >>  > > _______________________________________________
> > >>  > > Sc-devel mailing list
> > >>  > > Sc-devel@xxxxxxxxxxxxxxx
> > >>  > > http://www.create.ucsb.edu/mailman/listinfo/sc-devel
> > >>  >
> > >>  > ******************************************
> > >>  > /* Joshua D. Parmenter
> > >>  > http://www.realizedsound.net/josh/
> > >>  >
> > >>  > "Every composer - at all times and in all cases - gives his own
> > >>  > interpretation of how modern society is structured: whether actively
> > >>  > or passively, consciously or unconsciously, he makes choices in this
> > >>  > regard. He may be conservative or he may subject himself to continual
> > >>  > renewal; or he may strive for a revolutionary, historical or social
> > >>  > palingenesis." - Luigi Nono
> > >>  > */
> > >>  >
> > >>  >
> > >>  > _______________________________________________
> > >>  > Sc-devel mailing list
> > >>  > Sc-devel@xxxxxxxxxxxxxxx
> > >>  > http://www.create.ucsb.edu/mailman/listinfo/sc-devel
> > >>  >
> > >>
> > >>
> > >>  --
> > >>  http://www.mcld.co.uk
> > >>
> > >
> > >
> > >--
> > >http://www.mcld.co.uk
> > >
> > >_______________________________________________
> > >Sc-devel mailing list
> > >Sc-devel@xxxxxxxxxxxxxxx
> > >http://www.create.ucsb.edu/mailman/listinfo/sc-devel
> >
> >
> > --
> >
> >
> >
> >
> >
> > .
> > _______________________________________________
> > Sc-devel mailing list
> > Sc-devel@xxxxxxxxxxxxxxx
> > http://www.create.ucsb.edu/mailman/listinfo/sc-devel
> >
>
>
> --
> http://www.mcld.co.uk
>


-- 
http://www.mcld.co.uk