Cabbage Logo
Back to Cabbage Site

Standalone Apps and cabbageCreate

I tried to export my synth as a standalone app, but it appears that cabbageCreate doesn’t work in a standalone app… It seems that the standalone stuff is only a couple years old, and cabbageCreate is even younger, so it would make sense that they don’t play well together.

OS, and Cabbage version please :wink: I’ll take a look when i get a chance.

Cabbage 2.7.3 and Mac OS 10.13.6

I just tested with the same version and OS and it worked fine… but

I had to right-click show package contents before my OS would let me run the app. When I first export I get the broken icon. But opening the content in Finder seems to sort that. Let me know if it’s the same with you.

Huh… I didn’t get a broken icon, and the app launched, but only the static objects showed up. None of the cabbageCreate objects. I’ll try what you said to do when I get home tonight

Oh hang on, I jumped the gun there! I’ll check what you actually asked about when I get a chance tomorrow. Sorry, I thought it was just an issue with the standalone apps…

Thanks, Rory, it seems I’m running into a number of issues. I really appreciate that you’re so attentive to these things. I’m to the point where I’m adding the preset stuff on my synth. I’m pretty happy that I’ve been able to have all the gui widgets made with cabbageCreate… I’d like to post it and get some feedback, but not until I get some basic presets working.

I just tested this here with the cabbageCreateColours.csd file from the Misc examples and it loads and works fine for me. :thinking:

I’ll try the code you posted in the other thread now and see what happens…

…no problems there either. What exactly is the issue you get?

The synth I’m working on has it’s gui completely generated using cabbageCreate, with the exception of two other widgets that are statically created in the Cabbage section of the program used for testing.

When I run the program, it is only the static objects that show. Nothing created using cabbageCreate displays.

I’ll create a simpler program to see if I can recreate the issue.

Sorry to jump in here, but I’m curious about what is the difference between creating a widget in the Cabbage-section and with cabbageCreate? Does using cabbageCreate use less CPU or something?

(The terms used are the ones I am giving them.) Statically defined widgets are defined in the Cabbage section of the csd file. Things created by cabbageCreate are created at runtime. I am currently trying to figure out how I can use this to create easily edited gui’s without having to redesign the whole gui. Mostly, I am currently using it to handle bounding boxes and placement of the widgets. But it also lends itself to an overall sense of design consistency. One thing I like about this is that I can easily change from using the built-in widgets to using a external graphic. In projects that have hundreds of knobs would get pretty tedious to change those things if everything was static.

I would also say that it doesn’t matter which method of creating the widgets, they will use the same resources.

Nice, it sounds pretty useful when you have a lot of widgets. I’m guessing the channels the widgets are using is created at initialization because of hosts needing them to be predefined or?

Rory, sorry to have wasted your time. I figured out the problem. I forgot to have Cabbage copy my library file to the finished application. As soon as I manually copied that file to the application, everything ran fine.

I added a bundle identifier and it works fine now.

cabbageCreate must be run before anything else for this very reason. Another thing I’ve found is that I can create groups of widgets, and I can have it name each channel in a “psuedo” object oriented way. And then I can instantiate that group repeatedly, but changing the “root” for the channel names…

channel(sprintf("%s%s", rootname, widgetname))

You didn’t waste my time. It was good to test this here anyway as I never thought of checking standalones so when I was making these opcodes. :+1:

I’m sure @mjmogo will share his .csd at some point, but I can tell you after getting a sneak preview that it’s totally insane :rofl: He has basically developed an entirely new system for creating widgets on the fly using an arsenal of custom UDOs. Maybe he can do a walkthrough video at some point. It’s really interesting.

1 Like