Hi If I do "chuck time.ck" then "chuck + shaker.ck" I hear the shaker ticking along after a while. If I then do "chuck + change_bpm.ck" the time is speeded up but the shaker goes silent. 1) Why does it take a while before the first shaker is played, and why isn't it always the same amount of time? 2) Why does the shaker stop playing when I update the bpm? As you might guess I suspect this to be something with static data. I know "static" means "static" so if they can't be updated like this, would the way to go be to send the bpm update as yet another event? -- peace, love & harmony Atte http://www.atte.dk | quartet: http://www.anagrammer.dk http://www.atte.dk/gps | compositions: http://www.atte.dk/compositions public class Time { int bpm; static dur quarter; static dur eight; static dur sixteenth; static Event q; 10 => bpm; fun void setTime() { 1::minute/this.bpm => this.quarter; this.quarter/2 => this.eight; this.quarter/4 => this.sixteenth; } fun void sendTime() { while(true){ this.q.broadcast(); <<<"q.broadcast", now>>>; this.quarter => now; } } } Time T; 80 => T.bpm; T.setTime(); T.sendTime(); Time T; 4::T.quarter - (now % 4::T.quarter) => now; Shakers inst => dac; [0,2,3,1,4,2,6,3,4,4] @=> int mel[]; for (0=>int i; ; i++) { <<<"shaker">>>; std.mtof( 60 + mel[i%mel.cap()] ) => inst.freq; inst.noteOn( 0.5 ); T.q => now; } Time T; 200 => T.bpm; T.setTime();