[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