Hey I’m trying to create a Duplex preset for Akai MPK mini.
I’ve gotten the knobs to work, but the pads are still dead.
Heres tracing done on the job.
Broken Pads PAD-5 Pad-6 Pad-7 Pad-8 Pad-1 Pad-2 Pad-3 Pad-4
RAW Push/Release: PAD-5 Pad-6 Pad-7 Pad-8 Pad-1 Pad-2 Pad-3 Pad-4
MidiDevice: MPK mini received MIDI 90 30 12
MidiDevice: MPK mini received MIDI 80 30 7F
MidiDevice: MPK mini received MIDI 90 31 F
MidiDevice: MPK mini received MIDI 80 31 7F
MidiDevice: MPK mini received MIDI 90 32 10
MidiDevice: MPK mini received MIDI 80 32 7F
MidiDevice: MPK mini received MIDI 90 33 12
MidiDevice: MPK mini received MIDI 80 33 7F
MidiDevice: MPK mini received MIDI 90 2C 17
MidiDevice: MPK mini received MIDI 80 2C 7F
MidiDevice: MPK mini received MIDI 90 2D 12
MidiDevice: MPK mini received MIDI 80 2D 7F
MidiDevice: MPK mini received MIDI 90 2E E
MidiDevice: MPK mini received MIDI 80 2E 7F
MidiDevice: MPK mini received MIDI 90 2F 12
MidiDevice: MPK mini received MIDI 80 2F 7F
Stripped: 30 31 32 33 2C 2D 2E 2F
Specifically the problem relies on the xml, I’d be very thankful if someone could resolve what I have to use in the <Param values="*"'s at Pad’s section.
Heres a little something from the Akai’s software [details=“Click to view contents”]
I believe it has to do with how the messages are interpreted - to make something act as a button, the controller would need to output either maximum or minimum value (in this case, 127 or 0) as velocity.
Maybe that’s something you can work into the preset? I see you’ve got a .preset file next to the other files, and the editor seems to be quite capable.
If not (because switching controller presets constantly is a pain), perhaps we can find an alternative solution. I can at least show how to make it work…
If you open the MessageStream.lua file from the main Duplex folder, you’ll see a method called ‘input_message’, this is where Duplex look for the various supported events.
if (msg.value == msg.max) and (not msg.is_note_off) then
-- interpret this as pressed
elseif (msg.value == msg.min) or (msg.is_note_off) then
-- interpret this as release
end
So, basically you could modify that first statement like this:
if (msg.value > msg.min) and (not msg.is_note_off) then
...
Hopefully, this should solve your problem by making any velocity which is greater than 0 become recognized as a pressed event.
I’m playing around with Recorder on my Monome 40h… I like it a lot!
One question. How do I delete my recordings?
“Manually” deleting the instruments that were created doesn’t work too well. The button that starts and stops recording doesn’t correspond to the slot it records to, it’s on the spot of the last empty slot before I deleted the instruments. So after six recordings I can’t do any more recordings on the same track.
Edit: Oh, deleting the entire track cleared that problem. Still it’d be nice if there was a way to delete individual recordings. Perhaps press and hold on the slot you want to delete?
Yes, surely your contribution will become part of the next release. I’ve been on a bit of a time crunch lately, otherwise it would already be out there:-)
and wanted to ask if something like this could be possible with the duplex or as a XRNX Tool
this would be a great tool i think, but i have absolutely nothing to do with lua scripting - it was just an idea because i like that tool but it only works with Synaptics touchpad and it is a bit tricky to use it as a standalone application, would be great to use for every renoise user
peace
Ps: maybe this fits also or better to ideas & suggestions - than to duplex than put it there
I will simply publish the beta as it is tonight, because I’ve not had time to work on Duplex for the past couple of months. This is the reason the SVN has not gotten an update since the 2.7 - I couldn’t release Duplex before that, since it’s using API features which are unique to the 2.0 API.
Also, I’m a bit in doubt as to the best way to release the files in the future. Since Duplex is supposed to support every version of Renoise from 2.6+ and on, I’m maintaining multiple manifest files for this purpose.
But then I guess anyone who’s using the SVN (a.k.a. “bleeding edge” files), the standard practice would be to support the most recently released stable version. So, this means there would never be any Duplex updates on SVN while alpha, beta testing.
I don’t think anyone said you had to support multiple version of Renoise? IMHO let the 2.6 version rot in deprecated heaven. Same for future versions. Seems like an exercise in masochism?
For SVN, you make some valid points but that’s not how I remember it. The Lua API was not touched in the alpha testing until very last thing. The 2.0 API version bump and the beta were a few days apart. I also remember committing as soon as things were in beta and so did many others, so SVN for “stable” is questionable.
As an aside, is anyone gonna do a Faderfox LV3 template? Pretty please?
I am quite a new -happy- user of Renoise, I have bought a Ohm64 controller last month and thus I’m using Duplex which is a great tool.
And I wanted to switch configuration directly from my device and so I’ve discovered Lua 2 weeks ago: I made some corrections in Duplex code because Midi mapping didn’t work for me and I have also created a new Application called SwitchConfiguration.
If some guys are interested, I put in this reply 2 .zip files containing these modification made from Duplex 0.97:
Duplex_MidiMapping_Correction.zip contains the correction for Midi mapping for switching configuration
Duplex_SwitchConfiguration_Application.zip contains the new Application named SwitchConfiguration and an example of configurations with Ohm64 device (it also contains the correction for Midi mapping)
Important Note: to create the SwitchApplication, I needed to modify the __init signature of Application objects. Indeed, I pass a reference of Browser instance to BrowserProcess and then a reference of BrowserProcess to Application instances. Thus I have modified all existing applications by changing their __init constructor… hum.
Quick installation instructions:
Install Duplex 0.97
Download one of the attached file (or both) and unzip somewhere on your hard drive
Replace the files located into the Duplex folder by the unzipped files
Start Renoise and launch by selecting Tools > Duplex > Ohm64Switch
Wow, you have been modifying Duplex at the absolute ‘core’ level to pull this off. IMHO the Browser class is the most complex part, but perhaps you think otherwise now.
Can’t wait to check it out … a lot of existing device configurations could benefit from this
Thank you for your comments and glad to see that these few lines of code can be useful.
I usually use Python in my daily work and Lua syntax is not so far.
I have some other ideas for Duplex and I hope I will have the time to implement them. For instance, I would like to add a new feature in XML parser to unite functionally speaking e.g. no more need to use 2 Mixers in a configuration and thus offset could disappear. (could be nice for Effects also)
I will keep you up to date.
Thx again !
Best Regards,
Yeah, the offset is a bit of a hack really. At the time, I was helping another Ohm64 user to get the device running properly - before that, Ohm64 had very limited support. At the time, it seemed like a simple workaround, but it’s really a hackish solution that you’d have to repeat in every other application. The framework could deal with this sort of stuff, that’s really what it’s there for.
Btw: The MIDI mapping fix and the switching config app both look good. Thanks!!