In ChucK, a loop with no `=> now` computes in zero logical time and emits no sound
ChucK never advances time automatically. Any loop that lacks a <dur> => now statement runs forever in zero logical time — the VM appears to hang, the CPU spikes, and the audio output is silent. This is the most common trap for newcomers. If a shred reaches its end without ever advancing time it exits immediately, producing at most a click. Every time loop MUST contain a time-advancing statement: while(true){ /* work */ 1::second => now; }. Sound in ChucK only happens across a => now boundary — setting several parameters then advancing time once means they all take effect at that single instant, regardless of their order in the block.
Examples
Bad: while(true){ 440 => s.freq; } — CPU pins, silence. Good: while(true){ 440 => s.freq; 0.5::second => now; } — plays 440 Hz, advances time.
Assessment
Explain why while(true){ Std.mtof(60) => s.freq; } produces silence and how to fix it. Then describe what it means to say sound happens across a => now.