Quick Question About Osc & Processing And

basically i’ve been trying to figure out for the longest and I have tried different scripts in processing and posted on the
forum last year and never got responses Processing Sketch post.
somehow if anyone is familiar with processing could you post some example code sketch that I can use to link basic image movement reactions to the audio output of renoise through osc messages if that makes any sense.

I think the trick is to read out the parameters of the signal follower and send these values through OSC to your processor.
You would only need a notifier to link to the signal follower parameter (or perhaps the specific effect parameter of the effect being used, e.g. the filter) in order to allow the send routing from kicking in and send the most actual value to the other side, but that is just an idea whip up here when i see the Vimeo video.

thanks that makes sense.
gonna test out.

Well, since i saw that video of course i wanted to accomplish the same kind of thing. Good for live visualization or just for fun when you’re composing, whatever. I got so so far in an hour or two with the OscP5 lib’s documentation, a bit of experimental, looking around in the renoise lua terminal. So now I have

SignalSend.lua

OscMessage = renoise.Osc.Message  
  
local client, socket_error = renoise.Socket.create_client(  
 "localhost", 8000, renoise.Socket.PROTOCOL_UDP)  
  
if (socket_error) then   
 renoise.app():show_warning(("Failed to start the " ..   
 "OSC client. Error: '%s'"):format(socket_error))  
 return  
end  
  
x = os.clock()  
for i = 1, 2000, 1 do  
 client:send(  
 OscMessage("/levels", {  
 {tag = "f", value = renoise.song().tracks[1].devices[4].parameters[1].value},  
 {tag = "f", value = renoise.song().tracks[2].devices[5].parameters[1].value},  
 {tag = "f", value = renoise.song().tracks[3].devices[4].parameters[1].value}  
 })  
 )  
 while x + 0.02 > os.clock() do  
 -- nothing  
 end  
 x = os.clock()  
end  

and this will keep sending OSC messages about the kick, hat, and snare level every 20 ms. For this purpose those channels all have a signal follower, routed to a hydra device so that the hydra’s input can be easily seen from the lua script. Bad news is, although the music keeps on playing and still sounds quite good and on time… the thing will eat max cpu doing nothing, and although i see the visualization in my processing sketch, renoise will ask every 5 seconds or so whether i want to terminate the script (so until i click no the processing app will stop moving). All i need is to figure out how to make the script wait for instance one tick before sending the next bunch of info. With a 128 bpm tempo and normal other settings that would be about every 10 ms so quite enough for a decent 25 fps processing…
Should i work with observables in the script?

vis1.pde

import oscP5.*;  
import netP5.*;  
  
OscP5 oscP5;  
NetAddress myRemoteLocation;  
float kickLevel, hatLevel, snareLevel;  
float diam;  
int kickx, hatx, snarex;  
  
  
void setup() {  
 size(600,200);  
// diam = height/2 * 0.75; // 150  
// float unit = width / 6;  
 kickx = 100; hatx = 300; snarex = 500;  
 frameRate(25);  
 /* start oscP5, listening for incoming messages at port 8000 */  
 oscP5 = new OscP5(this,8000);  
  
 myRemoteLocation = new NetAddress("127.0.0.1",8000);  
  
 oscP5.plug(this, "levels", "/levels");  
}  
  
public void levels(float kick, float hat, float snare) {  
 kickLevel = kick; hatLevel = hat; snareLevel = snare;  
}  
  
void draw() {  
 background(0);  
 fill(255,0,0);  
 arc( kickx, height/2, 150, 150, 0, kickLevel*4 );  
 fill(0,255,0);  
 arc( hatx, height/2, 150, 150, 0, hatLevel*4 );  
 fill(0,0,255);  
 arc( snarex, height/2, 150, 150, 0, snareLevel*4 );  
}  
  
/* incoming osc message are forwarded to the oscEvent method. */  
void oscEvent(OscMessage theOscMessage) {  
 if(theOscMessage.isPlugged()==false) {  
 /* print the address pattern and the typetag of the received OscMessage */  
 println("### received an osc message.");  
 println("### addrpattern\t"+theOscMessage.addrPattern());  
 println("### typetag\t"+theOscMessage.typetag());  
 }  
}  

(not making a video just yet but with this image you can get the idea…)
uploading some pic to my post… can’t find the button… forget about it :P

could this be of any help :
osc output initial version