Cabbage Logo
Back to Cabbage Site

Help required building on Linux

Hi
I’m a bit of a ta-ta trying to build on Ubuntu (18.04) - I’ve read a few of the posts from the past about this, looked around Git etc and managed to resolve one or two issues but I’m still unable to build.
Things I’ managed to get to work:
I have CSound installed. I’ve have Producer built.
My cabbasge directory is under home:
/home/me/Cabbage 2.4.0
My Juce folder is at
/home/me/Juce
My SDK folder is at
/home/SDKs
Into which I’ve got the current VST3 SDK unzipped:
/home/SDKs/VST_SDK

I’m also in posession of the old VST2.4 SDK which I’ve used in the past but I’m really only wanting to compile to VST3 at the moment.

CSound did not install to the folders that the Juce build required but I’ve found the relevant locations and have been using
./buildCabbage “usr/include/csound” “usr/lib/csound” “/home/me/SDKs/VST_SDK”

The two issues I’ve got are that the build fails with
…/…/JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:87:10: fatal error: pluginterfaces/vst2.x/aeffect.h: No such file or directory
#include “pluginterfaces/vst2.x/aeffect.h”

aeffect.h is definitely within my SDK folder under
/home/me/SDKs/VST_SDK/VST2_SDK/public.sdk/source/vst2.x/
where it should be
I’ve also tried to build with just the 2.4 SDK in the folder and it still fails.
I’ve also tried with the file path to legacy VSTDSK within the settings in Procujer, makes no difference. I’ve tried the VST SDK under home where it is now and also under root, no difference, and several other things, no joy, always fails.

My second failure issue is with
…/…/JuceLibraryCode/modules/juce_graphics/juce_graphics.cpp:92:12: fatal error: ft2build.h: No such file or directory
#include <ft2build.h>
Now, I already have libwebkit2gtk 3 installed. I
I’m trying to add the ppa but get a 404 error for bionic backports.
Err:7 http://ppa.launchpad.net/webkit-team/ppa/ubuntu bionic Release
404 Not Found [IP: 91.189.95.83 80]
Which I assume means I’m going to have to flatten my system and rebuild with the latest Ubuntu (which will take a VERY long time with al the WINE stuff on here etc.) if I want to proceed with Cabbage?

I know you may not necc. know about the Webkit or a way around it but my worry is that if I spend two weeks rebuilding I’ll still have the same issue with the SDK??

Thanks

Hi @AMadFool. You might want to take a look at this CI build script, which assumes a completely blank Ubuntu image.

You should be able to pick and choose the important bits you need :wink: Get back to me if you continue to have issues :+1:

Wow thanks Rory :slight_smile: I didn’t expect a reply so quickly.
I found 1 or 2 libs I didn’t have but the main thing that’s needed to be done was to download heads.zip and place the contents in the SDK folder. After that it has compiled.
I tried the buildCabbageAzure.sh but it fails but I don’t think I need it.

The only thing now is how to run Cabbage - it looks like it’s built but not installed. I have ‘Cabbage’ desktop in the menu but it points to /usr/bin/Cabbbage - which isn’t there. It is there in the /bin folder under builds along with opcodes txt, CabbageLite, CabbagePluginEffect.so and CabbagePluginSynth.so

I’m assuming I need to move Cabbage over to /usr/bin but don’t know where everything else needs to move to (also the examples, images and themes folders)?
Thanks

Oh…hang on
Answering my own question here - there’s an install script in the folder sudo ./installCabbage
and…

voila I have Cabbage running.
:slight_smile:

I was just about to mention that! Great that you got it sorted :wink:

I was just about to mention that! Great that you got it sorted :wink:

Thanks Rory
That’s it for one day I think - I’ll see how it goes tomorrow. I just loaded one of the examples and hit the ‘play’ button and Cabbage crashed straight out but I’ll do some more testing tomorrow.
Thanks Again.

Oh nice, welcome to Cabbage :laughing: Check your audio settings. Jack is the best bet. Let me know what example it was, maybe you were just unlucky. Oh, and which branch are you building from?

Thanks for the welcome to Cabbage.

