This is quite a common behavior and depends more on your MIDI controller than on your Dwarf.
Anyway, if your controller can receive MIDI and use it to give you accurate feedback you will need to use its MIDI in (set it on the virtual pedalboard running in the Dwarf) and set up some MIDI utilities that allow you to do this. Perhaps even using the virtual MIDI loopback port.
So the question here is: does your MIDI controller allow that?
Both interpretations are correct.
Indeed when you MIDI map only one direction is possible. What you can do is a workaround that allows you to map the parameter to something in between and then output one part of it to the plugin parameter and another to the MIDI out port that goes to the controller.
I would need to do some tests to really understand if this is possible (and I’m not sure when I will have the time), but I’m imagining something either using CV plugins or the virtual loopback MIDI port.
To summarize it, you want to assign the controller to the B parameter, so what you will do is to put another plugin (or plugins) to assign the parameter to A and the out of it goes both to the plugin with the B parameter and to the MIDI out port of your controller.
I hope that it was not too confusing…and I had no beers for a few days
I got it working with a “Control To CV” and a “The infamous mindi!”
So I mapped the knob on the CV control to a midi CC, the param I want to effect is controlled by the CV, the value in the Mindi is also controlled by the CV.
This give me bidirectional midi CC and everything syncs up.
This obviously is a bit much if there are going to be loads of parameters so I have started looking through your repository at the midi code, I have found the code for the incoming midi mapping and am now looking for where to shoehorn in the opposite direction, as the control chain supports this already I’m guessing this is possible to do…
It only requires changes to mod-host, all changes are in effects.c.
Adds jack midi output port to mod-host
Add int8_t midiOutValue to `MIDI_CC_T’. This will hold the 7 bit normalised param value or -1 for no change.
Change effects_init() to set all g_midi_cc_list.midiOutValue to -1 (no value)
Change effects_set_parameter() to check g_midi_cc_list and if MIDI_CC_T matches parameter set midiOutValue to correct CC value.
Change ProcessGlobalClient() and add code to handle Midi Out. Check the g_midi_cc_list.midiOutValue, if positive then send the midi message and set back to -1.
Automatic connection of the jack output midi port is not yet done, also probably needs a quicker comparison of symbol names in g_midi_cc_list, maybe a simple hash stored.
So now I am at the stage where I thought I would look to build and deploy something to test to the Dwarf and I have hit a bit of a wall. I hoped maybe you could help?
On the dwarf I can see mod-host using jack_lsp but I cannot see a process, I can also see /usr/bin/mod-system-control /dev/ttyS3 1500000 running, I have had a look around but can’t seem to work out exactly what this is.
How is everything setup on the Dwarf?
Next issue is building for the Dwarf, is there a setup somewhere for cross compiling mod-host with the control chain stuff?