Duplex Beta Versions

(DoubleDeep) #301

Awesome! That did the trick.

Big thanks for the fast response Danoise, you truly rock!
…and sorry for not reporting this sooner. -It’s been bugging the hell out of me!

(danoise) #302

A new version of Duplex is up - get it from this location

– What’s new in Duplex 0.98b21 -----------


  • Fixed: application was updating display when stopped/paused


  • Support line_notifier when slots are aliased (also when created and/or removed)
  • Workflow: when navigating from a long pattern into a shorter one, start from the top (IOW, always restrict to the actual pattern length)
  • Fixed: update the volume-level display when base volume is changed
  • Fixed: selecting a group track could cause an error


  • Fixed: issue when loading a new song while Navigator was displaying nothing
    (playback happening in a different pattern)


  • Fixed: retain mute state when toggling a pattern off (hold x2)
  • Fixed: track navigation could show wrong track on startup
  • Turbocharged (pattern cache + aliased slots)
  • Feature/workflow: (even) closer integration into Renoise
  • detect changes to mute states in the Renoise matrix (mouse+alt-click)
  • detect when a pattern has been scheduled in Renoise
  • disable pattern loop to allow song to play, pattern-by-pattern (1)
  • Feature/workflow: ability to clone gridpie pattern while playing

(1) This, and pattern scheduling via Renoise can be considered experimental as we can’t reliably detect a scheduled pattern.

Duplex Core

  • Fixed: bug when handling MIDI ports that are added/removed while running
  • Streamlined documentation with lua-doc friendly code formatting

(artfwo) #303

Hmmm, this doesn’t seem to work with an arduinome 64 (connected via serialosc). The leds properly light up according to the Duplex window, but apparently no messages from the buttons are received. Duplex configuration matches my serialosc.conf below. Any tips?

