Transformer as MIDI Insert disabled by Expression Map

Hey guys,

I’m trying to set up a MIDI Insert Transformer to limit the overall dynamic range of notes by inversely scaling CC7 to the velocity of the played note, like so:

This works perfectly fine (a bit of jumping around when multiple notes are played at once, but I can live with that).

However, as soon as I activate an expression map and assign an articulation, this stops working for playback and only works during live playing. The expression map in question only uses CC32 values to select the articulation (i.e. CC32 value 40 = spiccato). All the items in the map are set to Attribute, not Direction.

I’m at a loss as to what is happening here. When using the MIDI Monitor right after the Transformer insert, I can see that CC7 is indeed reacting to the different note velocities, but the actual CC7 volume slider in Kontakt isn’t moving at all, it is just static to whatever the last value was before playback started.

This only happens when the expression map is added to the track. Once I remove it, everything works, CC7 moves correctly, responding to the velocity of the incoming notes during playback, recording and just live keyboard playing. If I add it again, only the playback stops working.

Please help!

EDIT: If I switch everything in the expression map to Direction instead of Attribute, everything works perfectly again. Is there any way of making this work with Attributes? I’m not too eager to change up my workflow just because of this…

PS: I should also mention, on MIDI tracks that are tied to a Kontakt 7 instrument track, as soon as I change articulations or assign them per note, MIDI monitor starts showing additional CC changes with every note but only during live playing, NOT during playback of already recorded material. The CC number corresponds in some way with the note values (i.e. CC55 = G2). I’m guessing that this is a potential reason for this mess, as it would imply that one of the notes would correspond to CC32, which is disabled because of the expression map. But why are these CCs being sent in the first place when they weren’t when the expression map wasn’t active? Also, this behaviour doesn’t disappear when the expression map is disabled again, it just stays this way. But the strange thing is, this particular thing only happens on tracks with Kontakt 7 associated with them, not on the ones with Kontakt 8.

PS2: as I’ve just created this account, I can only post one image, hopefully I’ve described everything else well enough.

Hi,

What about using MIDI Modifier > Velocity Compression? Or if you want to have it as a real audio compressor, use the MIDI Insert Compressor, please.

1 Like

Hey thanks for the reply, but wouldn’t that cut off the lowest dynamic layers that are available in the sample library though? I’d still like to use the full recorded range of the samples, seems like a bit of a shame/waste to just remove those out entirely by compressing and then adding a velocity offset. Or does the MIDI Insert Compressor actually do what I’m trying to program (riding the volume scaled to the velocity)?

Hi,

If you want to limit the overall dynamic range from top, use the MIDI Insert MIDI Compressor. You will set the Velocity Threshold, Compression Ratio and Velocity Offset, if you want to.

So the Notes above the Velocity {Threshold} will be compressed in the ratio {Ratio}.

Let’s say with the setting:

  • Threshold: 100
  • Compression Ratio: 1:2
Input Velocity Compressed (Outpu) Velocity
0-100 0-100
101 101
102 101
108 104
110 105
120 110
126 113
127 114
1 Like

Ah yes, but see this is the thing, I don’t think this does what I’m looking for, unfortunately. In my case, the quietest recorded dynamic layer is REALLY quiet. Like it barely shows up on the Cubase meter and is much quieter than the rest of my sample libraries. So in my case, I’m leaving the top dynamic layer unaffected and progressively boosting the lower dynamic layers, in the end reducing the overall dynamic range by 12dB.

So the pp volume in Kontakt is +12dB and ff volume is +0dB, while everything in between reacts to the velocity accordingly. That’s what I’m trying to achieve. I’ve gotten a lot of suggestions to use an actual audio compressor as an insert on the output of the instrument, but I don’t want to actually affect the audio by compression, especially on strings or brass where it will be really apparent (no matter how transparent the settings may be).

I’m already doing this using the exact same Transformer preset but with CC1 instead of Velocity and it works like a charm. For some reason, the expression map seems to be posing an issue here. Any ideas as to why?

Hi,

Does it mean, you want to use MIDI Expander in fact?

Well, not really, I still need to reduce the overall dynamic range, so it’s definitely compression, but I need to also keep the actual sound of the library intact, which rules out both MIDI and audio compressors since they either remove the lowest dynamic layer or make the top dynamics completely squashed.

I think my solution works for the most part, I’ll just have to make sure to set any chords to the same velocity for every note to avoid any weird CC7 jumps that might occur. The only thing to sort out is the interaction between the Transformer preset and the attribute expression map. Are there any settings in the Transformer that I could potentially use to filter out whatever is being blocked by the attribute expression map?

Hi,

I see. I think, I finally understand. You want to keep the color of the samples, therefore you want to keep the MIDI data and you have to do the dynamic compression on the audio.

Then, why not use a Compressor audio Insert effect?

To avoid the Expression Map, I would try to increase the
Pitch | Bigger or Equal | C0
to exclude the Expression Map switchers.

Hey, well… I know you’re trying to help and I don’t want to be rude but… I’ve already explained why I don’t want to/can’t use an audio compressor twice in the thread and the screenshot that I posted has that exact line that you’re suggesting, unless, you mean to increase it to a higher note (which I can’t do as the Double Basses have their lowest note there)…

Here’s a weird thing that happens after I turn on the Transformer preset that I linked in the OP. For some reason, an additional CC message is sent with every single note I play. Why am I getting “Control 60” set to value 104 every time I play a C3?

I think this may be the reason for the attribute expression map not working correctly, since the Transformer preset somehow generates extra CC messages and one of the notes is bound to correspond to CC32 which is used to change the articulations. And given the fact that expression maps lock out any control that is used in the map, this would explain everything. But… why is this happening? How do I prevent it?

Hi,

You also get MIDI CC62 when you play D3 and CC63, when you play D#3.

Yes, I can see that, but why am I getting those controllers sent? I understand that they correspond to the MIDI note numbers, but why are they being sent as controllers all of a sudden. Now I think I should mention but the included presets in Transformer have a preset named “Extra MIDI volume for notes” which looks basically exactly like my own preset that I posted in the OP, but without the last 3 lines in the lower portion. This same behaviour happens when that preset is applied too.

And most importantly, how can I set up my Transformer to not generate those controllers?

Look at the second line of Event Target Filters. Please reset the Velocity of Filter Target. If you reselect Velocity, it will only respond to Note On velocity.

Filter Target is displayed as “Velocity”, but there is a bug here. If you select Note for Type is on the first line, “Velocity” will also be displayed when you select Main Value on the second line.
(When adding a line using the Insert button, it looks like “Velocity” but is actually Main Value)
Although the appearance is the same as “Velocity”, the behavior is different from when Velocity is selected.

If you select Main Value, “Velocity” will be targeted when a note-on occurs, and “Off Velocity” will be targeted when a note-off occurs. In other words, when a note-off occurs, it responds to “Off Velocity 64”.

By the way, if Velocity is 0, it is considered Note Off, so I think it is better to set it to “Bigger 0” instead of “Bigger or Equal 0”.

1 Like

Hi,

Could you try to change the order of the Actions, please?

Set the Type, then set all the Main Value and the set the MIDI CC Nr., please.

Awesome thank you, it was indeed this that was causing the problems!

1 Like