ChucK is a music programming language (and compiler/synthesizer) written by a professor (Perry Cook) and his students at Princeton University. I'm learning how to use it; I thought that writing about how to use it would help...

Monday, October 17, 2005

[chuck] version 1.2.0.2 released

[chuck] version 1.2.0.2 released


Dear All,

chuck-1.2.0.2 (dracula) is now available. Changes include class and
member functions renaming for OSC objects (see below), stability and
performance improvements for OSC, ability to open multiple OscRecv
objects on a single port, experimental control construct 'loop', events
fire with 0-sample delay instead of 1-sample, new/updated examples, and
many various bug fixes (hopefully).

http://chuck.cs.princeton.edu/release/
(may need to reload page to see update)

Please let us know of any issues.

HappY ChucKing!

Best,
chuck team

---
1.2.0.2

(sorry for the API changes)
- (API change) OSC_Send class name changed to 'OscSend'
(also): .startMesg(...) name changed to startMsg(...)
- (API change) OSC_Recv class name changed to 'OscRecv'
- (API change) OSC_Addr class name changed to 'OscEvent'
(also): .hasMesg() name changed to .hasMsg()
(also): .nextMesg() name changed to .nextMsg()
- (API change) STK Shakers.freq now expect Hz instead of MIDI number

- (moved) examples/event/opensound*.ck moved to examples/osc/OSC*.ck
(see OSC_send.ck and OSC_recv.ck for examples on OpenSoundControl)
- (moved) examples/event/polyfony*.ck to examples/midi/

- (added) 'loop(...){ }' control structure :
example: loop( 8 ) { ... } // executes body 8 times
example: loop( foo ) { ... } // executes body foo times
(foo is evaluated exactly once entering the loop, the
value at that time is used as a constant to control
loop iteration - even if foo is changed in the loop
body.)
- supports break and continue
- important: one fundamantal difference between the loop
semantic and for/while/until semantic is that the argument
expression 'exp' in loop( exp ) is evaluated exactly once
when the loop is first entered.
- (added) MidiIn and MidiOut member functions:
.good() : whether the thing is good to go (int)
.num() : the device number (int)
.name() : the device name (string)
.printerr( int ) : whether to auto print errors (default YES)
- (added) --version command line flag (Graham)

- (changed) chuck --status now prints shreds sorted by id
(previously it was the current shreduling order + blocked)
- (changed) a udp port may now be shared by many OSC_Recv (phil)
: the incoming messages are broadcast to all
- (changed) address/type string in OSC: comma now optional (phil)

- (fixed) events are now 0-sample synchronous (instead of 1)
- (fixed) startup audio stability for --callback mode
- (fixed) incorrect 'continue' behavior in for loops
- (fixed) improved OSC stability (phil)
- (fixed) OSC shreduling sanity check failed now resolved
- (fixed) math.round for negative numbers (win32)
- (fixed) std.mtof and std.ftom now internally double precision
- (fixed) removed extra console output in STK Flute
- (fixed) multiple delete/assertion failure on type rollback
- (fixed) chuck --kill now closes WvOut and MidiRW file handles
- (added) examples/midi/gomidi.ck : very useful sometimes
- (added) examples/midi/gomidi2.ck
- (added) examples/basic/rec-auto.ck (rec2.ck back in action)
- (added) examples/basic/fmsynth.ck (from v1)
- (added) examples/sitar.ck
- (fixed) examples/stk/*-o-matic.ck now uses array

_______________________________________________