MIDI without learn?

I searched the forum but I can’t find an answer to this.

I just received my duo x today (yay!).

As I’m going through the process of learning how to assign MIDI, it seems to me that learn is the only way to map MIDI? I find this to be problematic when I’m trying to map (for example) the single axis of a 3 dimensional controller, because the controller will send 3 messages with every gesture.

Being able to explicitly map MIDI events without having to create them would be swell.

Is there a way to do this?


I totally agree!
I’m also sending multiple messages at once from my MIDI controller. To set up the DUO, I temporarily assign the message I need to a spare button of the MIDI controller. This is a rather annoying workaround, especially if you have to repeat it many times to set up all your effects. And of course it only works as long as you’ve got a spare button.

A possibility to just select the MIDI settings in the editor would be really cool!


Yes this would be really useful for me too. With the current method it’s also not possible to set one midi message to control multiple parameters as far as I know. I’m guessing this was done specifically for things like 3D controllers, so that the learn button does not just learn the same axis every time.

1 Like

I’m sure I can rig something up… but this would be a sensible feature in the long run IMO.

that being said… I’m loving the duo x… I was able to get started making fun sounds almost immediately!


This is a good feature request.
We already have everything in place in the backend to support this, it is simply lacking the UI options to trigger the action.


Sounds great! Looking forward to it :slight_smile:

Yes yes yes!
I also need to be able to map a single MIDI event to multiple destinations, i.e. a Wah-Pedal/Delay Mix

Your input has been duly noted, the feature will be considered for a future firmware version. Perhaps we can do the implementation of that together with allowing to manually create the mapping. It surely won’t come before allowing the manual mapping, because of the reason that @Schwalb already guessed correctly.

Until we have this feature, there is a way to achieve it already: by using the “MOD Control to CV” plugin, and enabling it’s output as an adressing source. CV signals can be assigned to as many parameters as desired, simultaneously.

You can read more here: https://wiki.moddevices.com/wiki/CV_Tutorial#Setting_up_Macro-Controls_using_CV



Also would love this implemented.
I use the footswitch for list selections and the Softstep for toggles and expression controls.
The softstep does short & long presses, X & Y expression, and pressure (expression).
I can set each of these to send a different CC# but can only learn one on the Duo or Dwarf.
With full XY assignment I could turn most knobs in a typical pedalboard thus allowing some amazing compositions not possible in any other device on the market.


I join in the wish! It should be possible not only to work via Midi-learn, but also to enter Midi values directly. It’s a bit awkward, especially for a midi-junkie like me.

In any case, you should be able to enter not only the PC#/CC# for ProgramChanges and ControlChanges, but also the Midi channel, the desired PC#/CC# and the corresponding value range or the specific value.

If you plan a little, you can manage quite well with Midi-learn in terms of ControlChanges, because the CC# is assigned in ascending order. So there is a rule that you can follow.

For example, I have a Morningstar MC3 midi controller. With this, you can send several commands at once. First I think about which knobs/buttons I want to control via Midi, then I assemble the command set in the Morningstar, let’s say 10 knobs are to be controlled via Midi. Once the Morningstar is programmed, I go into the Mod Editor and open the corresponding pedalboard. I select the first knob that appears in my command set, press the Midi button, then “Save”, and then I press the Morningstar’s footswitch, which shoots the complete command set. The editor returns that it has CC# 1 linked, so it ignores any higher CC#. Then I go to the next controller and do the same. It returns that CC# 2 is linked. So the editor automatically links to the smallest free number, so here it’s 2. Let’s say I’ve then assigned five CC# out of the 10 and delete number 2, then the next controller is linked to CC# 2, then the next one is linked to the smallest free number, so it’s 6, and so on.

It also works like this. It’s just a bit awkward, so I would very much welcome the free assignment of Midi Channel, PC#/CC# and value.


