System Requirements#

Platform Support#

Zrythm aims to support all platforms, however due to lack of resources we focus on the most used ones. See the matrix below for support status of each platform.

o: Supported ^: Untested x: Not supported

Platform support matrix#

Platform

x86_64/AMD64/x64

AArch64/ARM64/ARMv8

ARMv7

PowerPC64

i386

i686

GNU/Linux

o

o

^

^

^

^

FreeBSD

o

^

^

^

^

^

Windows

o

x

x

x

x

x

MacOS

o

o

x

x

x

x

Backend Support#

o: Supported ^: Has known issues x: Broken

Audio backends#

Backend

Status

JACK

o

JACK (via PipeWire)

o

PulseAudio (RtAudio)

o

PulseAudio

^

SDL2

^

ALSA (RtAudio)

o

ALSA

x

WASAPI (RtAudio)

o

CoreAudio (RtAudio)

o

MIDI backends#

Backend

Status

JACK MIDI

o

JACK MIDI (via PipeWire)

o

WindowsMME

^

ALSA Sequencer (RtMidi)

o

WindowsMME (RtMidi)

o

CoreMIDI (RtMidi)

o

Recommendations#

CPU

For smooth operation, we recommend using a CPU with at least 2GHz clock speed and at least 4 cores in total.

Monitor

It is recommended to have at least 16 inches of monitor space to work efficiently with Zrythm.

Audio interface

An audio interface offers low latency and better quality than integrated sound cards (especially if recording audio).

MIDI keyboard

A MIDI keyboard is useful for quickly trying out melodies, recording, and controlling knobs and buttons.

JACK#

When using the JACK backend, JACK needs to be set up and configured before running Zrythm. You will find lots of information online about how to configure JACK, such as Demystifying JACK - A Beginners Guide to Getting Started with JACK, so we will skip this part.

Memory Locking#

Zrythm requires memory locking privileges for reliable, dropout-free operation. In short, if data is not locked into memory, it can be swapped by the kernel, causing xruns when attempting to access the data.

Realtime Scheduling#

Zrythm requires realtime scheduling privileges for reliable, dropout-free operation. Realtime (RT) scheduling is a feature that enables applications to meet timing deadlines more reliably.

GNU/Linux#

To set up these privileges for your user, see How do I configure my linux system to allow JACK to use realtime scheduling?.

FreeBSD#

To set up these privileges for your user, change the user class' memorylocked value in /etc/login.conf.

Open File Limit#

On startup, Zrythm will attempt to increase the maximum limit of files it can open. You should give your user enough permissions to allow this.