Duplex Beta Versions

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?

Hmm, indeed MMC seems to be a problem.
I have an old KeyRig25 midi-key which can send MMC signals too, and I made a little control-map for it.
When I use both Duplex’s midi port and native Renoise’s midi port, the MMC signals seem to be disabled.
When I close Duplex’s midi port, MMC signals work fine again.

Btw, though maybe Dr. Drips already know this thing, there is a workaround in MPK49.
According to the MPK49 manual, it seems that you can change the MMC signals which are assigned to the transport buttons. So if you change them to MIDI-CC signals and assign Duplex’s Transport application to them, they will work maybe.

Anyway, I hope that there is a true solution for this common MMC problem.

I saw this also in the manual but I planned to make it work right out of the box with any ‘generic’ preset on the mpk49 (should also work with mpk61 and mpk88)to make it easy for users.
this would mean rhat i must include a preset for it to work.
thank you satobox for your reply.

MMC really does things in it’s own way. See this topic:

Seems that the built-in transport is definitely the way to go!

?? :huh:
Sorry, maybe I don’t understand your reply well though,
Do you mean that this MMC problem cannot be solved?

I think it’s not only the MPK’s problem. There are many controllers which use MMC (sysex) messages.

@satobox: what I meant was, with MMC the actual behaviour is pretty limited. Native or Duplex transport control is a lot more flexible to work with.

Ahh, I agree with you about the functional thing.

However, it will be ideal if both can be used, since users must not edit their controller’s buttons manually as Dr. Drips said.

Currently, Renoise can handle MMC, so I think taht Duplex should just only bypass MMC sysex messages to Renoise (well, just a thought of an amateur though… :P ).

Ok so what do you guys suggest in this situation?

  1. Leave the transport out of the map, so it can be set with the masterkeyboard A,B settings. (works right out of the box)
  2. insert the transport in the map and supply a custom preset for the MPK49,61,88 to make it work

it’s my first little LUA thingy so it should be good for my ego if it turnes out working great :)

I personally think, go for 2 now.
It is better to have such presets regardless of supporting mmc or not. :)