Duplex Beta Versions

Yup. I’m trying with 0.95c and 2.6.0 final and with the simple layout both in TouchOSC and Duplex. Tried removing and re-installing Duplex too. I’ll try with some other apps that support OSC when I can to see if they work ok, or if this is some problem with TouchOSC for Android.

Forgive me for the foolish question, but…how do you assign the TouchOSC controls to different functions? The faders on the first screen controls the first four tracks, but the second and third screens do nothing, and I can’t figure out how to assign any function to them.

The kind graphical editor for such customize does not exist in Duplex.
So you need to edit the device configuration files manually, by Renoise’s Scripting Editor or another Text Editor.

For example,
if you check the control-map (Duplex/Controllers/TouchOSC/TouchOSC.xml), you can find that the 16 buttons on the second screen are grouped, and it is described like, .

Then open the application-mapping file (Duplex/Controllers/TouchOSC/TouchOSC.lua) and make new application mapping(s) for the “2_TriggerPad”. Currently, Duplex has seven kinds of applications at (Duplex/Applications/).

For more details (how to map Applications etc.), please read the Duplex manual. If you read this manual, I think that you can understand almost all things about current Duplex, as well as me (I also a noob about Duplex). ;)

New version - Duplex 0.96

  • Pimped Ohm64 configuration (thanks planetm)
  • APC20 support, APC40 coming soon (thanks satobox)
  • Mixer/Sequencer/Matrix applications : new options for following the active track index in Renoise
  • and last, but not least, realtime & persistent options for all applications

SVN please?

Thanks danoise. In the time since the 0.95 release, danoise has spent a lot of time adding features so that we could get the Ohm64 configuration working really well. It may not look radically different to the previous config, but the usability is 10x greater! danoise deserves all the credit for that.

So how does this work? I’m all ears.

Have you used Duplex before? I’d recommend just installing it and trying it out, it’s fairly self explanatory and you can move the mouse over a button on the virtual controller and duplex’s tool tips popup and tell you how the button has been assigned.

There are two configs now, one based on the matrix, the other on the step sequencer/navigator. There have been various bug fixes compared to the previous versions. The main new features are that both banks of faders now work (in the original config only the left hand bank were assigned), plus when you advance the matrix/sequencer grid to display other tracks, the faders now follow and adjust the volume of the same tracks (in previous versions the faders always controlled the first tracks and didn’t change to match the grid).

Thanks for updating SVN, I got the following error. However, I can’t reproduce it. Here’s what I remember doing…

  1. Start a new song
  2. Activate the Duplex Browser
  3. Select the AkaiLPD8
  4. Select Monome
  5. Load a new song
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: '/Users/dac514/Library/Preferences/Renoise/V2.6.1/Scripts/Tools/__svn__/com.renoise.Duplex.xrnx/main.lua' failed in one of its notifiers.  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: The notifier will be disabled to prevent further errors.  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: Please contact the author (danoise [bjorn.nesby@googlemail.com]) for assistance...  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Applications/Navigator.lua:576: attempt to index field '_blockpos' (a nil value)  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: stack traceback:  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Applications/Navigator.lua:576: in function '_get_num_lines'  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Applications/Navigator.lua:288: in function '_attach_to_song'  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Applications/Navigator.lua:277: in function 'on_new_document'  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Browser.lua:1720: in function 'on_new_document'  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: ./Duplex/Browser.lua:162: in function 'on_new_document'  
10-12-27 9:06:49 AM [0x0-0x109109].com.renoise.renoise[1373] Renoise LOG> Error Message: main.lua:202: in function <200><br>


Thanks, I’ve been able to reproduce it. The Navigator is still a bit rough, and might behave strangely under certain circumstances (like when there’s a heavy CPU load).
A bit of background info, if you’re interested.

  1. Technically, realtime manipulation of the block-loop is limited to “move up”, “move down” and “coeff”, and not direct control of position and size. The navigator tries to work around this in a pretty complicated manner.
  2. It’s hard to reliably change the blockloop in another pattern than the one you are currently editing. This is an API limitation. Turning on “follow player” is pretty important if you want to use the navigator properly.
  3. Since the blockloop object does not change it’s values instantly, there’s a possibility of small glitches. I hope to improve this somehow.

Edit: 1-2-3

I’ve tested duplex with my monome 128 and it works really superb, thanks for a great implementation!
I’m not sure if I tried all alternatives, but when sequencing the song, is it possible to get the “default” instrument for each track automatically? Now I had to manually select instrument using the mouse.

In addition to sequencing notes with velocity it would be great to add the possibility to sequence effects and automation, maybe someone already have done this?

There’s no such thing as a default instrument in Renoise, but somehow I guess you already know that… what we do have is the “Auto capture instrument from pattern” feature, which can be enabled in the options menu. Then, moving from track to track should update the instrument based on the actual content of the active pattern. Also, copying notes (hold button action) in the StepSequencer should select the instrument you just copied.

Hope this helps!

Thanks, I will try the auto capture from pattern. I’m new to renoise, so sorry for noobing :)

I have also created a script that takes the autocapture concept a bit further. It will work when there are no notes pressent in the current “track in pattern”. i.e. it takes the very first note from the whole track and sets the instrument accordingly. To speed the process up it adds the instrument number to the first note cell of a track, if it is not already present there.

please look here if interested and see full details:


Thanks, I’ve tried that now as well but cannot make it to work, I will try some more. Actually what my aim is to be able to have an instrumentselector available on the stepsequencer or on an additional controller, so you could change instrument on the fly and maybe be able to prelisten as you step between sounds. Is it possible to get the name of the instrument from the api as well (to send out via osc for example)?

A useful feature just got included: it’s now possible to use the native MIDI mapping dialog to show/hide the Duplex Browser, and switch between device configurations (next/previous or by index).

It complements the already existing feature which let you switch presets using the function keys when the Browser dialog is focused.
This means that you can use a MIDI controller for switching between e.g. the Mixer and Effects, without having to look at the screen. It also means that you might have to:

A. Remove a few mappings from your configurations, as most device configurations does not come with unassigned buttons
B. Use another controller for switching presets.

It’s recommended to use the second approach - you might avoid that the controller sending unwanted messages to Renoise (writing “garbage” to the pattern editor), which would otherwise be the case when using both native mappings and API features at the same time.

To download, check the first post

I wrote a new controller map, but where can I add it to duplex to test it? i can’t make it selectable.

Is this a control-map for new (not yet supported) controller?
If so, you have to make new folder which is renamed to the controller’s name.
And put the control-map(.xml) and config file(.lua) into the folder.
Then put the folder into;

If the control-map is for a already supported controller, you should edit the controller’s config file.
For example, please open and see the buttom of the “Launchpad.lua” file.
There is a commented-out code already there.
It’s the config for the second device called “Launchpad (2)”.

Control-maps are not selectable as such - they are referenced by the device configuration, which are all specified in the [device].lua (like satobox explains).

The Launchpad is a good example of a device with different control-maps for different purposes. But actually, the commented-out section is for making a secondary device turn up under a different name. If you ever wanted to use two launchpads next to each other, this is an example of how to do it.

Nevermind I Tested it, I made a map for the Akai MPK49 (and maybe other models 2!), everything is working fine apart from the transport buttons.
they use MMC I recalled there was another topic somewhere about this. can someone give a hint? or should I leave them out?