[chuck-users] teaching with ChucK (was Windows XP ...)

joerg piringer joerg at piringer.net
Thu Apr 20 20:29:56 EDT 2006


Hi Ge,
ssssounds great!
i am still exploring chuck (currently trying to implement 
sample-timestretch, scroll down for a very messy & crude attempt) but i 
think this will be my tool of choice, so you can put me on the "list of 
places that use ChucK for education".

best
joerg

Ge Wang wrote:
> Hi Joerg!
> 
>> btw: anyone using chuck for education? i am planning to use chuck in a 
>> class at university...
> 
> I think several institutions have started to use chuck as a teaching 
> tool, both for audio synthesis and programming.  We taught and are 
> teaching the Princeton Laptop Orchestra with ChucK, and have been 
> pleasantly surprised by the result.  Last semester, we taught ChucK to 15 
> freshmen (none of whom had prior programming experience).  They were 
> hooked from the start (the assignments eventually included building a 
> on-the-fly generative drum machine, a soundscape, duo and trio 
> performances).  The bulk of the success, I believe, was due to the sheer 
> creative will and energy of the students (they all were fantastic), but it 
> also proved to us that ChucK can be a viable and beneficial teaching tool.
> 
[snip]
> 
> Perry, Dan Trueman, Scott Smallwood, and students can provide better, 
> potentially different, and more extended perspectives, this was just my 
> 2::cent on ChucK and PLOrk.
> 
> If anyone else is using ChucK in the classroom (I know of folks at UVic, 
> McGill, GA Tech, and few other places that use chuck to various degrees), 
> we'd love to hear about it.  Perhaps we can eventually make a list of 
> places that use ChucK for education, and share our materials/experiences.
> 
> (Feel free to fire away.)
> 
> Best,
> Ge!


// the patch
sndbuf buf => blackhole;
impulse i => dac;

// load the file
"../data/voice.wav" => buf.read;

2000 => int looplength;
0.01 => float loopadvance;

0 => int sm;
0 => float rpos;

// time loop
while(true)
{
	buf.valueAt(sm + (rpos $ int)) => i.next;
	if(sm > looplength)
		0 => sm;
	else
		1 +=> sm;
	if(rpos > buf.samples()-looplength)
		0 => rpos;
	else
		loopadvance +=> rpos;
	
     1::samp => now;
}

-- 
http://joerg.piringer.net
http://www.transacoustic-research.com
http://www.iftaf.org
http://www.vegetableorchestra.org/


More information about the chuck-users mailing list