I’m not sure how easy this is to implement. And also if this is so “connectable” with other MIDI controllers. Anyway I will save it on the request list so we can investigate further.
Thanks :slight_smile:

I think the option to choose between free assignment and midi learn would let folks cover 99% of the midi use cases. It would complicate the UI a little bit for the midi assignment interface — in addition to the midi learn button, you’d need a channel and CC or PC number selectors, plus an option to set the min and max parameter values for the top and bottom of the CC range — so not that bad. Not having the ability to set a specific CC makes it much more difficult to map controls in complex midi environments. Another option would be to add “named midi controls” to mirror the named CV ports, where predefined CCs could be set up for use with multiple controls. This is less flexible, though, and doesn’t feel right for heavy midi users. Needing to actually use CV ports for multi-mapping midi CCs is even worse, though, as it massively clutters boards.


For a long time I’ve dreamed of having a separate view more like a table that would display the active MIDI connections for a pedalboard. This would be useful for users like me who can’t always remember what they were thinking about 3 months or 3 hours ago to understand at a glance what the expected setup is. I sometimes try other people’s fancy pedalboards and wish I could see how they set up their controllers at a glance.

Having a table-like view would be a natural step toward allowing direct editing of MIDI mappings as others would like to see. I’ll add my usual power user complaints that I’m not as excited as others about the excessive amount of clicking, dragging, zooming, scrolling, selecting that goes into just about any simple parameter change. With a table interface many users could setup their MIDI mappings on a new board in a matter of seconds.


I would love such a table, too! And it would even be usable on mobile devices…

1 Like

But should this be per plugin, or global?
For the latter this can grow out of hand quick, some synth plugins have many dozens of parameters. some even way more, but amount of parameters is currently capped at ~100 I think?

I’d go for global.
If you use the available MIDI messages as keys it is a fixed number. Still not easy to manage if you assign all of them. But I’d say still easier to manage than clicking every assignable parameter in every plugin.

1 Like

And what about having the same plugin in your pedalboard twice? how would you know which plugin you are editing?

1 Like

I’d say append their internal enumeration to their pedal name. Just like with the CV outputs. Something like CC#1 -> Distortion_1.gain and CC#2 -> Distortion_2.gain.
Maybe one could make the pedal name editable, e.g. “Distortion_1” is renamed to “CleanDistortion”.
Or clicking the parameter focuses the plugin.
Just to be clear, a list showing every assignable “thingy” (not just MIDI, but also device, CV) with the assigned parameter would be a big plus both on a global AND a plugin level. Even with my few pedals it becomes quite tedious to go through each plugin AND parameter individually to see how they are assigned.

Back to the original feature request:
I’d love to prepare pedalboards at home where I don’t have access to my keyboard with all its faders and knobs but I know which channel, cc# or pc# I can use.
For the UI: maybe first select the midi channel (omni or specific), then select the type (PC, CC, NoteOn, …) and last the value.


I imagine it to be even easier. When you go to “Assign to”, you click on Midi. Four input fields are displayed, one for the Midi Channel, one for CC#, one for the upper value, one for the lower value. That’s it. From my point of view, you don’t need more. The controller is programmed in its own UI, which doesn’t have to be done in the mod editor.

It would almost be enough to make Midi-learn editable, so that the values are not only “recorded” by sending a signal from the midi controller but that you simply are able to change recorded values or write values by hand.

By the way, you can use Wireshark or tcpdump very well to record the sent values if you want to see what you really have been sent. The Morningstar midi controller e.g. has even a separate window in its web editor that lists the sent values, so you always have full controll and know exactly what is going on. This controller is the best on the market for pedalboards anyway (next to the JET MCX, which is only a fifth of the size, can do less, but again a lot for the size!) - You can learn a lot there, about the allocation of PC / CC etc.


LIke those ideas Kim, basically allow for editing the current settings and then it’s just about done.
A fresh midi-learn should probably override any manual edit on that parameter, but that shouldn’t be blocking for this I think.