Osc Discussion (How Where What To Use Osc)

razzle dazzle!

I’ve tried numerous ways of sending a boolean only to constantly be rejected.

based on
http://opensoundcontrol.org/spec-1_0
and
http://danielnouri.org/docs/SuperColliderHelp/Control/NetAddr.html

this with SC3 should work

  
b = NetAddr.new("127.0.0.1", 8007);  
b.sendMsg("/renoise/transport/loop/block", ",T");  
  

for this in GlobalOscActions.lua:

-- /transport/loop/block  
  
add_global_action {   
 pattern = "/transport/loop/block",   
 description = "Enable or disable pattern block looping",  
  
 arguments = { argument("enabled", "boolean") },  
 handler = function(enabled)  
 song().transport.loop_block_enabled = enabled  
 end  
}  

I found an iphone app for SuperCollider:
http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Compiling-sc-for-iphone-guide-for-absolute-idiots-like-myself-td4566644.html

  
b = NetAddr.new("127.0.0.1", 8007);  
b.sendMsg("/renoise/transport/loop/block", true);  
  

?

That or this:

b = NetAddr.new("127.0.0.1", 8007);  
b.sendMsg("/renoise/transport/loop/block", "true");  

Would seem like it should work, but it doesn’t.

is there any free or open source programs anyone is using that is able to send a message with a boolean to renoise, and it work?

Bueller?

Pure data.
Might need to get pd-extended though which I think includes the osc externals.

going to see if mr peach works in OSX pd=extended, it doesn’t work for some reason in w7.

anyway I just found this while trying to find a boolean example.
http://code.google.com/p/vvopensource/

new OSX stuff for OSC

reason why no one answered with a method for getting renoise to accept a boolean…

this is probably 3+ weeks old.

is because it’s not actually possible to get renoise to accept a boolean…

http://code.google.com/p/vvopensource/downloads/detail?name=OSCTestApp_0.2.2.zip

I think I’m going to go torture myself, some more.

<< only accepts integers >>
/renoise/transport/bpm

TAKTIK

the problem I stumbled upon that you figured out with w7 and GlobalOscActions.lua needing to be removed.
remember when I changed the word COPY to MOVE? That same bug you found is also in OSX version b4.

please look at the boolean thing too.

Works for me:

VIDEO:
http://www.trotch.com/tmp/osc_bool_testapp.mov

This one works perfectly…:
1161 com_renoise_osc_example_1.xrnx

You are really doing something wrong in your test application…

from GlobalOscActions.lua:

The message arguments are passed to the process function as a table
(array) of:

argument = {
tag, – (OSC type tag. See http://opensoundcontrol.org/spec-1_0)
value – (OSC value as lua type: nil, boolean, number or a string)
}
does that means you can?

ahhhhh, port 8000, if 8008 is used it won’t work. if 8000 is used it will work.

now that this is solved, why would 8008 or anything not 8000 not work?

I keep getting socket error of foreign address failed (22: invalid arguement)

At least now I know renoise accepts “T” and “F” and nothing else, whatsoever, at all, ever.

wait no that is wrong.

renoise ONLY accepts:

T  

&

F  

from external sources, can’t have anything else whatsoever, no quotes, or anything other than T or F.
I hate booleans.

Which OS do you run this on?
Do you get this internally from the script through the message box of the script’s error-handler or even in the terminal console?

Renoise simply obeys the OSC protocol standard which states that the boolean tag-type comes with no arguments.

OSX,
a pop up:

ah I overlooked the TCP part.

why TCP?

it works! I’m going to add stuff to it. :)

after I started getting that problem with renoise not-responding a few weeks ago.
all of my testing was using 8007 and 8008, it never occurred to me to only use 8000, until it’s fixed.

I made it a habit to use TCP.
For time-critical processes, TCP is more reliable. UDP has proven not to be reliable in these cases.

I have uploaded a slightly modified version of this tool to the SVN trunk.

The declarations header now has this:
local host = “localhost”
local port = 8000
local protocol = renoise.Socket.PROTOCOL_TCP

The connect_to_server() function now simply connects like this:
client, client_error = renoise.Socket.create_client(host, port, protocol)

If you don’t like TCP, simply change it to UDP :)

Are you trying to set up your own return port or something? this is something that supposed to be done automatically.
Using port 8008 should simply be enough. If that doesn’t work, is there something else on your network that uses this port for one or another?
(8008 is usually for alt-http)

thanks for putting that in the trunk, much easier to get to. :)

Renoise was all that was running on 8007 and 8008,
except when I was trying renoise as a client, sometimes something would be on 8007 or 8008 as a host.
If that was the case I would get a WSAPI error though.

how about telling me if your renoise works with booleans and floats on 8007 and 8008 :D
This way, if it does accept booleans & floats on 8007 and 8008 = I’m crazy and there is no bug.
Because I am with the firm idea, I’m not crazy, and there is a bug.

This is not true. Interprocess messages, messages that are not even leaving your computer will never be lost. Even in a local network UDP should be safe to use. TCP only makes sense if you are sending messages through the internet.

why doesn’t this work. seems like the simplest example possible.

just outputs
/transport/loop/block with 1 arguments (REJECTED)
/transport/loop/block with 1 arguments (REJECTED)

which btw, can we get more details than just REJECTED on things.