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...

Friday, October 21, 2005

Found a free web space for mp3's

Thanks to a link on Penny Arcade, today I found a site that offers free disk space for mp3's:

The mp3 links (on the right over there) or this page (http://www.putfile.com/gwms451) let you listen to recordings for some of our chuck examples...

[chuck] version 1.2.0.3 released

[chuck] version 1.2.0.3 released


Dear All,

chuck-1.2.0.3 (dracula) is now available.

Once again, we have made some small (but potentially critical) language
and API changes (very sorry). The experimental 'loop' keyword has been
renamed to 'repeat', std.abs() now deals with int (instead of float)
and std.fabs() uses floats. Additionally, a sizable bug in
instantiating arrays of null object references have been fixed (we
hope), and /* block comments */ are now supported. See below for more
details.

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

Please let us know of any issues, and as always, HappY ChucKing!

Best,
chuck team

---
1.2.0.3
(API changes again)
(syntax change - 'loop' -> 'repeat')
- loop( ... ) construct (see 1.2.0.2) changed to repeat( ... )
- usage and semantics same as before
- this is also an experimental language feature
(let us know if it's good or bad)
- float std.abs( float ) changed -> int std.abs( int )
- use std.fabs( ... ) for floating point absolute value

- (added) \/\* block comments \*\/
- no nesting allowed
- closing '\*\/' not necessary if commenting out rest of the file
- (fixed) arrays of null object references correctly allocated
: Event @ events[128];
- (fixed) DEFAULT sndbuf rate now set correctly to interpolate
for files outside of chuck sample rate (no longer have to
explicit do 1 => buf.rate)
- (fixed) examples/midi/polyfony*.ck no longer creates 128
unnecessary events...
- (changed) examples/stk/wurley.ck -> examples/stk/wurley2.ck
- (changed) examples/stk/wurley.ck (wacky version)

_______________________________________________
chuck mailing list
chuck@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck

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

_______________________________________________