You will need the GNU toolchain, a C/C++ compiler and the following
- meson (Apache-2.0)
- Build system
- guile (GPLv3+)
- Used in various build scripts
- sassc (Expat)
- CSS compilation
If your meson version is too old, you can either
install meson from
pip
or run meson.py
directly from
meson's source code.
The following dependencies must be installed before attempting to build or run Zrythm.
- breeze-icons (LGPLv3+)
- Various icons
- carla (GPLv2+)
- Support for various plugin formats
- fftw (GPLv2+)
- Threaded fftw for plugins
- gtk4 (LGPLv2.1+)
- GUI toolkit
- gtksourceview (LGPLv2.1+)
- Source code editor widget
- json-glib (LGPLv2.1+)
- JSON manipulation
- libadwaita (LGPLv2.1+)
- Additional widgets
- libaudec (AGPLv3+)
- Audio file loading
- libbacktrace (3-Clause BSD)
- Backtraces
- libcurl (X11)
- Network connections
- libcyaml (ISC)
- Serialization into YAML
- libpanel (LGPLv3+)
- Dock and panel widgets
Note: if you want detach support use our fork (zrythm_detach
branch).
- lilv (ISC)
- LV2 host support
- pcre2 (3-Clause BSD)
- Regex
- reproc (Expat)
- Process launching
- rubberband (GPLv2+)
- Time-stretching and pitch-shifting
- vamp-plugin-sdk (X11)
- Audio analysis
- xxhash (2-Clause BSD)
- Hashing
- zix (ISC)
- Portability wrappers and data structures
- zstd (3-Clause BSD)
- Compression
- boost (Boost)
- C++ utilities required for bundled plugins
- jack (LGPLv2.1+)
- Low latency audio/MIDI backend
- lsp-dsp-lib (LGPLv3+)
- SIMD-optimized signal processing
- libguile (GPLv3+)
- Scripting support
- graphviz (EPLv1.0)
- Process graph export
- rtaudio (Expat)
- Various audio backends
- rtmidi (Expat)
- Various MIDI backends
- SDL2 (zlib)
- Audio backend
Dependency package names for various distros can be found here and here
Configure the build directory, optionally passing options:
meson setup build -Doption_name=value
To see all available options, type the following after the build directory is initialized, or look inside meson_options.txt. Built-in meson options can be found here:
meson configure build
To change an option after configuration, use:
meson configure build -Doption_name=value
To change environment variables (such as CC
and
CXX
) while keeping the current configuration, use:
MY_ENV_VARIABLE=myvalue meson build --wipe
To start from scratch, remove the build
directory:
rm -rf build
The default build type is debugoptmized
, which
is equivalent to -Ddebug=true -Doptimization=2
(-O2 -g
). This works well in most cases. For
extremely optimized builds, we suggest building with
the following options:
-Ddebug=true -Doptimization=3 -Dextra_optimizations=true -Dnative_build=true
We suggest always keeping -Ddebug=true
to assist
with meaningful stack traces and bug reports.
Compile after configuring the build directory:
meson compile -C build
To clean the build directory while keeping the current configuration, use:
meson compile --clean -C build
Once the program is built, it will need to be installed the first time before it can run (to install the GSettings among other things):
meson install -C build
If you don't want to install anything permanent on
your system, you can install it somewhere
temporary by configuring with
--prefix=/tmp/zrythm
for example, and
then you can run it with
/tmp/zrythm/bin/zrythm_launch
.
When running Zrythm from the command line, it is
recommended to use zrythm_launch
instead of
running the zrythm
binary directly. This takes
care of using the correct GSettings schemas and
other resources in the installed prefix.
For debugging and other developer tools, see HACKING.md.