No elements of MidiBuffer in Cakewalk

I have a simple project that displays midi notes on the GUI (this is my first plugin and the first time with C++).

It works fine in Reaper (win11) but cannot read any midi note from MidiBuffer in Cakewalk by Bandlab (which is the DAW where my plugin is supposed to work).
Shall I tweak something in the code? or in Cakewalk?

here is my code: MidiDiff/Source · main · Arnold Farkas / MidiDiff · GitLab

Have you tested any of the example plugins that use a MIDI input, e.g. the MIDILogger or AudioPluginDemo projects? If those work, you could look for differences between your Projucer project and the Projucer projects of the working plugins.

sounds straightforward, I’ll have a look, thanks


I tried the example MIDILogger in Cakewalk and I got the following error:

by selecting the “MIDI Effect Plugin” I could do the same in my project, but without this check, the plugin at least started :slight_smile:

so I’m digging more…

I have had no luck yet.

Has anybody ever used Juce’s Midi in a Cakewalk?
Could you please tell me what example project worked for you?

Are you loading your plugin as a VST3? Have you tried configuring it as a Synth in Projucer?

It looks like Cakewalk requires plug-ins to have at least one audio bus. I’ll update the demo to allow the MIDILogger to load.

Once the MIDILogger is loaded, I could get it to display incoming MIDI messages by taking the following steps:

  • Create an Audio track. Add an instance of MIDILogger as an FX insert on that track.
  • Open the MIDILogger’s editor window. In the “VST3” dropdown menu at the top of the editor window, click “Enable MIDI Input”.
  • Create a new MIDI track.
  • Set the MIDI track’s output (dropdown menu with an ‘o’ symbol) to the MIDILogger.

Now, MIDI events on the MIDI track should be printed in the MIDILogger’s editor window.

thanks, how/when can I get the updated MIDILogger demo?

We’ll probably push it in the next few days.

In the meantime, you can try out the same change by modifying getBusesLayout on line 338 to

    static BusesProperties getBusesLayout()
        // Live and Cakewalk don't like to load midi-only plugins, so we add an audio output there.
        const PluginHostType host;
        return host.isAbletonLive() || host.isSonar()
             ? BusesProperties().withOutput ("out", AudioChannelSet::stereo())
             : BusesProperties();

That change is on develop now:

1 Like

I just had time to try out the modified MidiLogger and it’s working for me in Cakewalk as you described. thanks

trying out my own project. I’ll let you know the result

thanks for the help @reuk. Based on the demo and your change I could implement my plugin and use it in Cakewalk too.

The advice in this thread is known to work and I’ve benefitted from it. One additional Cakewalk by Bandlab configuration detail that needs to be set when a Juce MIDI plugin is installed is enabling MIDI inputs and outputs on the host side. It can be done manually but:

Can anyone advise how to enable MIDI inputs and outputs from within the Juce MIDI plugin automatically when the plugin is initialized?