[chuck-users] heads up for 1.2.0.7

Ge Wang gewang at CS.Princeton.EDU
Sat Sep 9 19:41:42 EDT 2006


Greetings fellow ChucKists,

Here is a (not so) quick summary/warning about upcoming changes in 
chuck-1.2.0.7, to be released probably next week.

what it don't got:
- garbage collection is still on a holding pattern and will not be in 
1.2.0.7
- the long-overdue string operations, unfortunately, insist on waiting 
for garbage collection, and also will not in 1.2.0.7
- file i/o api's have been implemented (thanks to Martin Robinson), 
will be included soon but not in 1.2.0.7
Sorry about that.

Now that we've apologized about what's not in the release, it's time to 
apologize about what is.  Due to recent discussions on this list, two 
sets of changes and additions have been made.  We want to preview them 
here to get feedback before setting them in concrete.

API deprecations.  Our discussion more or less determined that it's 
best to unify the naming scheming now before things get further out of 
hand, particularly for UGen names and such.  So the current solution 
deprecates the object names in question and provides more consistent 
naming.  By default, when a deprecated name, such as 'sinosc', is 
encountered, a warning will be issued, such as 'line(1): deprecated: 
'sinosc' --> use: 'SinOsc''.  The behavior should be otherwise 
unchanged.  In other words the program should still work as before.  
We've also added a --deprecate flag that allows you to stop, warn, or 
ignore upon encountering a deprecated item.  The default is 'warn'.

Here are the objects deprecated so far, and their replacements:

   - (api) deprecated --> new classes
     --------------------------
        sinosc  -->  SinOsc
        triosc  -->  TriOsc
        sqrosc  -->  SqrOsc
        sawosc  -->  SawOsc
      pulseosc  -->  PulseOsc
        phasor  -->  Phasor
           osc  -->  Osc
         noise  -->  Noise
        cnoise  -->  CNoise
       impulse  -->  Impulse
          step  -->  Step
      halfrect  -->  HalfRect
      fullrect  -->  FullRect
          gain  -->  Gain
         zerox  -->  ZeroX
        delayp  -->  DelayP
        sndbuf  -->  SndBuf
          pan2  -->  Pan2
          mix2  -->  Mix2
       onepole  -->  OnePole
       onezero  -->  OneZero
      polezero  -->  PoleZero
       twopole  -->  TwoPole
       twozero  -->  TwoZero
        biquad  -->  BiQuad

           std  -->  Std
          math  -->  Math
       machine  -->  Machine

A few more UGen's.  From another discussion on list, also by popular 
demand, it seems convenient to have out-of-the-box filters, in addition 
to general 1st and 2nd order filters (OnePole/Zero, BiQuad, etc.).  
We've examined and plundered from Csound, SC, and PD source code, and 
chuckified a few UGen's.  We are going to do this in installments, 
adding various UGens every release.  In 1.2.0.7, They include:

           LPF : lowpass filter (2nd order butterworth) (also with 
cutoff resonance control)
           HPF : highpass filter (2nd order butterworth) (also with 
cutoff resonance control)
           BPF : bandpass filter (2nd order butterworth)
           BRF : bandreject filter (2nd order butterworth)
        ResonZ : resonant filter (BiQuad with equal-gain zeros)
   FilterBasic : base class to above filters

Of course, all of these can be designed and implemented using existing 
filters, but these provide direct access to cutoff and Q out-of-the-box 
and behave in a familiar um Butterworthy way.  (More are on the way)

We'd appreciate your feedback on these.  For example:
1. api changes are in general, not reasons for group celebration.  what 
can be done to further smooth the transition?
2. new naming optimal?
3. anything else

Thanks!

Best,
chuck team



More information about the chuck-users mailing list