MIDI CC Filtering - no sustain pedal

Hi all,

I managed to get my sampler plugin cross-compiled and working on a RPi :tada:

I’ve run into a small issue though - only Midi CC’s 0 and 1 seem to make it through to my plugin. As a result, sustain pedal messages aren’t being sent to the plugin.

I’ve tested this by logging all messages the plugin receives, and adjusting a knob on my midi controller while changing the midi CC output of the knob on the controller. Messages get logged for CC00 (pressure) and CC01 (Mod wheel) but anything higher doesn’t make it through.

It’s possible I’ve missed something in my config file - here’s what I’ve got currently:

{
    "host_config" : {
        "samplerate" : 48000
    },
    "tracks" : [
        {
            "name" : "main",
            "channels" : 2,
            "inputs" : [],
            "outputs" : [
                {
                    "engine_bus" : 0,
                    "track_bus" : 0
                }
            ],
            "plugins" : [
                {
                    "path" : "imagiro piano 2.vst3",
                    "name" : "imagiro piano 2",
                    "type" : "vst3x",
                    "uid" : "imagiro piano 2"
                }
            ]
        }
    ],
    "midi" : {
        "track_connections" : [
            {
                "port" : 0,
                "channel" : "all",
                "track" : "main",
                "raw_midi" : false
            }
        ],
        "program_change_connections": [
            {
                "port": 0,
                "channel": "all",
                "plugin": "imagiro piano 2"
            }
        ],
        "cc_mappings": [
            {
                "port" : 0,
                "channel" : "all",
                "plugin_name": "imagiro piano 2",
                "cc_number": 1,
                "parameter_name": "tone",
                "min_range": 0.3,
                "max_range": 0.7
            }
        ]
    }
}

It’s possible I’m missing something obvious - has anyone else come across this?

Thanks

  • August

Hi Imagiro and welcome to the forums. You’re not missing something obvious, Sustain pedal support was never implemented the way pitch bend and mod wheel was.

As your plugin is a vst3 plugin, a workaround is to explicitly add a cc mapping from the sustain pedal cc (64) to the exported sustain pedal parameter in your plugin.

You’re probably already aware of this, but midi controller support in Vst3 is a bit odd in the sense that for sustain, mod wheel, pitch bend, etc, you need to export a parameter and tell the host that this parameter maps to this control. See [3.0.1] Parameter MIDI Mapping - VST 3 Developer Portal

Hey Gustav,
Thanks - lovely to be here, been having lots of fun running plugins on my rpi! Big game-changer for my music-making workflow.

I see - thanks for the heads up, I’ll give that a go. I wasn’t actually aware of how midi CC worked in VST3 - yet another thing that JUCE has silently handled for me up until now.

Thanks for your help!

1 Like

Great to hear :heart: ! If you’re using JUCE (should have got that from your x-compile thread :slight_smile: ) then I think it exports those parameters automatically.