Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Tips, tricks and secret codes.
Post Reply
mctom
F9 - Lavender
Posts: 37
Joined: Sat Oct 06, 2018 1:19 pm
Location: Gdansk, Poland

Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by mctom » Tue Oct 09, 2018 5:13 pm

Hi!

So I've had troubles with Giada on KXStudio 14.04.5, and cutting the long story short I've switched to modern Ubuntu Studio 18.04. Still having troubles with the most recent Giada 0.15.2 applauncher, I've decided to try building and installing the most recent one.

Here's my complete list of commands that let me build and install Giada. Please don't use them unless you know what you're doing.
Please keep in mind you won't build Giada successfully on KXStudio or any other Ubuntu based system v. 14.04 or older using these commands.

Code: Select all

mkdir giada_src
cd giada_src
sudo apt-get install git
git clone git://github.com/monocasual/giada.git

cd giada
git submodule init
git submodule update

sudo apt-get install autoconf libtool
./autogen.sh

sudo apt-get install libfltk1.3-dev libsndfile1-dev libsamplerate0-dev libjansson-dev librtaudio-dev librtmidi-dev libxpm-dev libxft-dev libxinerama-dev libxcursor-dev

./configure --target=linux

make
sudo make install
Now Giada has been installed, and in order to run it simply type

Code: Select all

giada
Hope it helps someone :)

User avatar
FFT
F14 - Syrian Rue
Posts: 544
Joined: Thu Mar 08, 2012 6:51 pm

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by FFT » Sun Oct 14, 2018 11:20 am

:thumbsup:

tank.trax
F1 - Bilberry
Posts: 1
Joined: Tue Jul 17, 2018 2:14 pm

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by tank.trax » Fri Mar 22, 2019 4:17 am

to compile Giada 15.4 on Debian Stretch with VST support, (it is very important to use the correct VST2.4 SDK)

Step 1: dowload source and modules

Code: Select all

git clone https://github.com/monocasual/giada.git
cd giada
git submodule update --init --recursive
Step 2: set up the VST pluginterfaces folder

Code: Select all

mkdir src/deps/vst
cp -r /path/to/VST2.4_SDK/pluginterfaces/ src/deps/vst/
Step 3: build and install

Code: Select all

./autogen.ss
./configure --target=linux --enable-vst
make
sudo make install
or to test

Code: Select all

./giada

User avatar
FFT
F14 - Syrian Rue
Posts: 544
Joined: Thu Mar 08, 2012 6:51 pm

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by FFT » Fri Mar 22, 2019 8:53 pm

Hey tank.trax, thank you for your feedback. Yesterday we updated the documentation, especially the Compiling from source chapter.

You may find useful information in there, for example how to enable VST support through the JUCE framework - no need to fetch old VST headers anymore.

Anyway your feedback is appreciated, your mileage may vary on Debian and/or UbuntuStudio 😇

ganador_just
F4 - Digitalis
Posts: 3
Joined: Fri Feb 14, 2020 10:11 pm
Location: Germany

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by ganador_just » Wed Mar 04, 2020 3:47 pm

the instructions by mctom are the same ones that i used to compile for a raspberry pi 3B+

mctom
F9 - Lavender
Posts: 37
Joined: Sat Oct 06, 2018 1:19 pm
Location: Gdansk, Poland

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by mctom » Sat Mar 07, 2020 12:53 pm

ganador_just wrote:
Wed Mar 04, 2020 3:47 pm
the instructions by mctom are the same ones that i used to compile for a raspberry pi 3B+
I'm glad to hear it :) Just for the record though, you mean compiling on the latest Raspbian 02.2020, or some other Raspberry Pi distro?

ganador_just
F4 - Digitalis
Posts: 3
Joined: Fri Feb 14, 2020 10:11 pm
Location: Germany

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by ganador_just » Sun Oct 04, 2020 3:52 pm

