Cabbage Logo
Back to Cabbage Site

Packaging custom graphics to work with an AU export

Hello! I have been trying to export my plugins for friends and distribution to producers, however no methods I could think of (although limited) seemed to work. Does anyone know the standard process for doing so? Thanks a ton!
Sincerely,
Matthew Emby Bottone

Specifically, I have custom knob graphics and background images that I am trying to package and have open on a new device and in the AU

I’ve never done it, but you need to make sure everything is in the .component directory. If you right click on the .component icon you can browse it.

There’s a “bundle” option for the cabbage form that would probably put them in the right place.

https://cabbageaudio.com/docs/form/

Hi @EMBYMATTHEWS. As Bryan mentioned, you need to make sure everything is contained with the .component bundle. The bundle() identifier is the simplest way to make sure this is the case, but it’s no harm throwing your eyes over the package just to make sure everything is in place. Also note that if you wish to distribute the plugin you’ll need to code-sign it, which means paying the 100$ Apple tax :confounded:

Hi! I think this should work, but every time that I try and add this snippet as its used in the example, it isnt picked up by the IDE, as in rather than a red hi-light, it writes “bundle()” as plain text. I am not sure if i am supposed to be writing “bundle()” outside the “form” line, or if it isn’t being picked up correctly. I am gonna try and export it and share it and see if it bundles anyway but if this seems incorrect it would be much help to be pointed back on track!

form caption (“GIGGLEGRAVEMANGLER”) size(400, 300) guiMode(“queue”) pluginId(“def1”), colour(“0,0,0”) bundle("/Users/mattbottone/Desktop/GIGGLEGRAVEMANGLER")

Can you create a minimal example, i.e., a full minimal .csd file and a graphic you are trying to bundle?

yeah, can you format the code please, that’s not going to run. Best would be to simply upload the full file as an attachment, along with the image :slight_smile:

Oh my apologies I did not see what a mess it was! These are the images and the csd for cabbage! Thank you so much for your assistance!
GIGGLEGRAVEMANGLER copy.zip (267.9 KB)
GiggleGraveMangler.csd (2.5 KB)

I saw your post before you delted @Bryan_T, and you were right :slight_smile: The problem @EMBYMATTHEWS is you have hard-coded absolute paths for your images. As soon as you share this everything will break. Here is the updated Cabbage section. This assumes that the .csd file will be in the same place as the images which is fine.

<Cabbage>
form caption ("GIGGLEGRAVEMANGLER") size(400, 300)  guiMode("queue") pluginId("def1"), colour("0,0,0") bundle(".")
image bounds(0, -2, 400, 300) channel("image10007") file("BACKGROUND.png")
rslider bounds(296, 28, 50, 76), channel("gain"), range(0, 1, 0, 1, 0.01), text("Gain"), trackerColour(255, 0, 0, 255), outlineColour(0, 0, 0, 50), textColour(255, 214, 57, 255) colour(209, 55, 186, 255) imgFile("Slider", "SKULL KNOB.png")
rslider bounds(236, 28, 53, 75), channel("DRYWET"), range(0, 1, 0, 1, 0.01), text("DRY/WET"), trackerColour(255, 0, 0, 255), outlineColour(0, 0, 0, 50), textColour(255, 214, 57, 255) colour(209, 55, 186, 255) imgFile("Slider", "SKULL KNOB.png")
hslider colour(155, 66, 156, 255) bounds(8, 28, 182, 73) channel("spookometer") range(0, 1, 0, 3, 0.0001) textColour(255, 222, 37, 255) fontColour(0, 0, 0, 255) imgFile("Slider", "WOODEN LEVER.png")
hslider colour(4, 221, 0, 255) channel("delayslider") range(0, 100, 0, 1, 0.001) bounds(2, 176, 125, 44)  imgFile("Slider", "WOODEN LEVER.png")
hslider channel("TheGraveTickler") range(0, 1, 0, 1, 0.001) colour(0, 0, 0, 255) bounds(156, 180, 158, 50) trackerInsideRadius(0.06) imgFile("Slider", "WOODEN LEVER.png")
hslider bounds(264, 252, 143, 44) channel("crazymode") range(0, 1, 0, 1, 1) imgFile("Slider", "WOODEN LEVER.png")
</Cabbage>

I was 95% sure that was the issue, but wasn’t certain.

Incidentally, the bundle(“.”) thing is a good trick. I would have been listing all the files!

At the moment, it still seems that it is not bundling. I moved the file to the main image collection folder, and the plugin still seems to not be collecting the graphics to the plugin and bundle isnt being recognized. I just tried a fresh install, but this is my view at the moment both ide and Plugin build. The build on my ide still shows as plain text, I feel that it may not be picking up that as a valid identifier

What version of Cabbage are you using? You should grab the latest version from DevOps, there is a link on a sticky post in the forum. I tested with a relatively new version yesterday and it worked well.

I installed the new beta version and it seems to have worked! I am trying to share the .component file and now I just am having the issue of it seemingly coming “undone” when I am trying to share it. Does this have to do with the codesigning as mentioned earlier in this thread, or is there a different way to package the .component file so when it arrives on another computer, it still is the same sort of file rather than turning into a folder with all the items in it that isnt useable. Let me know if this makes no sense and I can clarify better my problems with images! Thank you again so much for your help thus far!

You need to include Csound. The best way is discribed here:


But the simplest way is to get the end user to install Csound before they try your plugin. If it’s for testing, then asking people to install Csound first is fine, but if you wish to share it with a larger audience, then you will need to relink it. You’ll aslo nee to codesign it.

Here is the follow up post that earlier link with even more details: