Osc Output Initial Version

Hi all, this is the first version of my OSC ouput plugin for Renoise.

This version is hard coded to send data to localhost on port 8001.

It outputs all the note data on the current line for each track in the following format:
/renoise/note track_# note_string instrument_# velocity_#

If there is more than one note column for the current track, it appends the note data as follows:
/renoise/note track_# note_string instrument_# velocity_# note_string instrument_# velocity_#

I am not sure if that is the best way to handle multiple note columns. Maybe I should also use OSC bundles…

Attached is a PD patch so you can see the messages as they are sent by Renoise.

Technically, the plugin waits for an idle notifier, then outputs all line data since the last time the idle notifier was called. So whenever any line is skipped by the idle notifier, the plugin tries to catch up.

This is my first Lua experience, so please post any comments or suggestions.

Todo:

  • A GUI and preferences
  • Give the options to use strings or numbers
  • Do not output muted or invisible data

Something about the OSX folder I think may have made it throw an error during installation, but after unpack an repack it said it was installed already.
I have troubles with getting mrpeach working so I used this:

Works very well, thanks tof!

Is there a chance that this be updated or something like it be made anew for R3. This seems to be exactly what I’m looking for, without me having to dig into scripting.

Btw what version of Renoise was this tool originally working on? I tried it on 2.8 with no success.

Probably 2.6 then, but the most important change regarding note-data through OSC in Renoise 3.0 compared to <=2.8.x is that the first instrument reference no longer offsets from 0 but 1.
So even if the conversion would work, any particular instrument reference probably has a -1 subtraction algorithm that needs to be removed/adjusted from the Renoise script.

Thanks vV. I’ll see if I can make it work in 2.6

You can make it “work” (well appear, i don’t have PD so i can’t test it) under Renoise 3.0. I’m not sure what platform you run Renoise on, but go to “Help → Show preference folder” and from the root of that folder that you got directed to:
Edit the Scripts\Tools\com.renoise.OscOutput.xrnx\Manifest.xml file in a text editor and change the API version from 1.0 to 3.0.
Save the file and go back to Renoise
Open up the Tool Browser
Select the OscOutput tool
Click the “enable” button and Renoise will do a conversion to API 4.0.

The OscOutput now appears in the tools menu.

Great!! That worked. Thanks! I’m not using PD for this, instead I’m trying to send note data to grasshopper to produce and manipulate geometry based on note values…making visualizations that directly respond to a tune.
This script works but seems limited to data from one track at a time, or rather when I do have notes playing from multiple tracks they overlap and I can’t separate them. I have no idea if this is due to this script or the receiver I’m using.

@ Tof.

I wanted Renoise to ouput his “transport” (pattern pos and line pos) information to Max7 using OSC. I’ve borrowed your code and customized the OSC output function to send the current pattern number and the current line. After a five hours of work… (because i’m a beginner in lua scripting), I’ve tested it functionnal in the 3.1 beta.

First, thanks for sharing your OSCRenoiseOuput tool.

Second, May I share my adaptation in a new version mentionning your original tool and name? I will also share the Max patch receiving the pattern and line data… when completed

-----edited a few days after…-------------------------------------

Finaly, while raising the tempo and lbp to the values I use: bpm between 140-200 and lpb @ 24. I experience the maximum “realtime capacity” of the lua engine and loose “transport” info lines gathered by Max… like it is mentionned in this thread, (that I discovered while trying to solve the problem.)

So it seems impossible at this time to accuratly send the pattern position and line position to Max or PD at realtime speed…

-------For documentation purpose---------------------------------

Here is some other related thread of interest about this topic:

https://forum.renoise.com/t/osc-communication-questions/30795

https://forum.renoise.com/t/sending-osc-from-globaloscactions-lua/36737

https://forum.renoise.com/t/how-can-i-track-song-progress/38079

https://forum.renoise.com/t/osc-output/30485