server {  
 port = 8082  
application {  
 osc_prefix = "/duplex"  
 host = ""  
 port = 8002  
device {  
 rotation = 0  

(danoise) #304

@artfwo: have you switched to serialosc in the first place?
Open the Monome.lua file, and change the following:

self.comm_protocol = self.MONOMESERIAL  


self.comm_protocol = self.SERIALOSC   


(artfwo) #305

Yes, otherwise I hadn’t even the leds working in the past.

EDIT: I added a couple of print statements in Monome:send_osc_message and Monome:receive_osc_message. Sent messages get printed, but received don’t, weird.

Also, oscdump utility from liblo toolkit displays the messages on port 8002 (e.g. /duplex/grid/key iii 0 6 1), when the tool isn’t running.

(danoise) #306

With serialosc, I’ve experienced a lot of different issues. It’s complicated to set up, and error-prone. Especially on Windows, and when running software that doesn’t have compiled “externals” (such as Max MSP)
If possible, you might be better off running an old - but stable - monomeserial connection?

In any case, you can perhaps tell me a bit about your computer setup - the OS you’re running, serialosc version etc.

(artfwo) #307

Well, I’m currently running everything on Ubuntu 12.04 (amd64), and the stable version of serialosc (1.0), with the above ports/prefix configuration, which works perfectly with rove and other software.

IIRC, previous versions of Duplex worked vice-versa out of the box (no led feedback, working buttons) - the issue was easily fixed by applying nightmorph’s changes from https://github.com/nightmorph/Duplex.

(danoise) #308

Hey, it looks like I somehow managed to comment out an important method - socket_message.
Try to re-enable it, by removing the “–[[” and “]]” blocks from the source code?

(artfwo) #309

Yay, now it works! Thanks! ^_^

(danoise) #310

I have now released a new version containing the fix, also available on SVN.

The gratitude that goes both ways - together we figured it out !!

(Skia) #311

40h kit over here and managed to get its LED’s synced up with monome64 in duplex via SerialOSC/MonomeBridge but I still can’t control renoise with my monome only vice versa.

What am I missing?

(danoise) #312

Sounds like we’re not receiving events from the device - suspiciously similar to what artfwo experienced a few post above.

If you enable the following, the console should output anything which is received (look in OscDevice.lua, method is called socket_message):

print(“incoming OSC”,os.clock(),value_str)

But first: are you sure you are running the latest version of Duplex - in the previous version I had disabled an important part of the OSC device by accident?

(on a sidenote: yes, well … we don’t have a “debug” method for OSC devices like we do for MIDI devices. Should probably merge them into one … much easier to just go to a menu and click)

(Thomas) #313

Another great tool!
I’ve been playing with it and a bcr2000, but get quite a lot of crashes though… win7x64

(danoise) #314

Thanks, Thomas, but unfortunately, that wasn’t very useful… I have no idea where to look for the problem

Please copy-paste the error message as it appeared in Renoise. This is a good starting point when debugging.
Also, any additional info, such as your hardware (if any), which device configuration you were running at the time of the “crash” etc. would be nice.

(Thomas) #315

Hi Danoise,

I think this is worth mentioning, i first installed the stable 2.7 version in renoise 2.8. When that did not work I found this beta version. Maybe that messed things up a bit.
I did not have any problems the next two days, but i have to say i have not use it too much. The reason is the knob behavior in the EQ 5 renoise dsp is not logarithmic, in other words, it’s useless for low frequencies (wich most of the time are the most tweaked)
Basicly what happend was an error and it shut itself down. It happend maybe 6 times in my first session with duplex. Mainly when edditing the eq5 dsp of renoise. I’m not sure if it had to do anything with knobs that were not mapped, but i believe this was the case.

Since this topic is 13 pages long and i don’t have much time i have some suggestions that might allready be in here somewhere.

  • logaritmic eq 5 behavior
  • is it possible to have the parameter name in the duplex window (atm it’s not very obvious wich knob does what)
  • when using the renoise undo function a lot of knob action has been recorded, so it’s like hundreds of undo’s for one knob turn.
  • If you would like i can make a better bcr preset. Some buttons on the bcr light up while it does not correspond with duplex. (mute/solo etc)

I don’t know how much more work you want to put into it, but i think it’s a really great tool!!
Will you be making it more like how reason handles the controllers? (reason programs the controller for every selected device)
Or will it be possble to set up your own knob locations in duplex? For example line the EQ5 dsp out like a mixer would, vertical instead of horizontal (and again naming the knobs in duplex itself to not mess thing up when touching the wrong rotory).

I’m looking forward to the 2.8 final release ^_^

(danoise) #316

Hey, somehow I didn’t get notified about your reply and have been on vacation. But here goes :slight_smile:

That makes sense. I guess we could make it so that controls that are best dealt with in a logarithmic fashion are automatically made to work in this way?

I have been wanting to get some equipment with a programmable LCD display for a while. But labels on the virtual control surface are def. also an improment
For now, have you noticed that the mouse tool-tip tell you which parameter you are controlling?

ATM, we have no control of the undo buffer. But I’ll be sure to put it on the list of Renoise API wishes :slight_smile:

Hey, you’re welcome. I’ll definitely try to answer any questions you might have :w00t:

Well, me & taktik created the Effect application as a generic solution that makes sense on any type of controller. But anyone can step in and create a custom application - once you get around to doing these things it’s really the planning that’s the tricky part

PS: New version of Duplex is ready for download.


Grab it here

(KMaki) #317

Latest beta 0.98b22.

What I’m doing is: whip up the TouchOSC “keys” layout in Duplex Browser. Press any keyboard key on my iPad running TouchOSC with said layout.

What I’m getting is:

Users/samppahannikainen/Library/Preferences/Renoise/V2.8.0/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 [bjorn.nesby@googlemail.com]) for assistance...  
./Duplex/UIKey.lua:239: attempt to perform arithmetic on local 'pitch' (a nil value)  
stack traceback:  
 ./Duplex/UIKey.lua:239: in function 'translate_pitch'  
 ./Duplex/UIKey.lua:135: in function 'test'  
 ./Duplex/UIKey.lua:153: in function <.><br>
  (tail call): ?<br>
  ./Duplex/MessageStream.lua:363: in function '_handle_events'<br>
  ./Duplex/MessageStream.lua:334: in function '_handle_or_pass'<br>
  ./Duplex/MessageStream.lua:253: in function 'input_message'<br>
  ./Duplex/Device.lua:591: in function '_send_message'<br>
  ./Duplex/OscDevice.lua:186: in function 'receive_osc_message'<br>
  ./Duplex/OscDevice.lua:143: in function <.><br>

Don't know if this error has been hanging around. I just installed the latest Duplex beta and then started to experiment with layouts. I'm not sure if I have tested the keys layout ever before. Will do a test with the stable version and report back here...<br>
EDIT: OH.. Yeah forget about that. There is no stable version for 2.8, and it seems that the latest version for 2.7 (Duplex 0.97) does not include the "keys" layout for TouchOSC.</.></.>

(danoise) #318

Thanks, KMaki. I have the iPhone + TouchOSC combination, so I’ll just see if the same thing happens here.

(KMaki) #319

While you’re at it: Try switching the “Send z messages” option on and off in your iDevice TouchOSC options. Disabling that solved my problem 100%… :)

OK. Just going to continue in this post as to avoid a spam-situation.

What would you say are the chances of hacking into the accelerometer z-parameter in order to get keyboard velocity emulation with Duplex?


(Niall) #320

I apologise if this is the wrong place to post this, but I’ve finally got around to using duplex, and I have a few questions I was hoping you all could help with.
First off, great job. I hadn’t appreciated just how much you can do with this, I can see how it could really make renoise a great live performance tool.

I have a ZERO SL MKII. One of these - http://www.dolphinmusic.co.uk/shop_image/product/40978-novation-zero-sl-mk-ii--large.jpg
Which is slightly different to the Remote SL MKII that comes bundled with duplex, so I’m having to adapt that existing template to work.
Which so far has involved re-arranging a few encoders on the control map, and deleting the XY controller.

I’m using automap, but I should note that I can’t get the included automap template to install, so I’ve had to create it from scratch.

All seems to work apart from the following issues:

  1. The rotary encoders will display the results (which is great!) but duplex won’t receive any input from them.
    I think this is probably because of the way they’re set-up in automap, as I had a few issues with the control buttons until I realized they were set on toggle.
    Unfortunately, I don’t seem to have many options in automap. I’ve attached an image.

  2. I can’t get duplex to receive the drum pads either.

Anyone have any ideas?

I would also like to get the left hand rows of buttons (under the drum pads) to work like a step sequencer, adapting your launchpad template.
Would this be very complicated? It looks quite doable, or is the sequencer application hard coded to only work with the launchpad?

I envision perhaps some of the following things happening:
• Scrolling LEDS following your place in the cycle.
• One of the rotary encoder LEDs showing the cycle of the sequence (similar to the right hand bar on the launchpad)
• Buttons cycling through each block of 16 steps
• Buttons cycling through prev / next track
• Buttons cycling through prev / next instrument
• When holding down a button on a step, rotary encoders can change the pitch / volume / delay.

Are those too optimistic?
Also, I notice that you have to turn off automap for the step sequencer on the launchpad. Would I have to do the same?
Automap seems to be working well so far, so if I can leave it on, I would like to.

Sorry for the braindump. Any thoughts?