Hi @Ricker ,
be aware I’ve no experience with VEP nor with Logic, so my answers are generic.
For your first issue (E1 not responding to MIDI learn and not responding to the VSTi), it looks like the same cause, which is the VSTi is currently not transmitting any MIDI CC out signal. If that is the case, then it won’t send out any RPN or NRPN for that matter.
So this issue is not with the E1 in itself but with VEP or Logic or its combination.
As for feeding back data from a synth into a list fader , that is a very recognizable issue. If you are not giving a ‘meaning’ to each of the 128 values in the overlay, the E1 is assuming every undocumented value to represent the first entry in the overlay, isn’t it?
There are currently two solutions possible. The easy (but tedious) one is to add an entry for each of the 128 values as you are doing currently. That is doable and workable and perfectly acceptable.
The slightly compex (but lazier) way is to create the overlay list as you would have done originally and then ensure that the controller, when receiving a MIDI CC change, is converting any undesired intermediate value to one on the list.
This requires some lua scripting. Have a look at the following script:
deviceId = 1
device= devices.get(deviceId)
function midi.onControlChange (midiInput, channel, controllerNumber, value)
if channel == device:getChannel () and controllerNumber == 102 then
if value >105 then value = 110
elseif value > 84 then value = 88
elseif value > 63 then value = 66
elseif value > 42 then value = 44
elseif value > 21 then value = 22
else value = 0
end
parameterMap.set (deviceId, PT_CC7, controllerNumber, value)
end
end
=> It assumes your device is device 1, and henceforth can determine the channel it is in.
The callback function “onControlChange” is triggered whenever a MIDI CC is received by the E1.
This script only checks for CC 102 on the device’s channel. In that case it will convert any received value to 0, 22, 44, 66, 88 or 110 according to the given conditional formula. Of course other formulas are more elegant but this example serves the purpose well. Lastly it will put the final value in the parametermap of CC 102.
Here’s how the list fader itself is looking like
This list fader is behaving correctly in both directions