Cabbage Logo
Back to Cabbage Site

Cabbage and PawPaw

Is it possible with PawPaw to create a Cabbage plugin for Windows that can be used without the user having to install Csound himself? That is: because such a plugin already contains everything from Csound that it needs to work.

This the first time I’m seeing this project. Looks nice. I don’t envy falkTX, it looks like quite a lot of work. He’s an open source legend. I don’t see anything to do with Cabbage there. But it might work. But I imagine it might be quite a lot of work as it will probably involve building Csound too as the main release doesn’t ship with static libs afaik.

I have been busy with Faust lately and now XUiDesigner has made it possible to cross-compile LV2 plugins for Windows and Linux starting from a Faust file using PawPaw to do so. That’s why I wondered whether it would also be possible to use PawPaw to somehow put Csound inside generated Cabbage plugins (as an option). That would make it easier for Windows users unfamiliar with Csound to use Cabbage plugins without them having to bother about installing Csound.

There is an argument to be made that those releasing Cabbage plugins on Windows should ensure their users don’t have to worry about installing Csound. Their installers should really take care of all of that. ToneZ is a great example of this. It looks after the bundling of Csound when the plugin is being installed.

So your advise is to follow the example of ToneZ and not use PawPaw? Where can I find how the bundling of Csound is done by ToneZ?

The building of Csound is not done, he simply packages Csound with his installer. The prudent thing to do is to check for Csound, and if it’s not there install it.

OK - I will see if I can find out how to write an installer. But what is the best free Windows installer software to use for Cabbage plugins?

Ah - I now see that ToneZ has used innosetup, I have asked for more info about it there.

Btw, I meant to say that adding support for Csound with PawPaw will still present issues if users have installed a system wide Csound. If you link statically to Csound when you build a frontend you are free from any conflicts with other versions of Csound but you still run into issues with the plugin opcodes. So regardless of how you are bundling or packaging Csound with your plugins, I’d recommend using only the inbuilt opcodes. It will save you a lot of hassle down the line. :+1:

Do you mean the UDO’s by opcodes that are not inbuilt?

UDO are user defined opcodes, they are loaded and compiled at run time, they are not an issue. I’m talking about the faust, fluid synth, buchla, etc. opcodes. You’ll find them in the plugins directory of your Csound install.

OK - don’t think I ever used those. Anyway as I plan to write Cabbage plugins that can also be used on Windows I better not use Faust, Fluid Synth, Buchla, etc. related opcodes. If I want to use Faust, then I will use Faust; if I want to use Fluid Synth than I will use Fluid Synth, etc. That will keep things clear and simple.

Yeah, tbh, there aren’t that many you might use anyway. But it’s good to check every now and then. There are way to work with them in this context, but it usually involves a lot of pain!

1 Like

I tried the wizard of Inno Setup to create a primitive installer, but it looks like the wizard demands an exe-file instead of a plugin as the thing to install. Is it also possible or perhaps even simpler to create an installer for an exported standalone Windows app of a Cabbage program?

https://docs.juce.com/master/tutorial_app_plugin_packaging.html

Here are some info about distribution of plugins using Inno Setup

1 Like

Great - I will print it out. :slight_smile:

In the ToneZ setup it says:

; Based on the Csound 6.09 Installer script by Mike Goggins.

Where can I find that installer script?

That will be somewhere in the Csound repo. I’d stay clear of that and use @hdale94. You can also check out the Cabbage installer script. Note that functions in the end are more or less copied and pasted from the Inno examples. You don’t/shouldn’t need to mess with them at all.

Maybe it’s simpler to just ask the Windows users of my plugins to first install Cabbage as an appropriate host for my plugins, that will likely also install Csound on their computer and after that they can use the plugins in other hosts also. Or won’t that work?

I have forgotten how easy or difficult it was to install Cabbage in my Windows laptop…

That’s what the Cabbage installer does. Take a look at it. It gives users the option of installing Csound first. It’s definitely one of the simplest approaches.

1 Like