Understanding the Ecasound -r Option
This article explains the function and practical application of the
-r option when executing Ecasound, a command-line
multitrack audio processing tool. Readers will learn how this option
configures process scheduling, why it is critical for low-latency audio
performance, how to specify priority levels, and the system permissions
necessary to use it effectively.
When launching an Ecasound instance, the -r option
designates that the process should run with real-time scheduling
priority. By default, standard processes are handled by the operating
system's standard dynamic scheduler (such as SCHED_OTHER in
Linux), which treats audio processing with the same general priority as
regular background tasks. Invoking -r tells the kernel to
handle Ecasound using POSIX real-time first-in, first-out scheduling
(SCHED_FIFO).
The primary purpose of enabling real-time priority with
-r is to prevent buffer underruns and overruns (commonly
referred to as xruns). In multitrack recording, live effects processing,
or low-latency monitoring, any interruption or scheduling delay caused
by other system tasks can lead to audible clicks, pops, or dropped audio
frames. Applying -r ensures that Ecasound’s audio engine
threads take precedence over non-real-time operations, maintaining
steady, uninterrupted audio streams.
The option can be used as a standalone flag or with an optional integer parameter to designate a specific priority level:
-r: Enables real-time scheduling using the default priority defined by the system or Ecasound configuration.-r:priority: Enables real-time scheduling and explicitly sets the process priority to the specified numeric value (for example,-r:50).
Operating systems restrict the ability to grant real-time priority to
prevent unprivileged tasks from starving critical system services. To
use the -r option without running as the root user, the
operating system must be configured to grant real-time permissions to
the user. On Linux systems, this typically involves configuring the
rtprio resource limits in
/etc/security/limits.conf or ensuring the user belongs to
an audio group with predefined real-time execution
privileges.