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
I think this will be my first forum post here 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
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
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
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ā¦
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
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?
When first using the Renoise performance interface for TouchOSC in combination with an iPad Air, I had to realise that certain mappings wonāt work as expected:
-
The push buttons for DSP / track page navigation donāt react so that only 11 effects / 16 tracks can be controlled via TouchOSC.
-
The currently selected DSP effect is represented by its device name and not its display name so that it is really difficult to differentiate between devices when more than one instance of a given device is used.
-
The currently selected track number / track name is not displayed.
I could adjust 2. by simply replacing device.name by device.display_name in the Effects application (Effects.lua) of Duplex. For 1., I found a partial solution by editing the configuration file (TouchOSC_iPad.lua) in such a way that the TrackSelector application is used for page navigation instead of the Mixer application.
Secondly, I added
device_next = {
group_name = "DSPNext",
index = 1,
},
device_prev = {
group_name = "DSPPrev",
index = 2,
to the configuration file and changed value="/1/DSPNext %i" to value="/1/DSPPrev %i" for in the controlmap (TouchOSC_iPad.xml).
Since Iām not a programmer and I donāt want to become one for simply controlling Renoise with the help of a TouchOSC template, Iād really appreciate some help on how to implement DSP device page navigation for the Effects application and on how to display the currently selected track instead of the word āTrackā in the performance interface. I think the usability of the template for users without programming experience could benefit from it.
Thank you for your help.
Iād really appreciate some help on how to implement DSP device page navigation for the Effects application
You mean, when you have several DSP devices in a chain and want to navigate through them?
There is no direct mapping for this, youād have to set the active device (device_select)or stick to triggering next/previous.
The active page should update as a result of this.
Btw: youāre more thanwelcome to share these improved TouchOSC configurations, make it part of the next release.
For 3.1?
For 3.1?
I totally secondā¦erā¦ third that demand !
My BCR is sitting dead on my desk at the moment. And itās very sad !
Understood
The plan was/is to release updated versions of the tools during the beta test period.
I should have time this weekend.
Understood
The plan was/is to release updated versions of the tools during the beta test period.
I should have time this weekend.
I hope that there will be posibility to edit modulation / effects in instruments also