[chuck-users] Communicating with external processes

Andrew C. Smith acsmith at willamette.edu
Wed Jan 21 01:19:29 EST 2009


If you have MaxMSP, Brad Garton has just released the newest version
of [chuck~] for Max5 (also backward compatible with Max 4.6).  If not,
you could check out MAUI with Mini Audicle.  All this assumes you have
a Mac, however.

Andrew

On Tue, Jan 20, 2009 at 9:43 PM, Gregory Brown <gwbrown at uga.edu> wrote:
> Andrew,
>
> It is possible to send multiple (mixed) values in one OSC message. Here is a
> chunk of code I'm working on to let ChucK send data to Processing.
>
>                        ...
>                        // send the OSC data
>                        xmit.startMsg( "osc_data", "iiff" );   // <----- note
> the second string here -- it can be a combination of "i" and "f" and other
> things
>                        col => xmit.addInt;   // col is an int declared above
> this code chunk
>                        row => xmit.addInt;   // ditto
>                        // normalize the 'color' data
>                        (values[col][row] / Math.pow(2, bit_depth) + 1) / 2
>  => float color;
>                        color => xmit.addFloat;
>                        sounding => xmit.addFloat;  // once the last element
> is added (the "iiff" from above) the message goes out
>                        ...
>
> For more details, check out the osc examples that come with ChucK, along
> with the specs on this page:
>
> http://opensoundcontrol.org/spec-1_0-examples#OSCstrings
>
> I have had good luck this week getting ChucK and Processing to play nice
> together, for what it is worth.
>
> Good night,
>
>  - Greg
>
>
>
> On Jan 21, 2009, at 12:29 AM, Andrew McPherson wrote:
>
>> Hi all,
>>
>> What are the ways to communicate between ChucK and external programs?
>>  Specifically, my code has a lot of parameters to adjust in real time, and a
>> GUI would be a nice way to do that.  I could put the GUI together in PD or
>> Cocoa, but how can I transmit the data to ChucK?
>>
>> The two ways I have found to receive external data are MIDI and OSC.  MIDI
>> control changes can be a little coarse in terms of resolution (even with
>> 14-bit values), and for most programs it'll need some sort of loopback
>> driver to handle the routing.
>>
>> OSC seems closer to a generic way of interchanging data, but it looks like
>> I would have to spork a different thread for each parameter I want to
>> receive (since they'd have different addresses), and that I can only receive
>> one value per OSC event.  If I wanted, say, to receive 3 floats as part of
>> one message, is there a way to do that?
>>
>> Is there a way to read directly from a pipe to another process?  I'm
>> thinking of a setup where an event is signaled when new data is available at
>> the input.  Any other thoughts on how to approach this task?
>>
>> Thanks much,
>> Andrew
>>
>> P.S. Semi-related to the above: is there a way to wait on 2 events
>> simultaneously?  Thinking of something like these:
>>
>> midiEvent || oscEvent => now; // wait for whichever comes first
>> midiEvent || 200::ms => now; // wait with a
>> timeout_______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
> _______________________________________________
> 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