I must be mad - the last time I went down a rabbit hole like this I ended up spending two years of my life and a whole chunk of money building some huge MIDI controllers that hardly got used at all in the end because in the meantime commercial offerings came out onto the market at about a quarter of the price (not taking man hours into account, about 2000) and a quarter of the size plus I found after I’d build them that I found making music prodding at the screen with a mouse quicker anyway pmsl. They’re sat up in the shed with all the other skeletons in the closet, haha.

I’ve got this crazy idea in my head that won’t go away of making a synth which has the starting point of a hardware synth I had from the 80s but making it better/more features. It’s an itch I’ve got to scratch and there’s no rush for me getting done so it will be something I can play around with in my free time. If it’s any good I’m thinking of open sourcing it so the Linux community has another synth to go at…maybe…or it might end up being a total POS :slight_smile: because I think zynsub can do most of what it will do (and more besides) but…we’ll see.

I was looking into ways of VSTing or LV2ing without major major major low level coding and came across your YouTube videos which (at least for the very basics) I can see that Cabbage is fairly visual in its approach and while you’re not plugging things together graphically a-la Reaktor/Synthedit or PLC programming (function block/ladder logic) etc (which can end up a totally unfathomable mess) you can still think of it visually - a filter opcode calling the CSound code with two variable inputs (cutoff, Q) being the same as a square block on the screen with two inputs.

I waffle.

Which branchm errr…the green, succulent, cruciferous one…
It’s the 2.4.0 from the .zip on the website.

Thanks I’ll try that with Jack etc tomorrow - I’d got it set for Alsa, hadn’t started Jack. I know I said Ubuntu but to be more accurate it’s UbuntuStudio so Jack’s already there and configured and working etc - the machine’s been in use for a couple of years on this build.
Which example: DrumPads

From the github website or the CabbageAudio website? The reason I ask if that you might be building from the master or develop branch. Master should be stable, develop might not be. Best to grab the source from the github page here:
https://github.com/rorywalsh/cabbage/archive/master.zip

Try that one out and let me know if it works better. Good luck with your project. Sounds like Csound will be a good fit :wink:

It was the one I grabbed from the CabbageAudio website.
Ok, I’ll try the one on Git.
Thx

I think it should work fine. I need to update the one on the website. Most people building on Linux simply clone the git repo. Let me know how it goes.

I’ve rebuilt it. It still bombs out a lot with the demos though, although I’ve got some of them to preview/play, none will output anysound (test is fine in settings) - they all fail with an error similar to
error: Variable ‘__synthetic_301’ used before defined
Line -1
error: Variable type for __synthetic_301 could not be determined.
Parsing failed due to syntax errors
Stopping on parser failure
cannot compile orchestra

This is for the 303 demo.

I’m wondering if this is a Projucer issue?

Weird. I’m getting no problems at all when I run here with 18.04. What version of Csound are you using? you should be using at least 6.13 or higher…

Ah, OK. I’m on 6.10. I’ll give that a go.
Cheers

Oh yeah, that’s many ions old at this stage. You should build yourself from git. I don’t trust apt-get with Csound!

I’ve built and installed the latest CSound now and rebuilt Cabbage.
The build ended with an error
Copying over docs and icons…
/tmp/ccN1iOQi.o: In function Csound::LoadPlugins(char const*)': testCsoundFile.cpp:(.text._ZN6Csound11LoadPluginsEPKc[_ZN6Csound11LoadPluginsEPKc]+0x23): undefined reference to csoundLoadPlugins’
/tmp/ccN1iOQi.o: In function Csound::GetInputName()': testCsoundFile.cpp:(.text._ZN6Csound12GetInputNameEv[_ZN6Csound12GetInputNameEv]+0x18): undefined reference to csoundGetInputName’
collect2: error: ld returned 1 exit status

But it runs and I get sound :slight_smile: I’ve tried a few of the examples and they work. Padsynth made Cabbage crash out so I don’t know - is this kind of expected - does Cabbage crash out a lot or have I still got compile issues?

Thanks

Padsynth is a thorny one. There is a thread around listing three or four instruments that are a little dodgy. But about 98.7% of the examples work flawlessly :flushed:

Nice one. Thanks.