Dear all,
chuck-1.2.1.0 (dracula) is available:
http://chuck.cs.princeton.edu/
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:
http://chuck.cs.princeton.edu/uana/
We are presenting this at the ICMC in Copenhagen next week, discussed
in this paper:
http://soundlab.cs.princeton.edu/publications/uana_icmc2007.pdf
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!
Best,
chuck team
CHANGES
---
1.2.1.0 :
- (added) Unit Analyzers (UAna: prounced U-Wanna, plural UAnae)
(primary creators: Rebecca and Ge)
provides support for spectral processing,
information retrieval, generalized + precise audio
analysis
- (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
string;
then add the two
- (added) LiSa.duration() get method, and .voiceGain() set/get
(Dan Trueman)
- (added) alternate line comment: <-- same as //
example:
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
instruments