User guide
Compiling from source.

Giada's source code is hosted and maintained on GitHub. Building it requires a C++20-compatible compiler, Git, and CMake to already be installed. This document focuses on setting up Giada from the command line, but you can also configure and build it directly from your IDE.

Grab the code

First, clone the remote repository to your machine:

git clone git@github.com:monocasual/giada.git

A new folder named giada/ will be created. Enter it and initialize the submodules, that is, the dependencies:

git submodule update --init --recursive

Configure and build

Invoke CMake from inside the giada/ folder as follows:

cmake -B <build-directory> -S . 

For example:

cmake -B build/ -S . 

CMake generates the appropriate project for your environment: a Makefile on Linux, a Visual Studio solution on Windows, or an Xcode project on macOS. Once configuration completes without errors, open the generated project in your IDE or build Giada from the command line. For example:

cmake --build build/ 			

Dependencies

Some dependencies are included as Git submodules. However, Giada also requires other external libraries to be installed on your system, namely:

You can install these dependencies manually and invoke CMake as shown above. An easier alternative is to use the vcpkg package manager in manifest mode. In that case, all dependencies are downloaded automatically before the application is built. You must install vcpkg first, then run CMake as follows:

cmake -B [build-directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path-to-vcpkg]\scripts\buildsystems\vcpkg.cmake

Here, [path-to-vcpkg] is the location where vcpkg is installed on your system.

Additional configuration parameters

You can pass several parameters to CMake during the configuration stage using the form -D<parameter>=<value>. For example:

cmake -B build/ -S . -DPARAMETER1=VALUE1 -DPARAMETER2=VALUE2

This is the list of CMake parameters currently supported by Giada:

ParameterDescriptionValues
CMAKE_BUILD_TYPEDefines the build type.Debug, Release
WITH_VST2Enables support for VST2 plug-ins. Requires the now-deprecated VST2.x SDK by Steinberg. Disabled by default.ON, OFF
WITH_VST3Enables support for VST3 plug-ins. Disabled by default.ON, OFF
WITH_TESTSIncludes the test suite. Requires the Catch2 library to be installed. Disabled by default.ON, OFF
WITH_ALSA(Linux only) Enables ALSA support. Enabled by default.ON, OFF
WITH_PULSE(Linux only) Enables PulseAudio support. Enabled by default.ON, OFF
WITH_JACK(Linux only) Enables JACK support. Enabled by default.ON, OFF

Run the tests (optional)

All unit tests in Giada are based on the Catch2 automated test framework, which supports several command-line options. Please refer to the official documentation for the full details. Giada must first be configured with -DWITH_TESTS=ON, then tests can be run as follows:

./giada --run-tests [optional Catch2 parameters]