Cabbage Logo
Back to Cabbage Site

Saving, loading, or anything to do with directories hangs CabbageStudio

Linux user here. I have pulled both the 1.1.0.0 tag and the develop branch, built them and started CabbageStudio. Any time I do an action that involves a directory/file selection dialog, CabbageStudio hangs.

I initially thought it was my install of Ubuntu, so I downloaded a mini-install of 16.04 LTS, set up a build box, installed all deps, then built both branches (no errors, lots of warnings about Juce items being deprecated). Same issue, CabbageStudio hangs. This also happens when I right click->New->Instrument.

Not sure what the issue is. I did run it in gdb, it hung, and I sent SIGINT, at which point gdb displayed:

Thread 1 "CabbageStudio" received signal SIGINT, Interrupt.
0x00007ffff5a009cd in read () at ../sysdeps/unix/syscall-template.S:84
84    ../sysdeps/unix/syscall-template.S: No such file or directory.

The file tree browser on the left does not seem to have any problems though. Any ideas here? I’d love to use this on Linux.

JUCE and the Linux file managers are not the best of friends. I will take a look at this and see if I can figure out a solution. The solution for standalone Cabbage was to use custom file browsers. The same might work fine for Studio. I’ll let you know.

Can you try building from the latest source? I think it should work now, although I noticed a few cosmetic problems with the host. But the audio and patching seem to work just fine.

Thank you sir…I’ll give it a shot and let you know what happens!

Well, now I am getting this error:

error: #error "No global header file was included!"

which stops all cabbage bins from building.

That’s odd, can you confirm that:

-D "JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1"

is set in each of the makefiles? It’s a new thing in JUCE. Once I updated I had to set that in each of the makefiles…

[edit] I forgot to add it to some of teh makefiles, but it’s there now. Can you try again? Sorry about that…

No worries…I’ll download now and build. Thanks!

Hi Rory

Well, I did confirm

-D "JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1"

was in each makefile, so it seems whatever it is that is new in JUCE is causing a problem. I ended up having to include AppConfig.h to JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h which got rid of a bunch of “You need to define the JucePlugin_xxx value!” type errors, but then I was stopped cold by these types:

Linking CabbageHost
build/intermediate-host/Release/CabbagePropertiesDialog_5e61b3fd.o:(.rodata._ZTV13colourPallete[_ZTV13colourPallete]+0x1d8): undefined reference to `non-virtual thunk to juce::ColourSelector::sliderValueChanged(juce::Slider*)'
build/intermediate-host/Release/CabbagePropertiesDialog_5e61b3fd.o:(.rodata._ZTV9TextField[_ZTV9TextField]+0x200): undefined reference to `non-virtual thunk to juce::TextEditor::isTextInputActive() const'
build/intermediate-host/Release/CabbagePropertiesDialog_5e61b3fd.o:(.rodata._ZTV9TextField[_ZTV9TextField]+0x210): undefined reference to `non-virtual thunk to juce::TextEditor::setHighlightedRegion(juce::Range<int> const&)'
...

There were a lot of those errors, and I got them when building the stand-alone Cabbage and CabbageHost.

Let me take a look. Something is obviously not right here. You shouldn’t need to add anything to any of the JUCE headers. Can you try running just the following command from the Linux build directory.

make -f MakefileStandalone

Maybe you can pastebin the output for us to see?

I just tried here again. It’s building fine for me. Can you try checking out the repo again fresh and seeing if that helps? It looks like some of the older JUCE files are still there somehow. As I mentioned earlier, you shouldn’t change any of the JUCE source. It might appear to help, but ultimately it will catch you out somewhere else!

Ordinarily I wouldn’t add anything to the headers, but I did want to see what happened after the errors I was receiving.

Output of MakefileStandAlone

There doesn’t seem to be anything wrong there, so I did the same for MakefilePluginEffect:

Output of MakefilePluginEffect

And there you can see the errors that I was trying to bypass before, e.g.

error: #error "You need to enable at least one plugin format!"

Both of the builds used /usr/include/csound, /usr/lib, and ${HOME}/VST3_SDK

Strange that it is building fine on your end. I wonder what is happening with my system that is preventing it then!

Anyhow, thanks a lot for all your help, I appreciate you taking the time to look at this!

It looks like I’ll have to update my plugins projects using the latest ProJucer build. This is annoying. Leave it with me. I should have a fix soon.

Can you try pulling fro git and building again now? Against my own better judgement I’ve had to modify one of the JUCE headers, but it’s only a quick fix. I’ll sort it out properly once I get time!

That worked! I can open and save things now. Thanks a lot!

Great! I’ll tidy things up once I get a chance in the few weeks.