Duplex Beta Versions

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

self.comm_protocol = self.MONOMESERIAL  

Into

self.comm_protocol = self.SERIALOSC   

?

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.

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.

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.

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?

Yay, now it works! Thanks! ^_^

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 !!

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?

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)

Another great tool!
Iā€™ve been playing with it and a bcr2000, but get quite a lot of crashes thoughā€¦ win7x64

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.

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 ^_^
Tommy

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.

In short: GRID PIE NOW SUPPORTS REAL-TIME RECORDING

Grab it here

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>
<br>```

<br>
<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>
<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.</.></.>

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

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?

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?

Cool, I will of course help in any I can - seems like youā€™re already on the right track.

Duplex has a built-in MIDI dump feature that you can enable. Perhaps you could try to turn a few of those encoders and see if anything is displayed in the console?
You can post that info here and we can look into it.

The drum pads are configured to respond to notes C-4 through G-4 (check out the control-map here), perhaps you assigned some different notes?
Whatever is the reason, the controlmap should reflect the notes that were specified in the automap editor.
EDIT: just make sure that the the note is offset by one octave - C3 in automap translates to C4 in Renoise.

Of course it would be possible to adapt the StepSequencer to this format as well, but currently, you might want to check out N.O.W. for a dial-based sequencer?

The reason is that it gives us access to the topmost buttons on the Launchpad. But automap is needed on the Remote because bi-directional communication on the Remote doesnā€™t work without it.
PS: you are using Automap 4.4? If not, itā€™s recommended to upgrade to this version, as Novation have fixed an issue that has been causing problems since 3.7

Hi Danoise,

Thanks for your reply.

I will try and give you the information as clear as I can.

Well on the first encoder, I just get this when I rotate:

MidiDevice: Automap MIDI received MIDI B0 0 3F  
MidiDevice: Automap MIDI received MIDI B0 0 3F  
MidiDevice: Automap MIDI received MIDI B0 0 3F  
MidiDevice: Automap MIDI received MIDI B0 0 3F  
MidiDevice: Automap MIDI received MIDI B0 0 3F  

I think itā€™s just repeating whatever the value is, and not changing it.

I get nothing with the 2nd (cc#1), and 3rd (cc#2) knobs.

With the 4th (cc#3) knob, I get this repeated.

MidiDevice: Automap MIDI received MIDI B0 3 3F  
MidiDevice: Automap MIDI received MIDI B0 3 3F  
MidiDevice: Automap MIDI received MIDI B0 3 3F  

and the same with the 5th (cc#4)

MidiDevice: Automap MIDI received MIDI B0 4 59  
MidiDevice: Automap MIDI received MIDI B0 4 59  
MidiDevice: Automap MIDI received MIDI B0 4 59  

then nothing from knobs 6,7, and 8.

Cycling through the drum pads brings up this.

MidiDevice: Automap MIDI received MIDI 90 48 0  
MidiDevice: Automap MIDI received MIDI 90 48 0  
MidiDevice: Automap MIDI received MIDI 90 49 36  
MidiDevice: Automap MIDI received MIDI 90 49 36  
MidiDevice: Automap MIDI received MIDI 90 49 36  
MidiDevice: Automap MIDI received MIDI 90 49 0  
MidiDevice: Automap MIDI received MIDI 90 49 0  
MidiDevice: Automap MIDI received MIDI 90 49 0  
MidiDevice: Automap MIDI received MIDI 90 4A 57  
MidiDevice: Automap MIDI received MIDI 90 4A 57  
MidiDevice: Automap MIDI received MIDI 90 4A 57  
MidiDevice: Automap MIDI received MIDI 90 4A 0  
MidiDevice: Automap MIDI received MIDI 90 4A 0  
MidiDevice: Automap MIDI received MIDI 90 4A 0  
MidiDevice: Automap MIDI received MIDI 90 4B 7F  
MidiDevice: Automap MIDI received MIDI 90 4B 7F  
MidiDevice: Automap MIDI received MIDI 90 4B 7F  
MidiDevice: Automap MIDI received MIDI 90 4B 0  
MidiDevice: Automap MIDI received MIDI 90 4B 0  
MidiDevice: Automap MIDI received MIDI 90 4B 0  
MidiDevice: Automap MIDI received MIDI 90 4C 4B  
MidiDevice: Automap MIDI received MIDI 90 4C 4B  
MidiDevice: Automap MIDI received MIDI 90 4C 4B  
MidiDevice: Automap MIDI received MIDI 90 4C 0  
MidiDevice: Automap MIDI received MIDI 90 4C 0  
MidiDevice: Automap MIDI received MIDI 90 4C 0  
MidiDevice: Automap MIDI received MIDI 90 4D 7F  
MidiDevice: Automap MIDI received MIDI 90 4D 7F  
MidiDevice: Automap MIDI received MIDI 90 4D 7F  
MidiDevice: Automap MIDI received MIDI 90 4D 0  
MidiDevice: Automap MIDI received MIDI 90 4D 0  
MidiDevice: Automap MIDI received MIDI 90 4D 0  
MidiDevice: Automap MIDI received MIDI 90 4E 7F  
MidiDevice: Automap MIDI received MIDI 90 4E 7F  
MidiDevice: Automap MIDI received MIDI 90 4E 7F  
MidiDevice: Automap MIDI received MIDI 90 4E 0  
MidiDevice: Automap MIDI received MIDI 90 4E 0  
MidiDevice: Automap MIDI received MIDI 90 4E 0  
MidiDevice: Automap MIDI received MIDI 90 4F 7F  
MidiDevice: Automap MIDI received MIDI 90 4F 7F  
MidiDevice: Automap MIDI received MIDI 90 4F 7F  
MidiDevice: Automap MIDI received MIDI 90 4F 0  
MidiDevice: Automap MIDI received MIDI 90 4F 0  
MidiDevice: Automap MIDI received MIDI 90 4F 0  
  

All encoders work fine when not using automap, so Iā€™m not convinced this is a duplex problem, and not an automap one.
But the problem is that I have so few controls in automap, that Iā€™ve pretty much changed all I can.

Also yep, my automap and controller are up to date.

To be honest, I havenā€™t properly played with the N.O.W as I needed to get everything working first, so it may be what Iā€™m looking for.
Otherwise, it will be a spot of playing with the step sequencer.

In which case, would I need to edit the Duplex step sequencer app?
Or should I be able to do everything just with my own control maps and templates?

Thanks a lot either way,

Yup, thatā€™s what it looks like. Are you sure you didnā€™t assign some invalid range in the automap editor? A ā€œnormalā€ assignment going from 0-127 should be the default.
Those knobs will never be usable before they have a range of some kind.

Well, even weirder.

That looks fine to me. Note that C3 in automap editor corresponds to C4 in Renoise and in the Duplex controlmap.
To actually trigger notes, Duplex is using the Keyboard application (itā€™s called Drumpads in the packaged Remote configuration), and has some benefits over standard MIDI notes - most importantly, the Remote drumpads are sending multiple note-on, but only a single note-off when you are using them. The Keyboard application works around this, so you donā€™t get any stuck notes.

As for the step-sequencer, yes it needs to be modified quite a bit in order to support knobs. Right now, N.O.W (Notes on Wheels, the wheels being your knobs :wink: ) is more suitable, and IMO a lot more expressive and fun.
Try looking at the ā€œCustombuiltā€ entries in the Duplex tool menu to check out the full-blown and compact example configurations.