svn has some big changes to osc and midi input that makes things easier and more consistent to work with. the main change is that you can now set osc and midi receivers on specific types of incoming messages . so for osc you can associate individual receivers with particular osc paths:
(osc:receive "/hello" (lambda (m) ...)) (osc:receive "/goobye" (lambda (m) ...)) for midi you can associate receivers with specific midi status opcodes: (mp:receive mm:on (lambda (m) ...)) (mp:receive mm:bend (lambda (m) ...)) you can have multiple receivers in effect at the same time and you can assign a 'default' receiver to handle all messages that no other receiver is assigned to. To set a default receiver just provide the function without a path or opcode, eg: (osc:receive (lambda (m) ...)) (mp:receive (lambda (m) ...)) in the case of default receivers the first element in the message data will be the path or midi opcode so the default receiver knows what type of message it received (for specific receivers the path or opcode are not needed and not part of the data.) all receivers are procedures that take a single (list) argument. this list will contain the message data received at the port to clear a receiver specify #f as the receiver value (mp:receive mm:on #f) to clear all receivers call the function with no arguments: (mp:receive) to see what receivers are in effect use (receive?) (osc:receive?) (osc:receive? "/hiho") also added new function osc:bundle, eg: (osc:bundle <time> ...) sends bundles of osc messages at a (relative) timetag. so (osc:bundle 0 (...) (...)) sends two messages at osc_immediate and (osc:bundle 0.5 ...) sends .5 seconds in the future ive also optimized osc input and tested it with largish messages of 10 ints/floats every 15ms for 20 minutes. s7 handled it fine. also reveiving midi input from a disklavier and sprouting processes that play acompanyment using SuperCollider synthdefs. =:) _______________________________________________ Cmdist mailing list [email protected] http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
