I just discovered that I could send pre-effect level CCs to my Supernova, allowing the volume pedal to fade the pre-effect signal but let the effects decay. After reading up on how to send NRPNs, I can’t see any way to that with a widget. If there’s a way, I’d love to hear it. If not, please consider this a feature request.
Trivial to do with a GP Script. For example (though untested)
Var
Supernova : MidiOutBlock // A GPScript named MidiOut Block associated with external synth
Foo : Widget // Some widget
Function NRPN(midiOut : MidiOutBlock, parameterNumber : integer, parameterValue : integer)
var
m : MidiMessage
m = MakeControlChangeMessage(99, parameterNumber / 128)
SendNowExternal(midiOut, m)
m = MakeControlChangeMessage(98, parameterNumber % 128)
SendNowExternal(midiOut, m)
m = MakeControlChangeMessage(6, parameterValue / 128)
SendNowExternal(midiOut, m)
m = MakeControlChangeMessage(38, parameterValue % 128)
SendNowExternal(midiOut, m)
End
// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from Foo
var
value : integer
value = ParamToMidiEx(newValue, 0.0, 1.0, 0, 16383) // Convert from widget range to 14bit number
NRPN(Supernova, 286, value) // Send the converted widget value to NRPN number 286
End
A quick view with Midi Monitor would suggest that this does the right thing though. Look at every group of four events
Excellent! I’ll give it a try. I’m still not used to the idea of being able to script things.
I used the script as a template and it is working perfectly. Intermediate steps were to get a later version of the Supernova II manual (mine had no listing of the NRPNs) and then to figure out that the hex and decimal parameter numbers in the table were wrong, that I needed to use the MSB/LSB values instead. Now I have a pre-effect volume control so that the delay/reverb on the patch in question decays naturally.
1 Like