[chuck-users] generating a wav|mp3 unattended via cron
Vassili Slessarenko
urbanmuzak at urbanplexus.net
Mon Jan 15 14:08:33 EST 2007
Wouldn't it actually be simpler to just run another cron job in how much
time you need for chuck to stop writing with "chuck --kill"? that way
you don't have to know anything about shreds or even programming chuck :)
Kassen wrote:
>
>
> On 1/15/07, *Wegwerf Adresse* <w3gw3rfadr3553 at googlemail.com
> <mailto:w3gw3rfadr3553 at googlemail.com>> wrote:
>
> Hello list,
>
> my first posting, I am not so much a musician as rather interested
> in hoe our digital technology advances. ChucK caught my attention
> with its interesting mixture between programming and creativity.
>
>
>
> Hi, Chris, you wouldn't be Dutch by any chance? (I noticed the "hoe"
> above...)
>
>
>
> I would like to generate this piece on a soundcard-less server,
> preferably without my intervention (via cron).
>
>
> Sounds like a good plan.
>
>
> I found the '--silent' option to suppress audio output and a file
> rec-auto.ck <http://rec-auto.ck> to record into a wav file.
>
>
>
> Exelent, you are nearly there already.
>
>
> But that way the recording-to-file doesn't stop, it keep growing
> bigger.
> I also could not find anything in the docs.
>
>
> Right. So; what we need is something to stop the recording to the file
> and indeed preferably something to stop chuck completely. What you could
> do is start chuck in a non-looped way ("chuck --silent filename.ck
> <http://filename.ck> record.ck <http://record.ck>" would do). Now if
> something would remove all shreds from the VM chuck would shut-down and
> in this process should close the recorded file.
>
> So if your record.ck <http://record.ck> would machine.add() a shred
> who's sole purpose would be to wait for -say- ten minutes (of ChucK
> time), then remove all shreds (and itself at the end too) then you'd be
> in business.
>
> Now it gets a bit hard because it's not always obvious what the ID of
> the last shred is and we need a ID to remove shreds. If for your sounds
> you can easily establish the ID of the highest shred I'd recommend
> something like this;
>
> 10::minute => now;
> //kill all lower id's then self
> for(0 => n; n< me.id(); n++) Machine.remove(n);
> //then everything higher
> for( (me.id() + 1) => n; n < highest_shred_id; n++) Machine.remove (n);
> //somebody has to turn the light out...
> m.exit();
>
> Don't spork this as a function; if you do it will be killed when the
> parent that sporked it is killed.
>
> When you don't know the ID of the highest shred that's not a child
> (killing parents kills their childeren) then it gets a bit harder. what
> you could try is Std.system() which send a request to the OS.
> "Std.system( chuck --kill)" should make chuck request that the system
> kill it. Theoretically. I think I saw some weird behaviour coming from
> Std.system and IMHO " Std.system( chuck --kill)" is pushing the envelope
> of what's sensible to do (but it's kinda fun because of that).
>
> So what is a good, reliable way to create music files?
>
>
>
> I believe that official policy is still that ChucK shouldn't be used in
> anything aplication that requiers reliability, including but not limited
> to nuclear reactor management, public performance and especially
> alarm-clocks.
>
>
> > I want my computer to create a file every other week and use it as
> an alarm clock in the morning. ;)
>
>
> I recommend making sure your algorithems *always* generate a sound.
> Silence is a sound too, or so I was told, but silence isn't a
> alarm-clock. ;-)
>
>
> Kas.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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