Duplex Beta Versions

(Akiz) #361

Hi I have one question. I work with Novation nocturn and i wanna to change duplex templates (mixer, notes on wheels, effect etc) without mouse because it breaks my workflow. Is there any way how to do it? Thanks

(danoise) #362

Hey Akiz,

yes, there is a way to change templates from the controller itself, if that is what you mean. Unfortunately, the solution is not super-elegant, but it works.
The answer is SwitchConfiguration, which is a Duplex application that allows you to select next/previous, or any of the first 16 device configurations.

This is all good, but you need to add the application itself to each configuration you wish to control, which is a bit of work. However, there is a good example of how this is done: if you look at the Ohm64 Switch configuration(s), you’ll see that each one has the next/previous switch mapped to the buttons on each side of the big crossfader. Looking into the device config itself, it is simply a matter of adding something like the following to your Nocturn config(s):

SwitchConfiguration = {  
 mappings = {  
 goto_previous = {  
 group_name = "Buttons",  
 index = 1,  
 goto_next = {  
 group_name = "Buttons",  
 index = 2,  

Alternatively, if adding SwitchConfiguration takes up too much physical space on the controller (although you could add it to one of the “virtual pages” on the controller?),
then it has always been possible to use the function keys F1,F2, etc. to switch device configuration while the Duplex browser has focus.

Hope this helps!

(Akiz) #363

It helps a lot! Thanks
F1, F2 etc. is enough. I didnt know about it.
It is so great… :w00t:

(Loolarge) #364

Is there some kind of version control server place for duplex, like github or svn? How do i submit new code?

(danoise) #365

Yes, there is a repository - all the API documentation and official tools by the Renoise team are located here:

But, this is read-only access. Simply post any code as a link or PM me ( I’m the maintainer of Duplex, so I’ll be sure to respond).

(danoise) #366

Great! Still, it’s not perfect. But at least, you can assign a shortcut to show the Duplex browser and then hit the F keys :slight_smile:

What I would like to make is “proper” keyboard and MIDI mappings for some of the non-application aspects of Duplex.
Since Duplex has been capable of “hybrid mappings” for a few versions now (using a combination of traditional one-to-one mappings and then bi-directional communication), it would make a lot of sense to introduce mappings such as these:

  • [Next] / [Previous] configuration for the selected device
  • [Set] the active configuration for the selected device (1 to 16 would seem more than enough)
  • [Show] / [Hide] / [Toggle] the Duplex browser dialog

Those would seem like the essential ones?
With this approach, there would be no need to add a SwitchConfiguration, unless you wanted the switching ability to be “always there”, completely avoiding manual MIDI mapping (a key features of Duplex, but I digress…)

(danoise) #367

A new beta version has arrived, just a few contributed features and bugfixes
@E-Fir: your additions have (finally!) been merged into the official distribution :slight_smile:

Download: Duplex Beta Versions

* FIXME MIDI pass-on got ignored when message was not handled by any controls  
* FIXME: UISlider / value at “turnaround point” was ignored  
* INTERNAL remove print() statements in favor of LOG()   
* FEATURE Duplex now support Program Change as standard MIDI-message type  
* Expanded set of key/MIDI mappings   
 - [Next] / [Previous] configuration for the selected device  
 - [Set] the active configuration for the selected device  
 - [Show] / [Hide] the Duplex browser dialog  
* FIXME issue with “autostart” option (broke the recording workflow)  
* FIXME trigger in schedule mode could schedule a pattern on the wrong page  
* New mappings: “next_track”,”prev_track” (UIButtons, replaces UISpinner)  
* New mappings: “next_page”,”prev_page” (UIButtons, replaces UISpinner)  
* FEATURE: Hold prev/next track to select first/last track  

(Daed) #368

So uuhhh…it’d be really really cool to be able to use this with Renoise 3…

(danoise) #369

Indeed! Nothing too special needs to change, I just need the time to make them…
Will bump this topic once it’s ready

(emre_k) #370

Can’t. Wait. Doofer.

(danoise) #371


I have updated Duplex for Renoise 3.0, download is located here

I promised phrase support stuff for mlrx, but only managed to make it a “feature preview” (you can trigger phrases but the running lights may, or may not, display correctly).

Other than mlrx, it seems only the Keyboard application was affected by the API changes, so everything should work.

(Dr. Drips) #372

Great work! Thank you yet again!

(Daed) #373

Thank you!

(phooka) #374

thank for the update danoise!

(skogen) #375

Thank you, danoise! This tool+bcr2000+renoise is the best setup I can imagine right now for linux.
Had to edit the BCR-2000.lua, the workaround for getting MIDI feedback, no problems so far B)/>

(danoise) #376

Cool, thanks. Nice that you could dig into the code and figure out how to enable this feature yourself :slight_smile:

That the MIDI feedback is disabled for the BCR is actually a bit of a surprise to me - the sister model, the BCF, is a bit troublesome in this regard - if the unit is not in mint condition, the motorised fader can’t always set it’s position precisely, thus making the controller getting stuck in an endless trying-to-set-the-position loop.
But even then, I guess this should be explained somehow, because many BCF units will work just fine and then it’s a bit of a shame not to know about the full duplex feature.

I think the next release of Duplex should re-enable this for the BCR

(vV) #377

That depends on if the encoder of the motor is working properly (i’m not sure if the motor has rotary encoder wheels attached or is using a positional strip). Imho, if that part is failing, the person should definitely return the unit for repair.
But i must admit that the BCF is responding quite slower to the fader positions when the speed of the motor is set very high (faders smashing against the panel boundaries).
I’m not sure if this feedback can be controlled any better, specially not if the envelopes are programmed to process data at high speeds.
I did some attempts by trying to gradually feed values to the feeders, but it only shatters the positions when trying to dose values.

(BpZ) #378

Thanks danoise.

(Vojeet) #379

Just have bought a korg nanokontrol 2 and here is another ゚☆,。・::・゚★o(´▽`)/♪Thank You♪\(´▽`)o゚★,。・::・☆゚.

(re.dread) #380

i built myself a midibox ng controller and made a basic duplex configuration with ‘Mixer’ and ‘Effect’ mappings for it.

working great so far, except for:

  • the ‘Passing unhandled midi messages to renoise’ option doesn’t actually filter out the mapped controls for me, it sends all midi messages to renoise!

and, as a feature request … a “locked to specific dsp device”-mapping would be very nice imo.

i’ld like to have one config where the encoders are mapped to all the send devices on a per-track basis, then another config where all (48) of the encoders are mapped to parameters of the current selected track (EQ, comp, …) eg.
one would have to specify the device-ID-string (Audio/Effects/Native/#Send), and the number of the instance, or just the name maybe, and could then have a mapping for a group of controls. obviously, one would need more than one of these mappings, i guess a fixed number should do tho.
i looked into the code of the RoamingDSP, XYPad and Repeater applications, but having a bit of a hard time getting started (:
is there any plans for implementing something like this?
cheers & thx for the update :)