[chuck] (dracula) released

Ge Wang gewang at CS.Princeton.EDU
Thu Aug 23 16:18:29 EDT 2007

Dear all,

chuck- (dracula) is available:


In this new major release of ChucK, we (Rebecca Fiebrink and I) have  
created a new part of the language devoted to real-time audio  
analysis, and also combining that with synthesis.  In doing so, we  
are introducing the concept of a "Unit Analyzer" and new chuckian  
operator.  This initial version includes the basic infrastructure and  
a few "unit analyzers" to get things started.  Much more is on the  
way...  To find out more about analysis and ChucK, check out:


We are presenting this at the ICMC in Copenhagen next week, discussed  
in this paper:


A new miniAudicle is on the way, as well as an updated audicle  
version.  Additional goodies include feature/bug enhancements, better  
bugs and more (see below for complete list).  As always, let us know  
if you encounter unexpected fishiness.

Many many thanks to Kassen, Graham Coleman, Dan Trueman, George  
Tzanetakis, Kijjaz, Eduard Aylon, and rest of chuck community for  
helping to make this release happen!!

Thanks and Happy (Up)ChucKing!

chuck team

--- :
   - (added) Unit Analyzers (UAna: prounced U-Wanna, plural UAnae)
               (primary creators: Rebecca and Ge)
             provides support for spectral processing,
               information retrieval, generalized + precise audio  

   - (added) new datatypes:
             complex: (real,imaginary)
                  example: #(3,4) is complex literal (3,4)
                  example: #(3,4) => complex value;
                           access components via value.re and value.im
                  used by UAnae

             polar: (modulus, phase)
                  example: %(.5, pi/4) is magnitude .5 and phase pi/4
                  example: %(.5, pi/4) => polar bear;
                           access components via bear.mag and bear.phase
                  used by UAnae
             example: can cast between complex and polar via standard  
$ casting

   - (added) new UAnae:
             (authors: Rebecca and Ge)
             FFT: Fast Fourier Transform
                  input: from UGen (manually input float vector)
                  output: complex spectrum (.cval()/.cvals())
                          magnitude spectrum (.cval()/.fvals())
                  (see examples/analysis/)
             IFFT: Inverse FFT
                  input: UAna/Blob complex vector (spectrum)
                  output: to UGen (as samples)
                  (see examples/analysis/)
             Centroid: Centroid feature extractor
                  input: UAna/Blob float vector (mag spectrum)
                  output: single centroid value per frame
                  (see examples/analysis/features/)
             Flux: Flux feature extractor
                  input: UAna/Blob float vector (mag spectrum)
                  output: single flux value between current and  
previous frame
                  (see examples/analysis/features/)
             RMS: RMS feature extractor
                  input: UAna/Blob float vector (mag spectrum)
                  output: single RMS value of frame
                  (see examples/analysis/features/)
             RollOff: RollOff feature extractor
                  input: UAna/Blob float vector (mag spectrum)
                         percentage threshold
                  output: single RollOff value of frame
                  (see examples/analysis/features/)

   - (added) capability to externally abort "infinite loop" shreds
             (this deals with hanging shreds due to potentially
             infinite loops that don't advance time)
   - (added) OTF command: chuck --abort.shred sends network OTF
             to server to remove current shred if there is one
   - (added) default .toString() method to all Object's
   - (added) adding an Object to string will first cast object to  
             then add the two
   - (added) LiSa.duration() get method, and .voiceGain() set/get
             (Dan Trueman)
   - (added) alternate line comment: <-- same as //
                  SinOsc s => dac;  <-- here is a comment
   - (fixed) NullPointerException when instantiating array of objects
             containing arrays of objects
                  (thanks to chuck-users!!)
   - (fixed) Machine.remove() on parent shred id no longer crashes
   - (fixed) Machine.remove() on 'me' now works correctly
   - (fixed) rounding when writing files via WvOut
                  (thanks to Chris Chafe for discovering and  
reporting this)
   - (changed) default frequencies (220/440) added for various STK  

More information about the chuck mailing list