Cabbage Logo
Back to Cabbage Site

Fail to build cabbage on RPI4

hello everyone, I have been a proud user of cabbage on mac for several years and it is a fantastic piece of software!
I am recently approaching the linux and raspberry pi world and I am not very familiar with the terminal.

i tried to build cabbage on raspberry pi 4 with no success. I followed this guide https://github.com/rorywalsh/cabbage/tree/develop/Builds/LinuxMakefile

Below I list the steps I took

  • i installed csound via apt-get (tested with csoundqt it works).

  • I have downloaded and installed JUCE and Projucer correctly

  • I downloaded the VST2 SDK from this link: https://archive.org/details/VST2SDK and put it on the right path.
    although i donā€™t care to export vst so i modified build script like in this post: Anyone build and used Cabbage on Raspberry Pi?

  • I cloned the cabbage github repository, started the script

I am attaching the file with the console errors

hope you can help me thanks!
cabbage_error.txt (6.4 KB)

You will need to build Csound yourself I think. Or else install apt-get csound-dev and see if that helps. You are missing the Csound header files which Cababge needs in order to build. For now I would concentrate on getting the main IDE building rather than the entire package which requires the VST2.4 SDK. Here is a stripped down makefile you can run for now instead of the main buildCabage script.

buildCabbageMin.txt (1.1 KB)

P.S. I had to add the .txt extension in order to upload it. Replace with .sh after downloading, you might also need to change the permissionsā€¦

hi rory, thanks for the reply.
i managed to build csound (despite problems with the pffft opcode). Now there is no longer the error it gave me before.
with the script you attached I donā€™t quite understand what happens this is what it appears but I canā€™t find any compiled version in the directory:

   ===========================================
======== Build Script for Cabbage =========
===========================================
In order to build Cabbage you will need to have Csound installed, and
the Projucer from version 5.0 of JUCE built and installed.
This scripts assumes that Csound is installed in the default location, i.e, includes files
should be located in /user/local/include/csound while the Csound library itself should be
located in /user/local/lib 
It is also assumes that the VST SDK is located in ~/SDKs/

