MIDI Note to CC

Hi all, just a question which I think should be simple (but isn’t to me!):

I have a Eventide H9 with a great looper - and a Nord drum 3p with pads.
I would like a drumpad on the Nord to trigger the looper (record) on the H9.

The Nord transmits note 30 and the H9 expects CC 30 to start recording. On a different machine, I checked that the H9 receives CC 30 at 127 velocity and starts recording. But the drum note won’t trigger the recording. All channels align - and velocity from the Nord note is also 127.

Of course - when I make a ‘button’ in the H9 preset on the E1 to trigger that same function, it works. I told the E1 to ‘listen’ to the incoming Nord midi data for that button, and it then changes the function of that button from CC to Note. But perhaps that’s a wrong procedure anyway.

I guess it should be simple - but I can’t understand (yet): how to use an incoming midi note, to trigger a certain CC function? Are notes by definition the same as CC?

Thank you, Jasper

They are different commands in the language of MIDI.

For example, if a MIDI device receives the following Note On:

0x90 0x3C 0x40 Note On/chan 0, Middle C, velocity could be anything except 0

Then, a respective Note Off should subsequently be received at some time, as so:

0x80 0x3C 0x40 Note Off/chan 0, Middle C, velocity could be anything

and CC (continuous controller) messages are:

0xB0 0x3C 0x7F is send a CC value of 127 (7F) to CC 60 (0x3F)

So 0xB0 is the start of a CC message and 0x90 is the start of a note on message.
You will have to read the MIDI note and then send a CC message.

What you can do is in your preset , you listen with a NoteOn midi callback to all received note on messages. When you receive note 30 on the midi channel of the drum pad, you perform a midiSendCC function on the channel of the Eventide, with CC value 30 and velocity > 0 (127 f.i.).

What ports of the E1 you need to listen to? And at what port of the E1 is the Eventide connected to?

Do you know how to do this in lua?

thank you two for your quick replies!

hmm no - I didn’t get into Lua much more than just copying things from existing presets without really ‘grasping’ it. But for the simpler codes I can imagine how they work.

The Nord would send on channel 10, and the Eventide listens on channel 16, both in/out ports 1.

I’d be curious if it would be easy to explain in writing what / how I could write this simple code in Lua (if it is simple). It’s really just a small thing, but it may be helpful to learn a bit more from Lua by doing this.

Thanks again!

deviceId = 1 -- the device ID used in the E1 preset, assumed to be the Eventide
device = devices.get(deviceId)
devPort = device:getPort() -- assumed to be set at port 1 in the preset
devChannel = device:getChannel() -- assumed to be set at channel 16 in the preset
drumChannel = 10 -- is the 'listening channel'

function midi.onNoteOn (midiInput, channel, noteNumber, velocity)
  if channel == drumChannel and noteNumber == 30 and velocity > 0 then do 
    midi.sendControlChange(devPort, devChannel, 30, 127) 

I can’t test it myself…

Amazing - thanks for the help! Will let you know if I manage!