[Done] Issue With New Midi Mapping Functionality - [Toggle] Vs. [Set]

Hi Dev-Team,

let me first say: the new possibilities in Renoise 2.5 are absolutely awesome and i love to see features that i wished since the “most wanted features”-poll some years ago… You guys did a great job!

Regarding the new Midi Mapping possibilities there is something i don’t understand:
If i map a button, for example the “repeat current pattern only” button (next to the play button) to a push button on my BCR2000 midi controller device, the following behaviour occurs:
With BCR2000 toggle option set to off, one click on the push button activates the button in renoise, another click again deactivates it.
With BCR2000 toggle option set to on, the first click on the push button activates the button in renoise, the second does nothing, the third deactivates it and the fourth does nothing again, and so on…
It would make much more sense if the renoise mapping not only reacts on a “on-pulse” but allows the definition of an on- and an off-value (for example midi cc 01 on chan 01 with val 0 for off and val 127 for on).
Furthermore if i remember correctly, using mappings on sliders one can swap the Min and Max value sliders to reverse the mapping (results in midi cc val 0 for the maximum and val 127 for the minimum slider value in renoise). This can’t be done with buttons because the min/max sliders are disabled while mapping renoise buttons.

Is it possible to enhance this while renoise is in beta stage?

Greets and thanks for your answer…

In the ctrl+m mapping window must go into global mappings / transport / playback tab, and select ‘loop pattern set’ instead of loop pattern toggle, this way the button on your bcr will behave like you want it.

Now that I read this: I’m having the same issues with my M-Audio Axiom 61. Some buttons send on (127) and off (0) midi values.
I just thought I was to dump to find the right configuration in renoise, but it doesn’t seem to like this…

This unfortunately is a bit hard to explain. I already tried that here.

Theres no real standard for “which messages MIDI controller buttons do send”, so there are plenty of combination possible.

Pressing a button on a MIDI controller which uses CCs. Then the following might happen:

Button Pressed: Controller with Value 127 (or something above 64) is sent
Button Released: Controller with Value 0 (or something below 64) is sent
Button Pressed again: same as before
Button Released again: same as before

Button Pressed: Controller with Value 127 (or something above 64)
Button Released: nothing
Button Pressed again: Controller with Value 0
Button Released again: nothing

Button Pressed: Controller with Value 127 (or something above 64)
Button Release: nothing
Button Pressed again: Controller with Value 127 is sent again
Button Release again: nothing

About the same thing happens with buttons which send MIDI notes instead of controllers. There the CC value simply is the velocity or Note Off.

There are other “strange” ways, like sending different CC numbers on button presses/releases, but lets ignore those. Lets also ignore “encoders” and stuff for now.

Now if you now want to set something ON or OFF in Renoise, you have to tell Renoise how it should deal with the incoming messages.

Renoise does this by offering two different mappings for most things you can turn on or off:

Let me choose “Edit Mode” as example:

Edit Mode [Toggle] -> will ignore Controller Values of 0, so you can use controller A) or C)
Edit Mode [Set] -> will not ignore Controller 0 Values, but interpret them as “state”: CC value > 64 ON, CC value < 64 OFF, so you can use controller B) or encoders or faders

NoMad: Your controller seems to send B), so you have to use the [Set] variants in Renoise. We do use by default the [Trigger] variants, that’s why it does not work “out of the box” for you.

To do so, open the list of mappings, click on “Available & used Mappings” in the mapping dialog. Then, if you for example select the record button in Renoise, you will find a [Set] variant below.

Of course it would be great to magically let Renoise select the “right” thing here, trying to find out which kind of controller you have. Unfortunately this is not easy to do, so we can only “guess”. One idea might be to:

  • If Renoise quickly gets a message from the same CC number but with another value (you’ve pressed, released a button or moved a fader, moved an encoder) then we automatically choose [Set] variants.
  • Else we do use the [Trigger] variants

This needs some kind of timeout though, to allow you pressing and releasing the buttons within lets say half a second.

