[chuck-users] The ChucK Show
Michael Heuer
heuermh at gmail.com
Mon Aug 10 12:51:39 EDT 2009
> From http://music.princeton.edu/~hammond/LiLo/download.html:
> . . .
After looking through the LiLo chuck source a bit, I have to wonder if
there might be a better pattern for receiving events via OSC than
recv.event( "/changeVoice, i, i, i" ) @=> OscEvent changeVoice;
...
recv.event( "/manualChunking, i, i, f") @=> OscEvent manualChunking;
fun void oscRecv1()
{
while (true)
{
// wait for event to arrive
changeVoice => now;
...
}
...
fun void oscRecv37()
{
while (true)
{
manualChunking => now;
...
}
spork ~ oscRecv1();
...
spork ~ oscRecv37();
I wrote a ChucK class for interacting with SooperLooper that hides all
the OSC mess for sending messages. I haven't been able to come up
with a clean pattern for hiding the receiving of OSC messages.
http://www.essej.net/sooperlooper
http://github.com/heuermh/lick/blob/b30c8ab28abe6e1580e43819fe586af247cfd298/SooperLooper.ck
http://www.essej.net/slforum/viewtopic.php?f=17&t=110
Of particular concern is the fact that any method calls that query the
state of the SooperLooper engine will need to be asynchronous. For
example
SooperLooper.ck:
fun int getLoopLength()
http://www.essej.net/sooperlooper/doc_osc.html:
GET PARAMETER VALUES
/sl/#/get s:control s:return_url s: return_path
Which returns an OSC message to the given return url and path with
the arguments:
i:loop_index s:control f:value
michael
More information about the chuck-users
mailing list