ChucK : What's New?

http://chuck.cs.princeton.edu/

new in chuck-1.2.x.x: (see current release notes and what's busted)
  • arrays
    • integer-indexed and associative
    • multidimensional

  • classes and objects
    • create your own classes
    • polymorphic inheritance (similar to java | virtual in c++)
    • extend existing classes (object, ugen, event, etc.)
    • function overloading
    • also support static data and functions

  • language specification (finally)

  • events - fundamental synchrnization mechanism
    • shreds can advance time by waiting on events
    • events can be signaled (wake one shred) or broadcast (wake all shreds)
    • can be subclassed to create custom events

  • stereo (finally)
    • all stereo ugen has .left and .right members
    • new ugen: pan2
    • new ugen: mix2
    • adc and dac are now stereo

  • better MIDI support
    • MidiMsg class replaces hexidecimal literals
    • MidiIn can be polled as before
    • MidiIn can also be used as an event to wait on

  • added OSC support
  • string
  • new operators

    • +=>, -=>, *=>, /=>, %=>
    • @=> for assignment
    • @ for reference
    • val $ T - casting val to type T
    • <<< x, y, z >>> for printing out values quickly

  • language features
    • type system reimplemented to support classes, arrays
    • new bug fixes, new bugs
    • forward lookup of classes and functions
    • function calling by chucking: (x, y) => z.foo /* same as */ z.foo( x, y)
    • function overloading
    • implicit int to float casting (finally)
    • stack overflow detection (for large recursion)

  • command line
    • --probe prints all audio and MIDI devices on system
    • --log or --verbose logs compiler and virtual machine
    • different log levels
    • -N sporks the next command line shred N times

  • and more...
and now...

let me have it! | get it away from me!


chuck | soundlab | ccrma