deQuencher - an interface for SuperCollider

Hello all,

deQuencher is a rewrite of an application I initially coded with the processing language. My first project with openframeworks and I loved every moment of it.

Here is an action shot:
http://tinyurl.com/642fnf

The source code and the Universal Binary for Macs, documentation, tutorial, tutorial video etc. are all at my website here:
http://www.batuhanbozkurt.com/home/proj-…-/index.php

The source code includes some abstractions for communicating with SuperCollider, so those who want to create synths buffers etc and control parameters on scserver can benefit from that code I think.

Comments and suggestions are welcome.
Thanks
BB.

wow, that’s looks great… I look forward to giving it a try. nice work!

Hey really nice. I just have one question.

I am trying to send OSC messages to SuperCollider, right now every message that is sent from OF is displayed in the post window but I cannot use it to control a synth, for example.

  
  
void testApp::mousePressed(int x, int y, int button){  
	  
	ofxOscMessage m;  
	m.setAddress("/mouse/button");  
	m.addStringArg( "mouse clicked" );  
	m.addIntArg( "440" );  
	oscSender.sendMessage( m );  
}  
  
  

And in SuperCollider I define a SynthDef with the name “sin” and use this bit of code to receive the message:

  
  
(  
  
var ofAddress = NetAddr("127.0.0.1", 57120);  
var oscFreq;  
oscFreq = 0;  
  
o = OSCresponder(ofAddress, '/mouse/button', { arg time,responder,msg,addr;  
	oscFreq = msg[2];                       //Message two, the int argument  
	oscFreq.postln;  
	a = Synth("sin", [\freq, oscFreq]);  
	a.run;  
}).add;  
  
)  
  

But all I get is “mouse clicked” posted in the post window in SC. All I want to be able to do is run a synth sound on a mouse click and then I can develop it from there. Any help would be much appreciated.

Actually I’ve managed to solve the problem, thanks to your source code!

I should have been using “/s_new” for the address, and then vary the nodeID (I’m using OSC to fire off synth events in SC)

I have OF and SC communicating via OSC, so if anyone needs assistance, I’ll be more than happy to help.

markgia, do you have code you could share? i would like to have a look at it. thanks!

hallo,

i tried the ofxosc addon with supercollider but only get this

  
FAILURE /mouse/button Command not found  

message in supercolider post window i tried the above posted code in supercolider and also the code from the berio blog.
but all that had the same effect. can anyone give me a hint what i am doing wrong?

thanks a lot!

ok i think i have managed that supercollider now gets the right messages to the right port. before i used port 57110 which is not the right port. now i use 57120 but i still get no sound or supercollider reaction. i use the following sc code:

  
(  
  
var ofAddress = NetAddr("127.0.0.1", 57120);  
var oscFreq;  
oscFreq = 0;  
  
o = OSCresponder(ofAddress, '/mouse/button', { arg time,responder,msg,addr;  
   oscFreq = msg[2];                       //Message two, the int argument  
   oscFreq.postln;  
   a = Synth("sin", [\freq, oscFreq]);  
   a.run;  
}).add;  
  
)  

is there something wrong with the listening ip or port? maybe someone has an idea.

i got it,

i tried different combinations of code and now it works. one thing that i learned was, that sometimes i got no result because something crashed. after restarting of and sc there were results where before were no effects.

so i used the standart ofxosc addon an dfired up an “/test” message.
here is my sc code:

  
(  
    x = {SinOsc.ar( 240, 0, Line.kr( 0.5,0.0, 0.2))};  
    f = OSCresponder(nil, '/test', { |t, r, msg, addr|  
	x.play;  
    }).add;  
)       
x.free;   

mybee this helps someone

edit:

i optimised the sc code a bit so that each oscillator dies after it was triggered. this should be much better for the ram usage.

  
(  
    x = {SinOsc.ar( 1240, 0, Line.kr( 0.5,0.0, 0.2, 1.0, 0.0, 2))};  
    f = OSCresponder(nil, '/test', { |t, r, msg, addr|  
	x.play;  
    }).add;  
)