Cabbage Logo
Back to Cabbage Site

Problem loading Cabbage plugins in Native Instruments Maschine

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?

It hasn’t in any other host I’ve tested with, but there is always one. The plugin name and id should technically be built into the plugin at compile time. Let me try something…

Ok, can you open the plugins once again with Hexed or whatever you’re using. Search for the string CabbRORY. Change RORY to something unique. Save and try again. If it doesn’t work with this change it’s because Cabbage overwrites that key when a plugin is launched. So maybe if I stop Cabbage from doing that, you might be able to convince Maschine that each plugin is somehow unique. :crossed_fingers:

Edit: you might as well try changing the Cabb string too while you’re at it…

Will try that in the afternoon.

But what I found out this morning: there are many strings “pluginID” in the dll/vst3, all (as far as i investigated it) followed by zeros, here is an example:


But where should I expect the unique pluginID? If the pluginID is not written to the binary, then all the plugins have the same useseless dummy ID, and that may confuse Maschine. That woukld also explain, why the binaries are absolutely identical.