ChucK Demos

ChucK Demos site by Arve Knudsen collects demonstrations of the ChucK music programming language, with the useful ability to play them back in your browser (provided that your browser supports the Web Audio API). In-browser execution of ChucK programs is made possible by the ChucKJS JavaScript library.

The site will host my Risset's Arpeggio code,  re-written to use only functions and no classes, since ChucKJS does not have support for the latter. Sporking was eliminated as well, since that too is not yet implemented.

The nice Arve version:


Inharmonique 1

I composed Inarmonique 1 as a first study on spectral composition using sine wave interference patterns, aka Jean-Claude Risset's harmonic arpeggio. I have written previously on this topic here
The particular approach of the piece is to use "spectral scans", that involve the beating effect, of inharmonic partials.

To get the result I implemented the famous Risset instrument in chucK, wich, compared to csound, in my opinion allows for greater freedom of instrument design and parameter setting, given its OOP nature. 

First of all I needed an efficient additive synthesizer to create the wavetables:

Then in a 'score' file, the core 'risset' function. Delta is the basis on which detunings are calculated:

Finally, in the same score we can experiment with the 'classic' examples, and 2 new ones:

Since there isn't (still) an efficient way to destroy an object in chucK, I used concurrency (spork) as a workaround.
To run the code smoothly, remember to 'add' (spork) the class file shred (the additive synth) before sporking the 'score' file.
Inarmonique 1 is based on an extension of the last instrument inharm().

Read more: