ChucK

Category Audio Production / Experimental
Version 1.2.1.3
Format App
Compatibility ChucKMacOS X UB
License Freeware
Price Free
Rating
Updated On Oct 5, 2009
Total Downloads 2,331
Mac Downloads 1,666
Category Audio Production / Experimental
Version 1.2.1.3
Format App
Compatibility ChucKWindows
License Freeware
Price Free
Rating
Updated On Oct 5, 2009
Total Downloads 2,331
PC Downloads 665

Strongly-timed, On-the-fly Audio Programming Language

ChucK is a new audio programming language for real-time synthesis, composition, and performance, which runs on MacOS X, Windows, and Linux. ChucK presents a new time-based concurrent programming model, which supports ultra-precise timing, multiple, simultaneous, dynamic control rates, and the ability to add, remove, and modify code, on-the-fly, while the program is running, without stopping or restarting.
Osx 10.3.9 or later
Osx 10.3.9 or later
ChucK ChucK v 1.2.1.3 Oct 5, 2009 MacOS X UB
  • (added) initial/experimental support for file I/O (finally)

  • (thanks to Andrew Schran, Martin Robinson)
    - (added) new class: IO, FileIO
    see examples/io/:
    read-int.ck
    read-str.ck
    readline.ck - using readline
    write.ck - write using <=
    write2.ck - write using .write()
    - (added) IO input via =>
    - (added) IO output via <= (the "back-chuck")
    example: fio <= x <= " " <= y <= "\n";
    - (added) new syntax for checking if/while/for/until with IO objects
    e.g., while( fio => i ) { ... }
    - (added) StdOut/StdErr objects:
    "chout" (pronounced "shout")
    "cherr" (pronounced "Cher")
    - (added) Hid.open() now can accept a device name parameter
    - (added) analysis/tracking examples are now back
    (thanks to Kassen for looking into this)
    - (fixed) calling overloaded functions with most specific match
    e.g., Specific extends General:
    fun void foo( General obj ) { }
    fun void foo( Specific obj ) { }
    foo( obj $ Specific ); // should call foo( Specific )
    (thanks to Robert Poor for reporting, to Kassen, David Rush,
    Michael Heuer, and Andrew C. Smith for follow-up)
    - (fixed) STK instruments control changes reports range issues as
    "control value exceeds nominal range"; previously printed
    hard-coded values that were potentially misleading
    (thanks to Kassen for reporting)
    - (fixed) all oscillators now produce audio for negative frequencies
    (thanks to Luke Dahl)
    - (fixed) incorrect UGen disconnect (thanks Kassen for reporting)
    - (fixed) type checker now validates if/while/for/until types
    - (fixed) linux compilation (for gcc 4.x)
    - (fixed) complilation on OS X Snow Leopard
    ChucK ChucK ChucK v 1.2.1.2 May 31, 2009 MacOS X UB
    1.2.1.2
    - (added) dynamic, resizable arrays
    .size( int ) resizes array; .size() returns current size()
    << operator appends new elements into array
    .popBack() pops the last element of the array, reducing size by 1
    .clear() zero's out elements of the array
    (see examples/array/
    array_dyanmic.ck
    array_resize.ck)
    - (added) new UAna: FeatureCollector
    turns UAna input into a single feature vector, upon .upchuck()
    new UAna: Flip
    turns audio samples into frames in the UAna domain
    new UAna: pilF
    turns UAna frames into audio samples, via overlap add
    new UAna: AutoCorr
    computes the autocorrelation of UAna input
    new UAna: XCorr
    computes the cross correlation of the first two UAna input
    - (added) UGen.isConnectedTo( Ugen ) // is connected to another ugen?
    - (added) UAna.isUpConnectedTo( UAna ) // is connected to another uana via =^?
    - (added) int Shred.done() // is the shred done?
    int Shred.running() // is the shred running?
    - (added) int Math.ensurePow2( int )
    - (added) Math.INFINITY, Math.FLOAT_MAX, Math.FLOAT_MIN_MAG, Math.INT_MAX
    - (added) TriOsc.width(), PulseOsc.width(), SawOsc.width(), SqrOsc.width()
    - (added) Std.system(string) is now disabled by default, to enable: specify
    the --caution-to-the-wind command line flag, for example:
    %> chuck --caution-to-the-wind --loop
    - (removed) SqrOsc.width( float ), width is always .5
    - (fixed) it's now (again) possible to multiply connect
    two UGen's
    - (fixed) OS X only: sudden-motion-sensor HID no longer
    introduces audio dropouts below peak CPU usage
    due to added centralized polling;
    added static Hid.globalPollRate( dur ) to control
    the central SMS polling's rate
    - (fixed) Windows only: implementation of array via STL vector::reserve()
    has been replaced with a more compatible approach (see chuck_oo.cpp)
    - (fixed) dac amplitude no longer halved!
    NOTE: this increases the gain from before by
    a factor of 2, or roughly 6 dB!! BEWARE!!
    - (fixed) corrected order of shred/ugen dealloc in VM destructor,
    preventing a potential crash during shutdown
    - (fixed) UAna can now upchuck() at now==0
    - (fixed) STK Chorus UGen now has reasonable defaults
    .max( dur, float ) for initializing to delay/depth limits
    .baseDelay( dur ) sets current base delay
    - (fixed) dur +=> now no longer crashes
    - (fixed) ADSR now returns attackTime, decayTime, and releaseTime that corresponds
    to the duration-based setting functions (internally multiplied by SR)
    (thanks Eduard)
    - (fixed) STK Mandolin no longer plays without explicit noteOn
    - (fixed) unsporked Shred instances now given id == 0 (thanks Kassen)
    - (fixed) typos in ugen_xxx.cpp and chuck-specific rtaudio.cpp (/moudi)
    ChucK ChucK v 1.2.0.8 Mar 25, 2007 MacOS X UB
  • --

  • 1.2.0.8
    - (added) command line argument support
    e.g. %> chuck foo.ck:1:hello bar:2.5:"with space"
    also works with OTF commands
    e.g. %> chuck + foo:1:yo
    also works with Machine.add( ... )
    e.g. // code
    Machine.add( "foo:1:2:yo" );
    (see examples/basic/args.ck for accessing from code)
    - (added) OS X: watchdog enabled
    win32: watchdog implemented and enabled
    (combats chuck infinite empty loop implosion)
    - (added) OTF server/listener now ON by default...
    to enable, specify --loop or --server
    to disable, specify --standalone
    - (added) new UGens:
    --------
    Dynamics: dynamics processor (compressor, expander, etc.)
    (author Matt Hoffman and Graham Coleman)
    (see examples/special/)

    GenX: classic + new lookup table functions base class
    (author Dan Trueman, ported from RTCMix)
    (see examples/special/)

    float .lookup( float ) : lookup table value
    float[] .coeffs( float[] ) : load the table
    Gen5 (extends GenX)
    Gen7 (extends GenX)
    Gen9 (extends GenX)
    Gen10 (extends GenX)
    Gen17 (extends GenX)
    CurveTable (extends GenX)
    WarpTable (extends GenX)

    LiSa: (Li)ve (Sa)mpling!
    (author Dan Trueman, partly based on Dan's munger~)

    --------
    - (added) (prototype) string catenation
    (for now will leak memory! use wisely!!!)
    e.g. // expression
    "a" + "b"
    "a" + 45
    "a" + 5.1
    "postfix" +=> str;
    - (added) string escape sequences
    \0 \n \t \a \" \b \f \r \v \\
    \nnn (3 digit octal ascii)
    - (added) new Objects:
    --------
    StringTokenizer: uh string tokenizer (by whitespace)
    (use to be hidden PRC object)
    see examples/string/token.ck

    ConsoleInput: interim console input (until file I/O)
    (use to be hidden Skot object)
    see examples/string/readline.ck

    --------

    - (api) API additions
    -------- (also see API modifications below)
    ADSR: dur attackTime()
    dur decayTime()
    dur releaseTime()
    WvOut: void closeFile()
    Hid: void openTiltSensor()
    int read( int, int, HidMsg )
    HidMsg: int isWheelMotion()
    (support for mouse scroll wheels)
    int key
    (cross-platform USB HID Keyboard Usage code)
    int ascii
    (ASCII value of key, where appropriate)
    --------
    - (api) API modifications (sorry!)
    --------
    ADSR: float attackTime( float ) -> dur attackTime( dur )
    float decayTime( float ) -> dur decayTime( dur )
    float releaseTime( float ) -> dur releaseTime( dur )
    --------
    - (api) deprecated --> new classes
    --------------------------
    HidIn --> Hid

    - (fixed) adc.last() now returns correct value (was returning 0)
    - (fixed) array is now subclass of Object
    - (fixed) accessing null array no longer crashes (instead: exception)
    - (fixed) allow: 0 length float arrays
    - (fixed) check for negative array size
    - (fixed) accessing null map no longer crashes (instead: exception)
    - (fixed) connecting null UGen references no longer crashes
    - (fixed) trivial (null == null) no longer evaluated as string
    - (fixed) strict (x,y) => z type checking
    - (fixed) UGens no longer able to make duplicate connections
    - (fixed) && now terminates early if an operand evaluates to 0
    || terminates early if an operand evaluates to 1
    - (fixed) bug accessing static members of built-in classes
    - (fixed) OscSend.startMsg no longer silently fails when
    using a single string message specification
    - (fixed) Math.atan2 now accepts the proper arguments
    - (fixed) increased OTF command network fail-safe measures
    - (fixed) STK BlitSquare now produces correct frequency
    (applied fix from STK release)
    - (fixed) no longer spontaneously crashes when HidIn and
    other event based input mechanisms are firing rapidly
    - (fixed) using non-static variables from inside static functions
    - (fixed) variables must be declared before being used
    programming ChucK v 1.2.0.7 Sep 20, 2006 MacOS X UB
  • --

  • 1.2.0.7
    - (api) deprecated --> new classes
    --------------------------
    sinosc --> SinOsc
    triosc --> TriOsc
    sqrosc --> SqrOsc
    sawosc --> SawOsc
    pulseosc --> PulseOsc
    phasor --> Phasor
    osc --> Osc
    noise --> Noise
    cnoise --> CNoise
    impulse --> Impulse
    step --> Step
    halfrect --> HalfRect
    fullrect --> FullRect
    gain --> Gain
    zerox --> ZeroX
    delayp --> DelayP
    sndbuf --> SndBuf
    pan2 --> Pan2
    mix2 --> Mix2
    onepole --> OnePole
    onezero --> OneZero
    polezero --> PoleZero
    twopole --> TwoPole
    twozero --> TwoZero
    biquad --> BiQuad
    **** --> ****
    std --> Std
    math --> Math
    machine --> Machine
    --------------------------
    - (added) --deprecate:X flag
    X can be stop, warn, or ignore - default is warn
    - (added) STK BiQuad get functions pfreq, prad, zfreq, zrad
    - (added) ADSR functions:
    void .set( dur a, dur d, float s, dur r );
    void .set( float a, float d, float s, float r );
    - (added) new UGens (adapted from SC3 Server, Pure Data, CSound)
    --------------------------
    LPF : resonant lowpass filter (2nd order butterworth)
    HPF : resonant highpass filter (2nd order butterworth)
    BPF : bandpass filter (2nd order butterworth)
    BRF : bandreject filter (2nd order butterworth)
    ResonZ : resonant filter (BiQuad with equal-gain zeros)
    FilterBasic : base class to above filters
    --------------------------
    - (added) new HidIn static variables for HidMsg message and device types
    - (added) HidMsg fields to determine device type and number
    - (added) HidMsg functions with capitalization rather than underscores
    (underscored functions deprecated)
    - (added) .period for all oscillators
    - (fixed) floating point denormals no longer cause potentially
    massive CPU usage on intel processors, this includes
    BiQuad, OnePole, TwoPole, PoleZero, JCRev, PRCRev, NRev
    - (fixed) STK Echo.max no longer gives incorrect warnings
    - (fixed) linux makefiles now respects CC/CFLAGS/CXX (Cedric Krier)
    - (fixed) SinOsc/TriOsc/PulseOsc/SqrOsc/Phasor.sync now unified:
    .sync == 0 : sync frequency to input
    .sync == 1 : sync phase to input
    .sync == 2 : fm synth
    |
    NOTE: the above changes may break/affect existing patches
    using TriOsc, PulseOsc, or SqrOsc
    - (fixed) TriOsc/PulseOsc/SqrOsc phase consistent with convention
    - (fixed) ADSR now handles keyOff() before sustain state
    - (fixed) ADSR now correctly inherits Envelope
    ChucK ChucK v 1.2.1.3 Oct 5, 2009 Windows
  • (added) initial/experimental support for file I/O (finally)

  • (thanks to Andrew Schran, Martin Robinson)
    - (added) new class: IO, FileIO
    see examples/io/:
    read-int.ck
    read-str.ck
    readline.ck - using readline
    write.ck - write using <=
    write2.ck - write using .write()
    - (added) IO input via =>
    - (added) IO output via <= (the "back-chuck")
    example: fio <= x <= " " <= y <= "\n";
    - (added) new syntax for checking if/while/for/until with IO objects
    e.g., while( fio => i ) { ... }
    - (added) StdOut/StdErr objects:
    "chout" (pronounced "shout")
    "cherr" (pronounced "Cher")
    - (added) Hid.open() now can accept a device name parameter
    - (added) analysis/tracking examples are now back
    (thanks to Kassen for looking into this)
    - (fixed) calling overloaded functions with most specific match
    e.g., Specific extends General:
    fun void foo( General obj ) { }
    fun void foo( Specific obj ) { }
    foo( obj $ Specific ); // should call foo( Specific )
    (thanks to Robert Poor for reporting, to Kassen, David Rush,
    Michael Heuer, and Andrew C. Smith for follow-up)
    - (fixed) STK instruments control changes reports range issues as
    "control value exceeds nominal range"; previously printed
    hard-coded values that were potentially misleading
    (thanks to Kassen for reporting)
    - (fixed) all oscillators now produce audio for negative frequencies
    (thanks to Luke Dahl)
    - (fixed) incorrect UGen disconnect (thanks Kassen for reporting)
    - (fixed) type checker now validates if/while/for/until types
    - (fixed) linux compilation (for gcc 4.x)
    - (fixed) complilation on OS X Snow Leopard
    ChucK ChucK ChucK v 1.2.1.2 May 31, 2009 Windows
    1.2.1.2
    - (added) dynamic, resizable arrays
    .size( int ) resizes array; .size() returns current size()
    << operator appends new elements into array
    .popBack() pops the last element of the array, reducing size by 1
    .clear() zero's out elements of the array
    (see examples/array/
    array_dyanmic.ck
    array_resize.ck)
    - (added) new UAna: FeatureCollector
    turns UAna input into a single feature vector, upon .upchuck()
    new UAna: Flip
    turns audio samples into frames in the UAna domain
    new UAna: pilF
    turns UAna frames into audio samples, via overlap add
    new UAna: AutoCorr
    computes the autocorrelation of UAna input
    new UAna: XCorr
    computes the cross correlation of the first two UAna input
    - (added) UGen.isConnectedTo( Ugen ) // is connected to another ugen?
    - (added) UAna.isUpConnectedTo( UAna ) // is connected to another uana via =^?
    - (added) int Shred.done() // is the shred done?
    int Shred.running() // is the shred running?
    - (added) int Math.ensurePow2( int )
    - (added) Math.INFINITY, Math.FLOAT_MAX, Math.FLOAT_MIN_MAG, Math.INT_MAX
    - (added) TriOsc.width(), PulseOsc.width(), SawOsc.width(), SqrOsc.width()
    - (added) Std.system(string) is now disabled by default, to enable: specify
    the --caution-to-the-wind command line flag, for example:
    %> chuck --caution-to-the-wind --loop
    - (removed) SqrOsc.width( float ), width is always .5
    - (fixed) it's now (again) possible to multiply connect
    two UGen's
    - (fixed) OS X only: sudden-motion-sensor HID no longer
    introduces audio dropouts below peak CPU usage
    due to added centralized polling;
    added static Hid.globalPollRate( dur ) to control
    the central SMS polling's rate
    - (fixed) Windows only: implementation of array via STL vector::reserve()
    has been replaced with a more compatible approach (see chuck_oo.cpp)
    - (fixed) dac amplitude no longer halved!
    NOTE: this increases the gain from before by
    a factor of 2, or roughly 6 dB!! BEWARE!!
    - (fixed) corrected order of shred/ugen dealloc in VM destructor,
    preventing a potential crash during shutdown
    - (fixed) UAna can now upchuck() at now==0
    - (fixed) STK Chorus UGen now has reasonable defaults
    .max( dur, float ) for initializing to delay/depth limits
    .baseDelay( dur ) sets current base delay
    - (fixed) dur +=> now no longer crashes
    - (fixed) ADSR now returns attackTime, decayTime, and releaseTime that corresponds
    to the duration-based setting functions (internally multiplied by SR)
    (thanks Eduard)
    - (fixed) STK Mandolin no longer plays without explicit noteOn
    - (fixed) unsporked Shred instances now given id == 0 (thanks Kassen)
    - (fixed) typos in ugen_xxx.cpp and chuck-specific rtaudio.cpp (/moudi)
    ChucK

    You must sign-in to post your comment:

    You can signin with your 440Software account (MacMusic, PcMusic, 440TV, 440Forums, 440Software, ...) or via FaceBook, Twitter or Google.

    Other Software by ChucK (1)

    miniAudicle
    Integrated ChucK development environment + virtual machine. The miniAudicle is a light-weight integrated development environment for the ChucK audio programming language. It can be used as a standalone ChucK...
    user
    Welcome visitor:
    Sponsor
    Share