Duplex Beta Versions

very good work but i have to report a problem with effect application.on parameters variable.

when it works on master track lpb’s knob will generate only odd numbers (midi values are from 0 to 127 while lpb is from 1 to 256)

i think this might be a problem with other parameters too and i don’t know how to eradicate this behavior from my configuration :frowning:

p.s.: mpd26 preset configuration file missing two commas after mixer pages rows :smiley: :stuck_out_tongue: :wink:

Windows Xp and clean install of renoise 3.01 32bit.
Duplex cant be load.

"‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Tools\com.renoise.Duplex.xrnx’ failed to load.

Please remove this tool or contact the author (danoise [bjorn.nesby@googlemail.com]) for assistance…

.\Duplex/Applications/MidiActions.lua:242: module ‘Bindings’ not found:

no field package.preload[‘Bindings’]

no file ‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Tools\com.renoise.Duplex.xrnx\Duplex/Applications/MidiActions/Bindings.lua’

no file ‘.\Bindings.dll’

no file ‘E:\Renoise\Bindings.dll’

no file ‘E:\Renoise\loadall.dll’

no file ‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Libraries\Bindings.dll’

no file ‘E:\Renoise\Resources\Scripts\Libraries\Bindings.dll’

stack traceback:

[C]: in function ‘require’

.\Duplex/Applications/MidiActions.lua:242: in main chunk

[C]: in function ‘require’

.\Duplex.lua:48: in main chunk

[C]: in function ‘require’

main.lua:7: in main chunk"

Windows Xp and clean install of renoise 3.01 32bit.

Duplex cant be load.

Seems Duplex fails to load a supporting file for the MidiActions application.

I wonder if the Czech name for the application folder has something to with it… ? Will try and give it a quick look

As a quick workaround, you can disable the MidiActions application by giving it a different extension than .lua (or removing it altogether).

The file is located in the Duplex tool folder under Duplex/Applications …

Thank you.
It can be because ive always used english version of windows till now.
But still doesnt work.

‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Tools\com.renoise.Duplex.xrnx’ failed to load.

Please remove this tool or contact the author (danoise [bjorn.nesby@googlemail.com]) for assistance…

.\Duplex/Applications/Mlrx.lua:115: module ‘Mlrx_group’ not found:

no field package.preload[‘Mlrx_group’]

no file ‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Tools\com.renoise.Duplex.xrnx\Duplex/Applications/Mlrx/Mlrx_group.lua’

no file ‘.\Mlrx_group.dll’

no file ‘E:\Renoise\Mlrx_group.dll’

no file ‘E:\Renoise\loadall.dll’

no file ‘C:\Documents and Settings\Akiz\Data aplikací\Renoise\V3.0.1\Scripts\Libraries\Mlrx_group.dll’

no file ‘E:\Renoise\Resources\Scripts\Libraries\Mlrx_group.dll’

stack traceback:

[C]: in function ‘require’

.\Duplex/Applications/Mlrx.lua:115: in main chunk

[C]: in function ‘require’

.\Duplex.lua:48: in main chunk

[C]: in function ‘require’

main.lua:7: in main chunk

Btw. Is it possible to change default location of tools?
It would be amazing because of portable studio…

How do I import a mapping to Renoise? Can’t seem to get it to work. Can assign things manually, just not import the XML / LUA files.

How do I import a mapping to Renoise? Can’t seem to get it to work.

What exactly constitutes “a mapping”?Are you planning to control Renoise, or do something else?

Is the controller one of the supported models?
https://docs.google.com/spreadsheets/d/1FNVvQQPAv51Rl0tZkhvLSLawJY3frvL4kvtobGaH9Fc/edit?usp=sharing

A bit of background: Duplex is intended to control or extend certain aspects of Renoise - think mixing consoles, step sequencers etc. And all supported controllers in Duplex are already wired (via those XML mapping files).

In case of a supported controller, you only need to specify what each button/control does. When something is _done_in Duplex-land, it’s always the responsibility of a Duplex application - so essentially, Duplex can’t do something if none of it’s applications have that ability.

The linking of hardwarewith software is done in something called a device-configuration file. Sato wrote some info about getting started with / understanding these files:https://forum.renoise.com/t/how-to-start-editing-duplex-files/30979

Jeg siger mange tak! I had the wrong end of the stick, entirely. Makes sense following your clarification. Now to have a fiddle with Duplex!

Thanks for the changes you’ve made, great i can do what i want with the launchpad…

I’ve now a problem with “Mackie Control” :

=> When i move faders from renoise mixer view, the faders of my Alesis MasterControl and duplex mixer move

=> When i move faders from my Alesis MasterControl and duplex mixer, the faders of renoise mixer view don’t move, so now i can’t control volume of the tracks

=> Other functions and buttons work…

I tried to look inside the code but nothing looks wrong, it’s the same that the older version of Duplex

I’m now with the last Renoise ver end last Duplex Beta, it looks like the problem appear with renoise R3…

@Rod19fr: Yes, I’ve had a report from another user that this could happen.

We did a bit of investigation and found that reverting to latest stable release of Duplex (0.9.1) from the tools page fixed the problem. Perhaps this helps you as well?

It needs to be fixed in the newer release as well, but I haven’t had much time to look into it.

Xcuse i don’t see it in the forum…

I will try with the 0.9.1 and tell you

Thanks

ps : i’ve just try the new ver from the 0.9.3

Xcuse i don’t see it in the forum…

It’s on the tools page

http://www.renoise.com/tools/duplex

I think this will be my first forum post here :wink: But, instead of asking some questions, I would rather post here to essential patches for Duplex 0.99.5. It’s a shame there is no official Duplex github repository, but anyway.

