Ohm64, Linux And Midi Mapping

I received an Ohm64 today and have been trying it out with renoise on my linux system. I’m actually using the 2.6 beta, but this question is related to midi mapping, so I’ve posted it here since this is not a new 2.6 feature. I’m using the linux version of Renoise.

(Without duplex running) I selected the controller as a midi device in preferences. I then tried to set up matrix type controls in the midi mapping, but whatever I do I can’t stop the matrix type (1-64) buttons on the ohn64 playing notes, even if I clear the assignments. I’ve tried (seemingly) every possible combination of options but cannot get a button to toggle a matrix slot on/off. So far I can get mapping to work well for the knobs/sliders, but not the buttons. Any ideas? Does midi mapping need an option to disable/ignore the note data?

Edited/added for clarity:

So my questions relating to midi mapping and the Ohm64 are:
1. How can I map something to a button on the Ohm64 without it playing a note? Obviously if I want to play notes I’ll use my keyboard, not a controller like this.
2. How can I map a button to toggle mute on/off in the matrix.
3. Does the midi mapping dialog need an option to “ignore note data” or similar for controllers such as this?

Thanks in advance.

I’ve just tried this again. I now notice that the note doesn’t play if I assign the button to the matrix, which is good, not sure why i thought it was still playing before.

The problem is that I still can’t get it to toggle a pattern on/off. If I set the midi mapping mode to gate then it works as expected (muting the track whilst the button is held down). If I set it to “Trigger” it seems to do nothing, ticking/unticking the “Prefer ‘setting’” option makes no difference either.

Please can somebody suggest what’s wrong, is it me or is it renoise?

Are you unable to control the matrix using the Duplex script?
“Prefer Setting” relates to the fact that the midi mapper by default will choose “Set” instead of trigger. You can find more info about that stuff here:

Being able to set it to “Gate” means you are sending a note-value with that controller, if that controller is not correctly set, then Renoise as you already experienced, simply plays the note on the instrument that you have currently selected.

Duplex was more or less designed to save you this kind of hassle as well as to offer midi feedback (your controllers also receive messages back) which ain’t supported by the internal mapping routine

Thanks for the reply. I’ve solved my initial problem now. Yi had to assign the control via “available and active mappings” > global mappings > selected seq [toggle] > mute tracks #xx [toggle], then it works great. Why doesn’t this work when I just click on the matrix sequence and press the button on the controller whilst in midi mapping? What am I actually assigning the button to then?

Regarding Duplex, I can control it with that, but wanted to change some of the mappings. I only got the controller today, and although I have looked at the Ohm64 duplex files I really don’t have the faintest idea where to start remapping the buttons. That’s why I was trying to do it using midi mapping instead. I guess what I really need is an idiots guide to mapping controllers in Duplex!

Well, wait until the book comes out

For starters, looking at the Ohm64.lua file, like you have done, is definitely not a bad idea. Most of the Ohm64 file is actually just a large table (the configuration itself), the Ohm class itself does nothing except tell Duplex that it’s a monochrome device (color-space).

The really interesting stuff is all located under applications/ApplicationName/mappings:

group_name: specifies the control-map groupname. If you look into Ohm64.xml, there is a corresponding group by the same name.
index: this is the index inside the group. If you leave it out, it’s because you are doing a ‘greedy’ assignment - for example, by assigning ALL matrix buttons in one go. So, indiced assignment are most often single-button assigments, or in some cases, switches. But they’re never greedy.

Now the expert tip:

Try to open the Launchpad, and run the Matrix + Mixer + Transport. See that the Matrix is split in two? Now, if you remember what you just learned about ‘greedy assigments’, how the heck does this preset avoid that all the buttons are assigned to just one app? The answer is - an alternative control-map. This launchpad configuration makes use of Launchpad_Verticalsplit.xml to achieve two scripts running in one matrix, without having to change the app itself in any way.

Thanks danoise. Having another look at the files and comparing the ohm64.lua and ohm64.xml side by side I began to see how it worked. Your post has filled in a few of the gaps for me.

Sorry for all the posts, but I’ve come quite a long way today. From getting the controller this afternoon and having some real beginners problem with midi mapping, to thinking I could begin to remap some of the controls in duplex to suit me. I really want to use those apparently unused buttons/faders on the right hand side for something!

Thanks again :)