Cabbage Logo
Back to Cabbage Site

Installing on Ubuntu 16.04 (solved)

Hi I’ve been trying to install Cabbage on my Ubuntu 16.04 laptop. I’ve followed all the build instructions and ran into problems mentioned here - Problems to Install Cabbage on Ubuntu Studio 16.04 (Fixed)

I also tried installing the deb file mentioned here - New problems to install Cabbage on Ubuntustudio 16.04 LTS (Fixed) but got an ‘3497 illegal hardware instruction (core dumped)’.

I tried building with

./buildCabbage “/usr/include/csound” “/usr/lib/csound” “/home/arun/SDKs/VST_SDK” but I was still getting the error about missing csound.hpp.

I tried modifying the Makefiles manually and changing values, but they kept changing back, which is when I realized the configurations were coming from the .jucer files. So I edited these manually, and changed
headerPath to “”/usr/include/csound"" on line 277 of CabbageIDE.jucer for example.

But now running ./buildCabbage throws up a fresh set of errors.

Pasting just the relevant lines here for brevity, but if someone wants the full error log file I can copy and upload it somewhere.

…/…/Source/Application/…/Audio/Graph/…/Plugins/CsoundPluginProcessor.h:145:35: error: ‘class Csound’ has no member named ‘CompileCsdText’

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:70:30: error: expected class-name before ‘,’ token
public ComboBoxListener,

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:161:10: error: ‘void CabbagePluginEditor::comboBoxChanged(juce::ComboBox*)’ marked ‘override’, but does not override
void comboBoxChanged (ComboBox* combo) override;

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:161:10: error: ‘void CabbagePluginEditor::comboBoxChanged(juce::ComboBox*)’ marked ‘override’, but does not override
void comboBoxChanged (ComboBox* combo) override;

In file included from …/…/Source/Application/CabbageGraphComponent.cpp:13:0:
…/…/Source/Application/CabbageMainComponent.h:190:1: error: expected class-name before ‘{’ token
{

…/…/Source/Application/CabbageMainComponent.h:283:10: error: ‘void CabbageMainComponent::FindPanel::buttonClicked(juce::Button*)’ marked ‘override’, but does not override
void buttonClicked (Button* button) override

Trying to search for these error messages on google isn’t throwing up anything useful. Can someone point me in the right direction?

Thanks in advance,

arun

Can you run csound from the command line? I just want to see which one you have installed. Did you build Csound yourself, or install one with apt-get? If you built Csound and installed yourself(recommended), and the VST_SDK is in the default location, i;e, ~/SDKs, then you shouldn’t have to pass any paths to the build script, as it will pick up the relevant files from their default location.

First let’s see where you got Csound, and what version it is.

Yes I can run csound from the command line, I’ve installed it using apt-get. The VST SDK is in ~/SDKs. But my csound.hpp is in /usr/include/csound. The build scripts are looking for it in /usr/local/include/csound. Without modifying the jucer files, I get a bunch of errors regarding csound.hpp not found. The same issues as described in the first forum post I linked.

What version of Csound are you using? It should say when you run it from the command line. I fear it’s older than 6.09. It might be best to build and install Csound yourself. it’s pretty simple on Ubuntu. Instructions here.

Version of csound was 6.04, so I installed the latest csound from git. This took care of the ‘class Csound’ has no member … errors but the other errors still remain. I’m still seeing

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:70:30: error: expected class-name before ‘,’ token
public ComboBoxListener,

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:161:10: error: ‘void CabbagePluginEditor::comboBoxChanged(juce::ComboBox*)’ marked ‘override’, but does not override
void comboBoxChanged (ComboBox* combo) override;

…/…/Source/Application/…/Audio/Graph/…/Plugins/CabbagePluginEditor.h:70:30: error: expected class-name before ‘,’ token
public ComboBoxListener,

…/…/Source/Application/CabbageMainComponent.h:190:1: error: expected class-name before ‘{’ token
{

…/…/Source/Application/CabbageMainComponent.h: In constructor ‘CabbageMainComponent::FindPanel::FindPanel(juce::String, bool, bool)’:
…/…/Source/Application/CabbageMainComponent.h:213:37: error: no matching function for call to ‘juce::ToggleButton::addListener(CabbageMainComponent::FindPanel*)’
caseButton.addListener (this);

seem to be getting closer, thanks for your help!

Are you sure you’re using version 5.2 of JUCE? It won’t compile with newer version. I can roll you out build if you like. Hang on.

I’ve compiled JUCE from git - https://github.com/WeAreROLI/JUCE . I have compiled the latest commit - d5d0de7.
I just noticed there is a download option for Linux, should I use that instead? The file is called juce-huckleberry-linux.zip.

Now, but you’re probably using 5.2.1, Cabbage uses 5.2.0, just cd to your JUCE repo and checkout 5.2.0
I’ll upload a Linux zip for you now.

Here you go. So long as you have Csound in the default location after running make install it should probably work Ok.

No luck. Csound is installed in /usr/local/bin/csound and include files are in /usr/local/include/csound. When I tried to run ./Cabbage I got

16590 illegal hardware instruction (core dumped)

Currently checking out JUCE 5.2.0 and building that, let’s see if that works.

Build appears to be working with JUCE 5.2.0, some warnings, but no errors so far… fingers crossed.

Got all the way through compilation but had problems with linking.
Linking CabbageLite - App
/tmp/ccgAIuZ6.o: In function Csound::CompileCsdText(char const*)': testCsoundFile.cpp:(.text._ZN6Csound14CompileCsdTextEPKc[_ZN6Csound14CompileCsdTextEPKc]+0x23): undefined reference tocsoundCompileCsdText’
/tmp/ccgAIuZ6.o: In function Csound::GetInputName()': testCsoundFile.cpp:(.text._ZN6Csound12GetInputNameEv[_ZN6Csound12GetInputNameEv]+0x18): undefined reference tocsoundGetInputName’
collect2: error: ld returned 1 exit status

Can you remove this line from the buildCabbage script and try again:

g++ ../../Source/testCsoundFile.cpp -o testCsoundFile -I"/usr/local/include/csound" -lcsound64

That should get everything built Ok and shortcuts in place.

Yes build worked perfectly and I now have Cabbage. I tried one of the example Instruments but wasn’t able to hear sound, but I should dig into the docs a bit and see how to use this. Or will create another post if I can’t figure it out.

Thanks for your help!

Did you select your soundcard from the settings windows?

Tried setting to ‘Playback/recording through the PulseAudio sound server’ and ‘PulseAudio Sound Server’, but playing the ‘Test’ tone I hear nothing. Have tried some of the other options there but unable to hear anything while trying the ‘Test’ button.

COuld be worth your while install Cadance from KXStudio. It’s a jack frontend. I use it almost exclusively on my Linux box. And it will give you much better latency than pulse.

Did you get this working?

I don’t have pulse on my system. I purge it straight away whenever I install a fresh image. I’ll try a Linux laptop at work and see if it works. They’ll still have pulse audio installed.

I’m able to compile and run Cabbage, but unable to get audio working. I have installed Cadence and run Jack Server through it. I tried all the different Output settings but wasn’t able to hear a test tone. Should I start a new topic regarding not being able to the test tone?

That’s odd. You start Cadance, and then you select Jack from within Cabbage? And still not test tone? Are you sure Cadence is using the correct sound card? You should also be able to use ALSA, both should work fine?