Transform CC16 + Note to a Different Note

I’m running two different electronic drum modules in tandem and they use different methods for “rim click” and “rim shot” articulations -

Module 1

  • this simply uses two distinct notes for these articulations (eg. note 39 for rim click, 40 for rim shot)

Module 2

  • the MIDI note is the same for both “rim click” and “rim shot” (for example, note 40)
  • positional sensing is used to determine the difference between the two hits and it uses CC16 for the position information
  • a CC16 value of 0 - 126 is treated as a rim shot
  • a CC16 value of 127 is treated as a rim click
  • the CC16 value is placed just before the Note On for the hit in the MIDI stream

I’m hoping to use Midihub to allow module 2 to trigger the correct notes of module 1.

So, from my example, I need to make

CC16 127 + Note 40 = Note 39
CC16 0-126 + Note 40 = Note 40

Passing the CC16 along in either case doesn’t really matter. I also need to retain the velocity etc. from Note 40 if it’s converted to Note 39.

I’ve not got the Midihub yet, I’ve just been playing with the editor to see if I can work out the logic to get this to happen but I’m not sure I’ve fully got my head around it. Is this possible? And if so, what steps should I use?

Hey, @Luke_eDW, welcome to Midihub forums.

yes, this is possible.

You can use the CC16 to Transform into the Note Number values you need for the “Note 40” Transform.

As you don’t need the CC16 to pass it would be a two line preset:

  1. [CC only] CC16 → Transform1 → Transform2 → Virtual H (say)
    Transforms 1&2 give the different values for the different ranges

  2. [Notes only] Note 40 → Transform3 → MIDI-OUT
    where Transform3 is a Note On & OffNote On & Off Transform where the Note Number is set to say Arg1 and Arg1 is set by the mappings from Line1.

Happy to upload an example, but you may prefer to write it yourself :slightly_smiling_face:

Hi @resonotter . Thanks for the welcome and for the reply!

If you could upload an example, that would be really appreciated! I’m looking at it all now in the editor and I’ve been reading the Help too but for some reason I’m just not quite getting how those should be set up. I think I’ll need to see it for it to click with me.

1 Like

Here you go:
Luke_eDW_CC16_decides_note.mhp

I’m monitoring the Note Transform in line 2:

see how the Note#40 is left the same unless CC16 is 127 when it becomes Note#39.
Note also that velocity is preserved.



When you inspect the two “mapping creation” Transforms in line 1, you’ll see there are only two differences between them:

  • the Use Value setting, dictating whether to work when the value is Inside|Outside the set range
  • the value of Argument 2 – which value the map should take

Notes

NB.1 Filter bypassed purely to allow us to see the CC16 values. Once happy, CC16 can be filtered out as has no effect on this pipeline

NB. 2 All my CCs precede the Note On by 1ms. Would need to test whether map would update quick enough when in the same ms. Can be worked around.

Apologies for the delay. Thanks a lot for that!

I think I’ll still need a bit of time to fully get my head around it, but seeing the output on your screenshot and putting it into the editor to look at has really helped. I’ll order a Midihub and get hands on with it, I’m sure that’ll complete the understanding. Thanks again!

2 Likes

Pretty sure you’ll be right on it when you can get hands on


All my CCs precede the Note On by 1ms. Would need to test whether map would update quick enough when in the same ms

this is the only issue I could see arising. Let us know.

Happy Midihubbing!

1 Like