ganador_just wrote:
Wed Mar 04, 2020 3:47 pm
the instructions by mctom are the same ones that i used to compile for a raspberry pi 3B+
No longer working for a raspberry pi 4. currently getting the following error even after having installed the libraries.
im trying to compile because i dont want to install docker on the pi. needs too many resources.


src/core/kernelMidi.cpp:28:10: fatal error: RtMidi.h: No such file or directory
#include <RtMidi.h>
^~~~~~


any ideas?

EDIT: I went directly into the code and changed it from <RtMidi.h> to <rtmidi/RtMidi.h> and it somehow worked. also had to change it in tabMidi.cpp and ver.cpp

which then gave the following error:


g++ -o giada src/core/giada-midiDispatcher.o src/core/giada-midiMapConf.o src/core/giada-midiEvent.o src/core/giada-audioBuffer.o src/core/giada-quantizer.o src/core/giada-conf.o src/core/giada-kernelAudio.o src/core/giada-pluginHost.o src/core/giada-pluginManager.o src/core/giada-mixerHandler.o src/core/giada-sequencer.o src/core/giada-init.o src/core/giada-plugin.o src/core/giada-wave.o src/core/giada-waveFx.o src/core/giada-kernelMidi.o src/core/giada-graphics.o src/core/giada-patch.o src/core/giada-recorderHandler.o src/core/giada-recorder.o src/core/giada-mixer.o src/core/giada-clock.o src/core/giada-waveManager.o src/core/giada-recManager.o src/core/channels/giada-state.o src/core/channels/giada-sampleActionRecorder.o src/core/channels/giada-midiActionRecorder.o src/core/channels/giada-waveReader.o src/core/channels/giada-midiController.o src/core/channels/giada-sampleController.o src/core/channels/giada-samplePlayer.o src/core/channels/giada-audioReceiver.o src/core/channels/giada-midiLighter.o src/core/channels/giada-midiLearner.o src/core/channels/giada-midiSender.o src/core/channels/giada-midiReceiver.o src/core/channels/giada-channel.o src/core/channels/giada-channelManager.o src/core/model/giada-model.o src/core/model/giada-storage.o src/core/giada-idManager.o src/glue/giada-events.o src/glue/giada-main.o src/glue/giada-io.o src/glue/giada-storage.o src/glue/giada-channel.o src/glue/giada-plugin.o src/glue/giada-recorder.o src/glue/giada-sampleEditor.o src/glue/giada-actionEditor.o src/gui/dialogs/giada-window.o src/gui/giada-dispatcher.o src/gui/giada-updater.o src/gui/giada-model.o src/gui/dialogs/giada-keyGrabber.o src/gui/dialogs/giada-about.o src/gui/dialogs/giada-mainWindow.o src/gui/dialogs/giada-beatsInput.o src/gui/dialogs/giada-warnings.o src/gui/dialogs/giada-bpmInput.o src/gui/dialogs/giada-channelNameInput.o src/gui/dialogs/giada-config.o src/gui/dialogs/giada-devInfo.o src/gui/dialogs/giada-pluginList.o src/gui/dialogs/giada-pluginWindow.o src/gui/dialogs/giada-sampleEditor.o src/gui/dialogs/giada-pluginWindowGUI.o src/gui/dialogs/giada-pluginChooser.o src/gui/dialogs/actionEditor/giada-baseActionEditor.o src/gui/dialogs/actionEditor/giada-sampleActionEditor.o src/gui/dialogs/actionEditor/giada-midiActionEditor.o src/gui/dialogs/browser/giada-browserBase.o src/gui/dialogs/browser/giada-browserDir.o src/gui/dialogs/browser/giada-browserLoad.o src/gui/dialogs/browser/giada-browserSave.o src/gui/dialogs/midiIO/giada-midiOutputBase.o src/gui/dialogs/midiIO/giada-midiOutputSampleCh.o src/gui/dialogs/midiIO/giada-midiOutputMidiCh.o src/gui/dialogs/midiIO/giada-midiInputBase.o src/gui/dialogs/midiIO/giada-midiInputChannel.o src/gui/dialogs/midiIO/giada-midiInputMaster.o src/gui/elems/midiIO/giada-midiLearner.o src/gui/elems/midiIO/giada-midiLearnerPack.o src/gui/elems/giada-browser.o src/gui/elems/giada-soundMeter.o src/gui/elems/plugin/giada-pluginBrowser.o src/gui/elems/plugin/giada-pluginParameter.o src/gui/elems/plugin/giada-pluginElement.o src/gui/elems/sampleEditor/giada-waveform.o src/gui/elems/sampleEditor/giada-waveTools.o src/gui/elems/sampleEditor/giada-volumeTool.o src/gui/elems/sampleEditor/giada-boostTool.o src/gui/elems/sampleEditor/giada-panTool.o src/gui/elems/sampleEditor/giada-pitchTool.o src/gui/elems/sampleEditor/giada-rangeTool.o src/gui/elems/sampleEditor/giada-shiftTool.o src/gui/elems/actionEditor/giada-baseActionEditor.o src/gui/elems/actionEditor/giada-baseAction.o src/gui/elems/actionEditor/giada-envelopeEditor.o src/gui/elems/actionEditor/giada-velocityEditor.o src/gui/elems/actionEditor/giada-envelopePoint.o src/gui/elems/actionEditor/giada-pianoRoll.o src/gui/elems/actionEditor/giada-noteEditor.o src/gui/elems/actionEditor/giada-pianoItem.o src/gui/elems/actionEditor/giada-sampleActionEditor.o src/gui/elems/actionEditor/giada-sampleAction.o src/gui/elems/actionEditor/giada-gridTool.o src/gui/elems/mainWindow/giada-mainIO.o src/gui/elems/mainWindow/giada-mainMenu.o src/gui/elems/mainWindow/giada-mainTimer.o src/gui/elems/mainWindow/giada-mainTransport.o src/gui/elems/mainWindow/giada-beatMeter.o src/gui/elems/mainWindow/keyboard/giada-channelMode.o src/gui/elems/mainWindow/keyboard/giada-channelButton.o src/gui/elems/mainWindow/keyboard/giada-channelStatus.o src/gui/elems/mainWindow/keyboard/giada-keyboard.o src/gui/elems/mainWindow/keyboard/giada-column.o src/gui/elems/mainWindow/keyboard/giada-sampleChannel.o src/gui/elems/mainWindow/keyboard/giada-midiChannel.o src/gui/elems/mainWindow/keyboard/giada-channel.o src/gui/elems/mainWindow/keyboard/giada-sampleChannelButton.o src/gui/elems/mainWindow/keyboard/giada-midiChannelButton.o src/gui/elems/config/giada-tabMisc.o src/gui/elems/config/giada-tabMidi.o src/gui/elems/config/giada-tabAudio.o src/gui/elems/config/giada-tabBehaviors.o src/gui/elems/config/giada-tabPlugins.o src/gui/elems/basics/giada-scroll.o src/gui/elems/basics/giada-pack.o src/gui/elems/basics/giada-group.o src/gui/elems/basics/giada-scrollPack.o src/gui/elems/basics/giada-boxtypes.o src/gui/elems/basics/giada-baseButton.o src/gui/elems/basics/giada-statusButton.o src/gui/elems/basics/giada-button.o src/gui/elems/basics/giada-resizerBar.o src/gui/elems/basics/giada-input.o src/gui/elems/basics/giada-liquidScroll.o src/gui/elems/basics/giada-choice.o src/gui/elems/basics/giada-dial.o src/gui/elems/basics/giada-box.o src/gui/elems/basics/giada-slider.o src/gui/elems/basics/giada-progress.o src/gui/elems/basics/giada-check.o src/gui/elems/basics/giada-radio.o src/utils/giada-log.o src/utils/giada-time.o src/utils/giada-math.o src/utils/giada-gui.o src/utils/giada-fs.o src/utils/giada-ver.o src/utils/giada-string.o src/deps/rtaudio/giada-RtAudio.o src/giada-main.o -lsndfile -lfltk -lXext -lX11 -lXft -lXpm -lm -ljack -lasound -lpthread -ldl -lpulse-simple -lpulse -lsamplerate -lrtmidi -lfreetype -lfontconfig -lXrender -lXfixes -lXcursor -lXinerama -lpthread
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/usr/include/c++/8/bits/fs_ops.h:121: undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/usr/include/c++/8/bits/fs_dir.h:361: undefined reference to `std::filesystem::__cxx11::directory_iterator::directory_iterator(std::filesystem::__cxx11::path const&, std::filesystem::directory_options, std::error_code*)'
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/home/pi/code/giada/src/core/midiMapConf.cpp:151: undefined reference to `std::filesystem::__cxx11::directory_iterator::operator*() const'
/usr/bin/ld: /home/pi/code/giada/src/core/midiMapConf.cpp:151: undefined reference to `std::filesystem::__cxx11::directory_iterator::operator++()'
/usr/bin/ld: src/core/giada-midiMapConf.o: in function `giada::m::midimap::init()':
/usr/include/c++/8/bits/fs_dir.h:260: undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::fileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::fileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_ops.h:121: undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::mkdir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::mkdir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/pi/code/giada/src/utils/fs.cpp:88: undefined reference to `std::filesystem::create_directory(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::isRootDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/pi/code/giada/src/utils/fs.cpp:205: undefined reference to `std::filesystem::current_path[abi:cxx11]()'
/usr/bin/ld: /home/pi/code/giada/src/utils/fs.cpp:205: undefined reference to `std::filesystem::__cxx11::path::root_directory() const'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::isRootDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: /usr/include/c++/8/bits/fs_path.h:545: undefined reference to `std::filesystem::__cxx11::path::compare(std::filesystem::__cxx11::path const&) const'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::getRealPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::getRealPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/pi/code/giada/src/utils/fs.cpp:97: undefined reference to `std::filesystem::canonical(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::basename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::dirname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::dirname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/pi/code/giada/src/utils/fs.cpp:115: undefined reference to `std::filesystem::__cxx11::path::parent_path() const'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::getCurrentPath[abi:cxx11]()':
/home/pi/code/giada/src/utils/fs.cpp:124: undefined reference to `std::filesystem::current_path[abi:cxx11]()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::getExt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: /usr/include/c++/8/bits/fs_path.h:1055: undefined reference to `std::filesystem::__cxx11::path::_M_find_extension() const'
/usr/bin/ld: /usr/include/c++/8/bits/fs_path.h:177: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::isDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::isDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_ops.h:171: undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::stripExt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: /usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::stripExt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/pi/code/giada/src/utils/fs.cpp:142: undefined reference to `std::filesystem::__cxx11::path::replace_extension(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: src/utils/giada-fs.o: in function `giada::u::fs::getHomePath[abi:cxx11]()':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
make: *** [Makefile:2836: giada] Error 1


mctom
F9 - Lavender
Posts: 37
Joined: Sat Oct 06, 2018 1:19 pm
Location: Gdansk, Poland

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Post by mctom » Mon Oct 05, 2020 6:50 am

Hi! Yes, these instructions are applicable to a version released 2 years ago. ;)

The reason why it's not working is that currently Giada is being transformed from autotools to cmake, hence ./autogen.sh or ./configure are not necessary anymore (use cmake instead).

The compile errors that you saw were because of a subtle changes in code that accompanied that transformation.

Note that whatever you download off github isn't actually the most recent release, but a current state of development efforts towards a next release. Might be less stable than a previous version as well.

If you want to get a source code of a 0.16.4 release instead (without cmake stuff just yet), try this command:

Code: Select all

git clone --depth 1 --branch v0.16.4 git://github.com/monocasual/giada.git
Of course, you're welcome to create a new compilation guide once you get it sorted out - I posted mine just because I knew how frustrating that was to figure that out on my own. ;)

Good luck!

Post Reply