The mappings in the GUI would then not just show the [Toggle] states, but both, just whats mapped currently. [Set]s or [Toggles]s

Could this work, or have I missed something. Or this there an easier way?

I think it is fine the way it works now.

Thanks for your reply.
I didn’t notice these advanced options before. But i think that is exactly what i’m looking for ;)

As Jonas said, maybe it’s fine the way it works - but perhaps is not as intuitive as it could be.
If one selects a button to be mapped, there is a text-label in the midi mappings window, f.e. “Transport / Playback / Loop Pattern [Toggle]”. If one could see that it is possible to choose also [Set], then it would be much more clearer. Why not placing a switch control or something else on this window? there is enough place…

I don’t want to bother you, but here is another question, which i asked a few years ago :
what about the so called “parameter feedback”?
It’s good to be able to control all sliders and knobs with a controller device, but if there are envelopes, or one is switching between songs, etc…, the controller values aren’t equal to the slider values in renoise.
As discussed before, in my opinion it hasn’t to be real parameter “feedback” (because you can get in trouble with timing problems), but Renoise knows if a slider/button is moved/set by Midi or keyboard/mouse input. In the last case it could simply dump out the mapped midi signals as the midi cc device does…
Am i right or do i miss something?

I still don’t get why you can’t ‘set’ solo tracks in the midi mapping screen, if I want to solo a track with my midi-controller this is rather clumsy with toggle.

I’d like one button click to be solo on, another one for solo off. Why is this functionality omitted?


Also in the ctrl+M midi-mapping screen, global mappings / gui / presets; the 8 gui presets can only be mapped to triggers and not set which is cumbersome pressing the buttons on my bcr. The first ‘activate preset’ in the list can be ‘set’, but what preset is this?

One last attempt in the latest Beta (Beta 9) to get this more clear and comfortable:

Theres a new option in the MIDI Mapping dialog now, which allows you to globaly set up which messages your controller preferes when turning things On/Off (for example edit mode)

  • [Set]: Let you controller explicitly define when somethings on, when its off. This is often what controllers want and do when using a button with LEDS (a button with a status) or when using an encoder or fader to control Edit Mode, mute state of the track and so on
  • [Toggle]: Let your controller only switch, toggle between On/Off, let it send a “do something” but not a “do it like this” message

The [Set] mode is the default now.

Even if the [Set] mode is wrong for your controller, you now only have to change the option once, all the rest will happen automatically now. Renoise will choose the “correct” mappings for you as soon as you’ve set up this option once…

Would be great to get some feedback about this. If this makes anything better or worse or more complicated. Unfortunately its quite hard to explain this, because there are so many possibilities on what MIDI controllers out there can send and what you want to do with this in Renoise.

Eventually it might turn out to end up with also adding “on” values and “off” values for the toggle or set configurations. (if a controller decides to send 0 as off and 1 as on, you hang since 1 is not larger than 64)
Midi has pretty much turned into a complicated world somehow due to the nature of the MIDI protocol and its limitations on one side but non-standard possibilities on the other side.

I think thats very unlikey. And if theres a controller out there which sends such values, then this is not our problem, but theirs to offer an alternative mode.

The changes in B9 worked well for my little Oxygen 25.

It would be nice if basic Midi control templates were available for download off of the site, or from the application itself so that people could just get going right away.

[Set] works properly on my Akai LPD8. I use the pads for muting tracks. The LEDs (and mapped functions) toggle on/off properly without the need for a double pad press.

Note: I used the LPD8 editor to set the pads to ‘Toggle’ mode.
Note 2: LPD8 must be plugged in before starting Renoise; it cannot be hot-plugged as Windows detects it as a sound device rather than a USB device.

We could make those and save them as xrns-files.

I just ran into this problem too. Mutes I can configure correctly (for my BCR2000) by using Set but Solo only offers Trigger? Which seems to always require a double press however I configure the controller.

This can however be solved by setting your BCR2000 to send a custom sequence on each button press, in my case I’ve set it to send “$9D $08 $7F” for Note $8 On with velocity $7F. It will then work as expected with the Solo function.