Page 1 of 1

Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Tue Oct 09, 2018 5:13 pm
by mctom
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 :)

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Sun Oct 14, 2018 11:20 am
by FFT
:thumbsup:

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Fri Mar 22, 2019 4:17 am
by tank.trax
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

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Fri Mar 22, 2019 8:53 pm
by FFT
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 😇

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Wed Mar 04, 2020 3:47 pm
by ganador_just
the instructions by mctom are the same ones that i used to compile for a raspberry pi 3B+

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Sat Mar 07, 2020 12:53 pm
by mctom
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?

Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Sun Oct 04, 2020 3:52 pm
by ganador_just
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


Re: Guide to compile Giada 0.15.3 on UbuntuStudio 18.04

Posted: Mon Oct 05, 2020 6:50 am
by mctom
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!