Setting up Duplex (Renoise 3.0)


Does anyone have Duplex + 128 working in Renoise 3.0?

I have the following working:

  • serialosc
  • Mark Eats Sequencer
  • sum

However, when I load up Duplex, I don’t get any feedback to/from the 128. I’m sure this is just a port/prefix/configuration problem. Any suggestions? I have tried setting the Out port to match the port number in the Bonjour browser, but this had no effect.

I am able to make Duplex work fine via monomebridge.

yes, looks like duplex is for monomeserial which is deprecated.

is duplex included with renoise? we should get the new version in there if so.

1 Like

Renoise has plugins called “Tools”, and Duplex is one of them. (It’s probably the most popular Renoise Tool). It supports scripting and can be used to make apps. Several are included and many are inspired by monome apps. It has to be installed separately, it is not included with Renoise.

This forum post tracks beta Duplex development.

The Sequencer app is really quite nice.

You can use serialosc with Duplex too. First edit Duplex/Controllers/Monome.lua in the tool folder and set self.comm_protocol = self.SERIALOSC.

The next step is to make sure your monome in/out ports match Duplex configuration. You can either check serialosc session data (look here for configuration paths) or use pymonome bridge, which links serialosc to certain apps with static ports (rove, duplex, processing, etc.)

My personal favourite Duplex app is mlrx :smile:


whoa! are renoise plugins fully written in lua or just the config scripts?

1 Like

Yeah, all in Lua, including some built-in logic (OSC responder, etc.).

Intrigued by Renoise, will give this a gander

Oh, Renoise looks really interesting. No idea why I’ve missed that before. Will download a demo on the weekend to try.

I’m just having visions of using Renoise with a monome and a few other controllers as the audio and software instrument hub with live input of primarily my modular synth, and then slave rewire ableton with some max4live things and plugins as a bunch of effects channels to Renoise.

Anyone doing something similar and can share experiences?

This is my primary setup at the moment. Renoise is the host for instruments, effects and samples, all routed internally and controlled with the monome via python scripts. It also serves as the clock source for the monome apps.

1 Like

Hi, it’s a long time I don’t use my 128 and a lot of things have changed here! I recently bought renoise (3.1) and I would like to use it with monome. Can you tell me exactly where to edit this scripts? In the renoise Script folder I have a Tool folder with just two folders : ToolUpdater.xnrx and UpdateChecker.xnrx . Duplex is installed but the file is not in the tool folder and anyway I can’t open it to edit anything.I am a little bit confused!
Can you help me?
thank you

EDIT: I was able to set the script in the monome.lua file but loading Duplex in Renoise I can’t use the 128, even selecting it. I have no response from the grid. I suppose I have some problems with configuration/ports but the link to checking Serialosc session data is not available anymore and the second option (use pymonome bridge ) it is very complex for me as I’m not really good in scripts and similar. If I am not wrong I should use Python to use aiosc and then run pymonome app but I’m not very sure and I’m not able to do that. Any ideas to make this thing work?
Thanks a lot

I edit previous post

Editing serialosc configs is easier, yeah. The documentation looks gone indeed, but depending on your operating system, serialosc configuration data resides in the following directories:

Linux: ~/.config/serialosc
Windows: C:\Users\<user name>\AppData\Local\Monome\serialosc
MacOS: ~/Library/Preferences/org.monome.serialosc

Unplug the grid, find the grid settings file in the config directory - the file you’re looking for will probably be named like m00000000.conf with your grid serial number instead of zeroes.

Edit the file so the ports match those your specified in the Duplex script and make sure the prefix is also the same. Hope that helps! :slight_smile:

Thank you so much for the infos Artfwo! I think I’m going in the right direction but I still have some problems:
In the .conf file there is just a single port you can edit while in the Duplex settings I have in and out ports. So my first question is which port I assign in the .conf file? is there a way to modify the .conf file to have in and out port settings?
The second question is: have I to change also the server address? in the renoise OSC preferences the UDP port is 8000 so I changed that value too in the .config. Is it right?

the prefix is right and address too. But trying different settings I have no response from monome and from renoise.
How many errors I’ve done? :slight_smile:
this is the (notworking) setting

Any suggestions? Thank you!

Take a closer look at your config file. There’s server { port = ... } section and application { port = ...} section. The server port is where serialosc is listening for incoming led commands. The application port is where application can be listening for key presses from the grid.

The application port should match the in port of Duplex.
The server (listening) port should match the out.

Everything else looks good!

UPD: edit the config file only with the grid unplugged! The settings will take effect when you plug it back in.

Thank you so much for your patience and the time you spend with my issues. I’ve set everything as you said but the 128 is still ‘dead’, I’ve no led activity or response even if the gui is running after press play in renoise.
I’ve tried with several Duplex app (step sequencer, mlrx, etc) but no way.
Do you have any ideas to solve this?
Thank you in advance

Edit: I restarted the computer, plug the monome, opened renoise loading Duplex and a step sequencer. Then I pressed “run” and one led of the 128 and this message appeared:

‘/Users/lXXXo/Library/Preferences/Renoise/V3.1.1/Scripts/Tools/com.renoise.Duplex.xrnx/main.lua’ failed in one of its notifiers.
The notifier will be disabled to prevent further errors.

Please contact the author (danoise []) for assistance…

./cLib/classes/cLib.lua:96: variable ‘NIL’ is not declared
stack traceback:
[C]: in function ‘_error’
[string “local mt = getmetatable(_G)…”]:29: in function <[string “local mt = getmetatable(_G)…”]:24>
./cLib/classes/cLib.lua:96: in function ‘pack’
./Duplex/ControlMap.lua:693: in function ‘match_osc_param’
./Duplex/ControlMap.lua:813: in function ‘get_osc_params’
./Duplex/OscDevice.lua:217: in function ‘receive_osc_message’
.///Duplex/Controllers/Monome/Monome.lua:148: in function ‘receive_osc_message’
./Duplex/OscDevice.lua:197: in function <./Duplex/OscDevice.lua:157>

Not sure what is the problem, looks like something’s wrong with the code in Duplex scripts. Have you changed anything else besides self.comm_protocol variable in the Lua scripts?

Yes, I changed self.comm_protocol with serialosc in every line where there was monomeserial instead of changing it just in the first line, so that’s my fault. I uninstalled duplex and modified in the right way. Now when I load Duplex apps and I press run I see led lighting on the grid, so using the gui.
The problem is that when I just press a led on the 128 the error message I post previously appears. So I suppose communication is right between app and 128 now (led lighting when ‘run’ or play are pressed) but the opposite (grid -> app) does 't work.
Do you think it could be a script error somewhere? I checked and everything seems ok there.

Hey, I’m maintaining the Duplex tool. Just registered here to let you know that I was made aware of this NIL issue, and that it’s being taken care of.

The instructions you provided for serialosc were very handy btw. Had forgotten where this sneaky .conf file was located…