Convert Channel Pressure to Key Aftertouch

Idea fairly simple. When a channel pressure message is received, resend that value for all keys that are in the note on state.

It’s easy enough to put this together for a single specific note, but there’s no variable that I see that represents all notes in a note-on state.

Is such a translation possible with MIDI Translator Pro?

Hi, this can be done but before I help you on this, I’m not sure it will have the desired effect.

Channel pressure by definition already effects all notes currently playing (channel) where polyphonic key pressure just effect the note you are applying pressure. Are you wanting to convert polyphonic key pressure to channel pressure?

Maybe you are wanting to convert channel pressure to resend notes (with different velocity). We can do that too, however there may be a side effect if the sound has an attack set. It may sound like you are striking the note again as opposed to applying greater pressure.

The trick in each case is to bitmap, all 88 keys (or 61 if you have a 61 note keyboard) and then use a timer to iterate through them all. For 61 keys it would take 2 global variables. For 88 keys it would take 3. (Global variables are 32 bit signed integers) 322=64 (3 left over bits) 323 = 96 (8 left over bits)

Let me know.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thanks. That makes sense. And will achieve the effect that I was looking for: conversion of channel pressure to key pressure.

Why on Earth would anyone want to do this?

I have a Hydrasynth module. Most patches on the Hydra are responsive to key aftertouch because the Hydrasynth keyboard transmits this. These same patches are not responsive to channel pressure. Unfortunately, most of my keyboards only transmit channel pressure.

There’s a couple other things that introduce some additional complication, but that’s the essence of the problem that I am trying to solve.

Thanks for the approach.

How many keys does the target keyboard have?
And just to be clear you want to convert polyphonic key pressure out to channel pressure or the other way around?

The attached file will convert channel aftertouch to polyphonic aftertouch.

The preset “Init” handles project initialization on global variable management.
The preset “Note Management” tracks which notes are on and which notes are off in 3 global variables as well as triggers the Poly Aftertouch timer when a channel pressure message is received.
The preset “Channel to Polyphonic AT” contains the timer that iterates through all notes on sending key aftertouch for each currently pressed note. The aftertouch value will be the same as incoming channel aftertouch.

Channel-to-Poly-AT-2021-03-28.bmtp (3.5 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

Thank you very much. I’ll give this a try.