The first patch addresses ‘Pass unhandled MIDI messages to Renoise’ device setting. It actually appear to be just a typo on line 929 of MidiDevice.lua , there was ‘message’ instead of ‘messages’.

--- Pass unhandled/unmatched message to Renoise?
-- (this is defined in the device settings panel)
-- @param messages (table of MIDI messages)
-- @return bool (true when message was passed)

function MidiDevice:pass_to_renoise(messages)
  TRACE("MidiDevice:pass_to_renoise(message)",messages)

  local process = self.message_stream.process
  local pass_setting = process.settings.pass_unhandled.value
  if pass_setting then
    local osc_client = process.browser._osc_client
    for _,midi_msg in ipairs(messages) do
      osc_client:trigger_midi(midi_msg)
    end
    return true
  end

  return false

end

The second patch is also pretty straightforward and addresses held button processing when using several states in controller mapping. In 0.99.5, if you have certain button on your grid controller, which has a on_hold handler, and you switch to another state having different on_press assignment on the same button, but not on_hold ones, the original on_hold will be called instead, when the button is being hold. Again, no-brainer on line 112 of MessageStream.lua :

--- The MessageStream idle time method, checks for held buttons

function MessageStream:on_idle()
  --TRACE("MessageStream:on_idle()")

  for i,msg in ipairs(self.pressed_buttons) do
    if (not msg.held_event_fired) and
      (msg.xarg.type == "button" or
       msg.xarg.type == "pushbutton") and
       (msg.timestamp + self.button_hold_time < os.clock()) then
      -- broadcast to attached listeners
      self:_handle_or_pass(msg,self.hold_listeners,DEVICE_EVENT.BUTTON_HELD)
      --[[for _,listener in ipairs(self.hold_listeners) do
        listener.handler(msg)
      end]]--
      msg.held_event_fired = true
    end
  end
end

Hi arigy, welcome aboard :slight_smile:

It’s a shame there is no official Duplex github repository, but anyway.

It will happen soon enough. I had a ‘test’ repository, but we are going to make an official one for all the renoise tools.

For now, yeah the forum is the one place to exchange patches and discuss code…

Again, no-brainer on line 112 of MessageStream.lua :

Well, no-brainers are never trivial when you dive into something complicated.

Thanks for taking the time to do a bit of investigation - I never considered that states could have this side-effect :blush:

Dirty fix for BUTTON_HELD events being passed to Renoise (issue caused by the above patch to MessageStream.lua ):

-- ensure that we have MIDI data before passing message
  if pass_msg and msg.midi_msgs and
    (msg.device.protocol == DEVICE_PROTOCOL.MIDI) and
    (evt_type ~= DEVICE_EVENT.BUTTON_HELD)
  then
    local osc_client = self.process.browser._osc_client
    for _,midi_msg in ipairs(msg.midi_msgs) do
      osc_client:trigger_midi(midi_msg)
    end
  end

I have a feeling, that this is the wrong place for check, but it worksforme.

Here is a little maintenance release of Duplex:

https://forum.renoise.com/t/duplex-beta-versions/30625

Pretty much the same as the previous beta except for the following

  • Includes a new Akai-MPK225 template (thanks mattnasty)

  • Some fixes and improvements to the MidiActions application - should fix this error(?)

@arigy: I’ve not had time to look further into your suggestions. But will do :slight_smile:

Hey gang,

does someone have a Duplex Maschine template handy?

I know only of an old one, but this is very old (from 2009) and is also in a different format. (see here:https://forum.renoise.com/t/maschine-midi-mapping-template/26984 )

I’ ve read somewhere in this thread or on the tools-page that Duplex “natively” supports Maschine, but Maschine seems to be the

only Duplex-supported controller in that list where there is no stock-template in the dropdown list, that’s why I ask. Is there a specific reason for this?

Best,

tL.

Hi tL One

there is no stock-template in the dropdown list

hm, you are right that’s mentioned on the tools page but not actually included with Duplex.

There was a 90% finished version, but it was never completely done - let me give it an extra look and see what can be done about this.

Note that Duplex is about creating controller configurations that do exactly what you want them to do. You are “mapping” things using these configuration files. Useful info here.

Now, I have no idea what you would want or expect, but I could create something that worked in a similar way to how the MIDI template (the link you provided) has been set up?

Hi tL One

hm, you are right that’s mentioned on the tools page but not actually included with Duplex.

There was a 90% finished version, but it was never completely done - let me give it an extra look and see what can be done about this.

Note that Duplex is about creating controller configurations that do exactly what you want them to do. You are “mapping” things using these configuration files. Useful info here.

Now, I have no idea what you would want or expect, but I could create something that worked in a similar way to how the MIDI template (the link you provided) has been set up?

Hey D’, now that would be pretty awesome. Don’t know how much work that is, I am pretty sure I can’t pull that off myself though… :slight_smile:

Besides that I think that a maschine template would be an excellent addition to the duplex templates anyways and would help me a lot

and certainly others as well for sure. And that old template had pretty much everything I would need.

Let me know if you can come up with something without too much effort or hassle. That would be ace.

Best,

tL.

serialosc now needs to be the default protocol, as monomeserial is unsupported upstream, broken, and hasn’t supported devices made in the last several years

True, just never got the damn thing to work with XP (which I was running until half a year ago).

So the default option was that protocol - for my own convenience :badteethslayer:

But to be fair against serialosc, monomeserial is actually being translated to in realtime by Duplex - so, essentially a second-class citizen.

I was fully aware that monomeserial was being phased out, even back when I started the project.

For 3.1?