In the scripting editor, select GlobalOscActions.lua, then a little way through the file you will see a section for transport. that is where these go.
It would be better to put all of these in a file GlobalOscActions.lua would call, but I don’t know how that’s done yet. For lists of everything that can be addressed, look in the documentation of the files with “~.API.txt”.
Like Taktik wrote make sure you have a copy of this as when B3 comes it .will be written over.
In the last 2 examples you are using a more descriptive and concise address pattern.
In the first example, I can’t figure out what is accepted to send it.
What is the input the api accepts for a boolean with an argument?
I just can’t make sense of what the interpreter is actually accepting in several cases.
No problems at all sending this with pd, I don’t need to specify it’s an integer as the type tags are already turned on by default, I think.
Then for your first example, essentially I would think first to send:
[pd]send /renoise/transport/edit_mode[/pd]
Since it’s a boolean with an argument, I know something else needs to be sent with it but, I can’t find what else to send.
I would think
[pd]send /renoise/transport/edit_mode true[/pd]
would work but… it doesn’t want that.
If that supposed to be the correct message format… i’m still getting Rejected in my test scenario…
In general 0 stands for true and -1 stands for false if specifically numbers have to be send as boolean values.
Or try vice versa or try with 0/1 instead of 0/-1.
FYI, I’ve been using this to test pd-extended with renoise’s api.
So far quite a bit is accepted, a few of them are miswritten because I’m simply a gorilla with a keyboard.
in case you or anyone else wants to have a look.
I’m not sure if it is actually using anything from pd-extended, I just grabbed pd-extended since it had more.
Ehm. No. A boolean in OSC is a boolean and not some kind of number.
Same in Lua: the number 0 evaluates to true in Lua.
Moonrider:
Sorry, I don’t know how to send boolean arguments in PD. But if that doesn’t work, then simply use the “edit_mode_on” “edit_mode_off” patterns?
it fires current inst & track C-4 7F
in the pd file I uploaded to wikisend it should work.
something like this:
[pd] send /renoise/transport/edit_mode 1 [/pd]
will get rejected with boolean with an argument, I guess it could be from pd’s side sending it as an integer, and renoise seeing it as incorrect?
That would make sense.
That makes more sense then indeed…
Quite confusing how parameters should be send…
This doesn’t work from within the Lua script (connecting works but the message gets rejected):
[phpbox] function connect_to_server() client, client_error = renoise.Socket.create_client(osc_host,osc_port) connection_status = IN_PROGRESS if client ~= nil then if client.is_open then print(“client open”) client:send(OscMessage(“/renoise/trigger/note_on(-1,-1,48,127)”)) else if client_error then local err_msg = “Could not connect to server reason: [”…client_error…"]\n\nPlease check your network connection and try again " local choice = renoise.app():show_prompt(“Network error”,err_msg,{‘close’}) end end else local cl_err = “Client connection-establishment failed.” if client_error ~= nil then cl_err = client_error end local err_msg = "Could not connect to server reason: “…cl_err…”\n\nPlease check your network connection and try again " local choice = renoise.app():show_prompt(“Network error”,err_msg,{‘close’}) end end [/phpbox]
I would expect this supposed to work from within Renoise.
Parameterless commands like transport_start and transport_stop work flawlessly though.
You can not pass arguments by simply adding them to the pattern.
Please see XRNX/Trunk/Snippets/Osc.lua on how to send and receive OSC in the Renoise Lua API.
Looks like we badly need a tutorial for all this OSC stuff. I’ll try to do one in the next days. If someone else is familiar with OSC and wants to help with this, this would be very appropriate.
I would be glad to help.
However, I’m moving house this week and will be busy until next weekend.
Something that I think needs doing is creating a master GlobalOscActions.lua for possible distribution with 2.6 final.
With an address space created of say everything in the midi mapping dialogue initially.
This would allow anyone fluent in other osc capable software to be able to control renoise externally straight away without diving into the lua scripting environment. And for those that are getting stuck in with lua, another possible way of hooking up osc hardware (monomeserial to duplex for example) by remapping the incoming data easily to the standard methods contained.
I simply wasn’t sure how big the interest would be in OSC and Renoise. So I kept the default impl very very basic and easy, also hoping that we get some help to finalize, extend from the community.
Also it felt wrong top copy and paste all we got in the MIDI mapping to OSC.
Finally, you can do nearly everything with the “evaluate” message, so we should encourage people to use it. Osc is not easy, scripting is not. They pair up quite nicely then
Examples of methods for sending messages from renoise as a client to renoise as a server would be lush.
Then we could have a 1:1 (terminal to terminal) on what is accepted between instances of renoise?
Is this right? could we send messages from the Terminal?
In the future I would really like to see the terminal more verbose with rejected messages, or what it’s interpreting before being turned to binary.
Osc examples for addressing tracks and dsp-devices, meta-devices and the pattern matrix could more than likely really kick start my understanding & usage. From what I’ve noticed this stuff isn’t directly accessible yet. (unless it’s somehow called with midi maybe?)
Oh yeah, and what has everyone been using to test the Osc communication with Renoise?
That seems like a documentation error here or a function problem.
A read-only item is mostly described so in the docs.
Edit:btw, if you are not sure about how to submit stuff, i personally forget this quite a lot of times myself try this in the terminal command-line:
oprint(renoise.song().tracks[1].postfx_volume)