./buildCabbageMin.sh: riga 15: [: ==: atteso operatore unario
JUCE v6.0.7

**********************************************************
Projucer 6.0.7  ---  Build date: Feb  1 2021
Log started: 3 Feb 2021 5:03:16pm

Linux
CPU: 0MHz  Cores: 4  3650MB
Loading project: /home/pi/Desktop/cabbage-2.5.0/CabbageIDE.jucer
Re-saving file: /home/pi/Desktop/cabbage-2.5.0/CabbageIDE.jucer
Finished saving: Linux Makefile
Finished saving: Xcode (macOS)
Finished saving: Visual Studio 2017
Finished saving: Visual Studio 2019
Finished saving: CLion [Deprecated]
Building CabbageIDEā€¦

                                                                                     ^

building with the script ./buildCabbage the error that continuosly appears to me is this:

 ../../Source/Utilities/CabbageColourProperty.cpp: In member function ā€˜virtual void ColourPropertyComponent::mouseDown(const juce::MouseEvent&)ā€™:
../../Source/Utilities/CabbageColourProperty.cpp:58:85: error: no matching function for call to ā€˜juce::CallOutBox::launchAsynchronously(ColourPallete*&, juce::Rectangle<int>, std::nullptr_t)ā€™
         CallOutBox::launchAsynchronously (colourSelector, getScreenBounds(), nullptr);
                                                                                     ^
In file included from ../../JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h:257,
                 from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:56,
                 from ../../Source/Utilities/.././Settings/../../JuceLibraryCode/JuceHeader.h:20,
                 from ../../Source/Utilities/.././Settings/../CabbageIds.h:23,
                 from ../../Source/Utilities/.././Settings/CabbageSettings.h:24,
                 from ../../Source/Utilities/../CabbageCommonHeaders.h:30,
                 from ../../Source/Utilities/CabbageColourProperty.h:28,
                 from ../../Source/Utilities/CabbageColourProperty.cpp:11:
../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_CallOutBox.h:116:24: note: candidate: ā€˜static juce::CallOutBox& juce::CallOutBox::launchAsynchronously(std::unique_ptr<juce::Component>, juce::Rectangle<int>, juce::Component*)ā€™
     static CallOutBox& launchAsynchronously (std::unique_ptr<Component> contentComponent,
                        ^~~~~~~~~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_CallOutBox.h:116:24: note:   no known conversion for argument 1 from ā€˜ColourPallete*ā€™ to ā€˜std::unique_ptr<juce::Component>ā€™
../../Source/Utilities/CabbageColourProperty.cpp: In member function ā€˜virtual void ColourMultiPropertyComponent::mouseDown(const juce::MouseEvent&)ā€™:
../../Source/Utilities/CabbageColourProperty.cpp:198:89: error: no matching function for call to ā€˜juce::CallOutBox::launchAsynchronously(ColourPallete*&, juce::Rectangle<int>, std::nullptr_t)ā€™
             CallOutBox::launchAsynchronously (colourSelector, getScreenBounds(), nullptr);

I think it is a problem related to the JUCE project.

thanks, as always, for the support

Check out the latest dev branch of Cabbage, and make sure you are using JUCE 5.4.7. Then it should build.

yes you are right it was my fault that I was trying to build it with JUCE 6.0.7. I was finally able to build with JUCE 5.4.7!

I tested the audio with my DAC and it all works just that I canā€™t export the standalone. It gives me this problem:

ERROR /usr/bin/CabbagePlugin.so cannot be found? It should be in the Cabbage root folder

It seems that the CabbagePlugin.so file is missing but in the installation folder generated by the script there are the following files: Cabbage, CabbagePluginEffect.so, CabbagePluginSynth.so, opcodes.txt

my idea was to use Cabbage to create a standalone software that opens when the RPI is turned on so I needed the standalone export option

thanks Rory!

There was na issue with creating standalone binaries on Linux as far as I recall, but in your case that shouldnā€™t be an issue as you do not need the plugin binaries. Open the Projucer and the one of the Jucer plugin files. Then enable standalone build. Rebuild Cabbage, it should produce a standalone app now, although I donā€™t think it will be called CabbagePlugin.so :thinking: Try it out and let me know. I wonā€™t be able to test anything on Linux until tomorrow.

Hi Rory, new user over here, I really wanna use csound extensively on my RPi and in Manjaro, the builds for x86 work just fine in my other machines, but Raspberry package manager on distros like Manjaro have an error message that architecture is not supported (aarch64). Could you point towards a streamlined one shot process for all dependencies and build script for Manjaro OS on RPi (AUR/Yay/Pacman). Things are ostensibly simpler on Debian systems because the package manager handles these with a bit more support. Much thanks! I have Renoise and other trackers etc working on RPi, I do have the latest csound version installed via Yay package manager. I am wondering how does JUCE and VST SDK translate to different processor architectures as they are primarily x86/x64 based.

Hi @encryptedmind. The best thing to do is try building yourself. Another user was asking about building on Linux yesterday, youā€™ll find details there on how to do it. Let me know how far you get. Iā€™m happy to guide you through the process if you get stuck.

1 Like

Hi Rory, it seems your build script is entirely engineered for Debian systems and not compatible with Arch linux. Many of the packages in the build.py apt-get command strings are simply unavailable or with certainly different names wrt yay or pacman repositories. I knew it this was gonna be more tricky than just taking out the list of dependencies and doing a custom install of each one and then going for it.

Second issue is that csound IS already installed in my Manjaro setup :

*cabbage-develop]$ csound*
  • Usage: csound [-flags] orchfile scorefile*
  • Legal flags are:*
  • ā€“Csound version 6.18 (double samples) Apr 19 2023*
  • [commit: a1580f9cdf331c35dceb486f4231871ce0b00266]*

But the build script defaults to downloading and not finding the right archive or something of the sort.

It would really help if you did some reconfig for Arch distros, as I donā€™t use Debian distros. I have a lot of other work to attend to and that is the only reason I am trying to sort this out with some haste though I know I will give it the right amount of time eventually. For now though, I would really appreciate any pointers from your end as to how to enable the build in Manjaro RPi OS (64 bit). :frowning:

  1. With instructions from the forum page link in your last message.
    /bin/sh: line 1: arch: command not found
    Bluetooth disabled
    Found CabbageRackā€¦
    Found CabbageManualā€¦

Found VST SDKā€¦
Did not find Csound. Downloading and installing toā€¦
Cloning into ā€˜csoundā€™ā€¦
remote: Enumerating objects: 122576, done.
remote: Counting objects: 100% (3253/3253), done.
remote: Compressing objects: 100% (1036/1036), done.
error: RPC failed; curl 18 HTTP/2 stream 5 was reset67.00 KiB/s
error: 6413 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: not a git repository (or any of the parent directories): .git
[sudo] password for XXXX:
sudo: apt-get: command not found
mkdir: cannot create directory ā€˜/home/XXXX/Downloads/cabbage-develop/csound/buildā€™: No such file or directory
Traceback (most recent call last):
File ā€œ/home/XXXXDownloads/cabbage-develop/build.pyā€, line 440, in
os.chdir(rootDir+ā€™/csound/buildā€™)
FileNotFoundError: [Errno 2] No such file or directory: ā€˜/home/XXXX/Downloads/cabbage-develop/csound/buildā€™
[XXXX@rpienc cabbage-develop]$

  1. With instructions from github :

================================================
=== Build script for Cabbage Plugin Framework ==

=== Run python build.py -h for helpā€¦ ==

/bin/sh: line 1: arch: command not found
Bluetooth disabled
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: add-apt-repository: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found
Found CabbageRackā€¦
Found CabbageManualā€¦

Found VST SDKā€¦
Did not find Csound. Downloading and installing toā€¦
Cloning into ā€˜csoundā€™ā€¦
remote: Enumerating objects: 122576, done.
remote: Counting objects: 100% (3253/3253), done.
remote: Compressing objects: 100% (1043/1043), done.
error: RPC failed; curl 18 HTTP/2 stream 5 was reset52.00 KiB/s
error: 6534 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: not a git repository (or any of the parent directories): .git
sudo: apt-get: command not found
mkdir: cannot create directory ā€˜/home/XXXX/Downloads/cabbage-develop/csound/buildā€™: No such file or directory
Traceback (most recent call last):
File ā€œ/home/XXXX/Downloads/cabbage-develop/build.pyā€, line 440, in
os.chdir(rootDir+ā€™/csound/buildā€™)
FileNotFoundError: [Errno 2] No such file or directory: ā€˜/home/XXXX/Downloads/cabbage-develop/csound/buildā€™

Sorry, I have no experience whatsoever with anything but Debian based distros. But is there not an Arch linux package available somewhere? Check the forum, there should be some info about building on Arch and there should also be a link to a precompiled package too, although Iā€™ve no idea if it is still up to date.

1 Like

Is this any good:

https://aur.archlinux.org/packages/cabbage-bin

Itā€™s 2.9 which is rather old at this stage. Also, I thought there was a tool that lets you install deb based packages on Arch? There are new Linux deb builds created on each commit. Anyhow, check the forums, there have been lots of Arch Linux users who have successfully run Cabbage.

1 Like