[chuck-users] retrieving shred id when calling chuck from command line

Kassen signal.automatique at gmail.com
Mon Mar 11 11:03:32 EDT 2013


On Sun, Mar 10, 2013 at 07:06:32PM -0400, Szabolcs Horvát wrote:
> Hello,
> 
> I am a chuck novice, so please be gentle :-)  (actually just started
> learning today)

Welcome on board!

> 
> I would like to call chuck from another program and add/remove shreds,
> as well as control some parameters.  Adding shreds is easy, just chuck
> + shed.ck, but to remove them I need the shred id.  So the first
> question is, how can I retrieve the shred id when adding new shreds?
> 

Yes, this is a issue, it also affects automation using editors like
Emacs and Vim. I think it is needlessly complicated by the sending
process not returning the shred ID at successful addition and that
info instead ending up only in the VM window.

I just checked to be sure and even --status ends up in the vm window
only.

Maybe it is not a bug as such but I think it is at least a usability
issue. The formatting of errors appears to have been made
machine-readable on purpose (it'd be enough to have our editor cursor
jump to the relevant line and character) but it doesn't get returned
to the calling program.

> I know that the listener process prints the shred id, but to parse the
> output of the listener, weed out errors, and catch the shred id only
> is very messy.  Is there a better way?  How does miniAudicle do this
> (since it has to do practically the same thing)?
> 

Maybe the mini somehow "cheats", I never looked into the internal
design of it. Spencer will know.

> 
> The other question is about how to control all shreds with global
> parameters.  I found a way, but since I'm new to ChucK, I'm looking
> for some reassurance that this is the correct and the simplest way.
> 
> I created a class like this:
> 
> public class MyState {
>     static int freq;
> }
> 
> 500 => MyState.freq;
> 
> Then I read/set the parameter MyState.freq from various shreds.
> 
> Is this the correct way?

Yes, that is the way to get around namespace for mutable data.

Hope that helps a bit, and "welcome!" again!
Kas.


More information about the chuck-users mailing list