Cabbage Logo
Back to Cabbage Site

Problem loading Cabbage plugins in Native Instruments Maschine

I have already described the problem here in the NI community, so I don’t have to type everything twice:

At NI, a support call is therefore also open, no answer yet. But I’am afraid, that this alone won’t be the solution… Apparently the problem is that the plugins (dll/vst3) generated by Cabbage are absolutely identical, they only differ in their names.

Question: If my assumption is true and if NI doesn’t find a solution (and I don’t think they’ll rebuild their entire loading mechanism just for me), can something be done about Cabbage or the generated plugins? Something so that the plugins are somehow different so that Maschine doesn’t think they’re the same?

As it is now, I can load exactly 2 plugins - a VST2, a VST3, if one were added, there would be problems.

BTW: the problem does not appear in Samplitude, but that does not really help, because I want to use Maschine.

That doesn’t sound right, they are both built against a different framework? How did you test this, there should definitely be a difference.

p.s. I just did a quick test now and the exported plugins aren’t even the same size… :thinking:

p.p.s I just did a quick binary search through two exported plugins and they are definitely different. How are you exporting your plugins, is there any chance something is not right there?

This is a bit confusing: of course xyz.vst3 and xyz.dll are diffrent. But abc.dll and xyz.dll are identical, as are abc.vst3 and xyz.vst3 respectively.


“Keine Unterschiede gefunden” = no difference found.

ja, du hast richtig. In earlier versions of Cabbage the exported binaries were modified so each one was unique. This involved some horribly ugly hacks on my part. The latest versions modify their details at run time. Let me think about it a while. I would rather not return to the old system as it was a nightmare and caused issues with other hosts. I’ll get back to you on it…

1 Like

Oh, great, I found a really nice problem… :wink:

Yeah, it’s definitely to doozy…

Ok, here’s what you can do (with apologises in advance for the hackiness of this solution :grimacing:)

Open your dll in a hex editor, I tested with https://hexed.it/
There is some useless text contained within the binary about how ‘this program cannot be run in dos mode’. Modify any of the letters from that string with another letter, save and download the updated binary. Swapping one byte for another in this case won’t break anything but should give your .dll a unique footprint. In my tests, the resulting dlls loaded fine across hosts.

If this does work, and you have some experience with another language such as Python C/C++, you quite quickly write a utility that automates this task for you. But I guess the first thing to do is figure out if this actually works for Machine…

No, it does not work :frowning:

Now the binary files differ, but the result is the same… (furthermore, there was bit of fun with Norton, who moved the downloaded files into quaratine, I had to recover them from there…)

This makes things a bit more complicated as I thought…

There are 2 DLLs, but only one is shown in Maschine:

Maschine still shows at least both VST3, but loads always the same (the first in the list).

seems, that this requires a bit more of thinking.

Anyway: if NI would like to test this (they did not answer yet, but sooner or later they will come back to me, so I can suggest this), what do they need? The contents of the plugin folders (i.e., DLL/VST3 and CSD) and a Csound installation (with csound.exe in the PATH). That should be sufficient?!?!?!

Oh, I thought, that I searched the forum completely, but now I found this one - a bit different, but somehow similar…:

Are you sure each plugin has a unique plugin id?

Yes, they have.

Hmm, I guess there is no way I can run the machine host without the hardware?

No, you can run the Maschine software without the hardware.

Oh, so I can probably grab a demo somewhere and test myself :grin:

I have never seen a demo version, but if you find one…

There seems to be no demo version available on the NI web site:
https://support.native-instruments.com/hc/en-us/articles/213038629-Where-Can-I-Find-the-DEMO-Version-of-a-Native-Instruments-Product-

Yeah, that’s an issue alright. I’ve no come across this issue in any other host, and I’ve run Cabbage is almost all of the hosts on Windows. Actually, Samplitude is one of the few I haven’t run Cabbage with, but as you say, that one works fine. You don’t happen to have any VST wrapping plugins that can’ host the Cabbage plugins? I’m not even sure there are any on Windows tbh…

I will try a wrapper, come back to you later.

In the meantime, it might be worth updating the NI thread to say that even if the binaries are different, we till suffer from the same problem…

Updateted the NI thread an tried a wrapper, will try another one later.

The wrapper works, but is not the solution, only a workaround. The one, that I tested now, is only VST2, and I cannot map instrument knobs/faders to Maschine master macros. These are a simple way, to have access to relevant parameters of different plugins at the same time, without constantly switching from one plugin to the other while playing live. But I can now load both Cabbage instruments and tweak their GUIs as needed. At least.

You mentioned the plugin id - which role does it play? If the binaries are identical, the plugin id cannot be a part of the binary, so it is only in the CSD file. Should that have influence on loading plugins by the host?