[chuck-users] events and static data

Spencer Salazar ssalazar at princeton.edu
Mon Jun 19 01:52:08 EDT 2006


Hey there,
1) How long is it taking for the first shaker to be played?  At 80bpm  
the tempo sync ("4::T.quarter - (now % 4::T.quarter) => now;") can  
last between about 0 and 3 seconds... though anything longer (or  
shorter!) than that is probably something weird going on.

2) Unless Im misunderstanding static data members, this looks like a  
bug in chuck to me.  I tested out your code and got the same  
results.  Actually, simply instantiating the Time class in  
change_bpm.ck was enough to stop the shakers.  Furthermore, removing  
shakers.ck causes a seg fault in chuck, which leads me to believe  
that something related to the static data members is incorrectly  
being deallocated during instantiation and/or destruction of  
objects.  That might explain the segfault and also why the shakers  
shred stops receiving events.  I dont know that part of the code  
though so I cant tell whats going on exactly.

spencer

On Jun 18, 2006, at 3:54 PM, Atte André Jensen wrote:

> 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();_______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



More information about the chuck-users mailing list