There are several ways to obtain good latency with the current 2.6 Linux kernel. Due to the lack of good documentation about how to install a realtime kernel some hints are provided below, which benefit MusE and other realtime capable programs.

Setup realtime in Linux

Instructions

Please see this page: http://jackaudio.org/linux_rt_config for instructions on setting up realtime capabilities on a recent (2011) Linux distribution. The Chapter below contains some distributions that may have a default configuration that already enables this. Of course there are more distributions, shop around for multimedia or pro audio linux distributions if you feel so inclined.

Use a Multimedia Optimized Linux Distribution

The easiest way to obtain low latency realtime performance is to use a Linux distribution that is optimized for multimedia and includes a realtime kernel. The distribution usually also provides other programs and optimized settings to properly set up and configure the system. There are many distributions that do this and each has its own characteristics. For example a few well known distributions include:

Common Tweaks For Best Performance

To Do: This section should be added. It would be geared towards most current and up to date distributions as of 2009 and 2010.

To Do: Some of this information is mentioned elsewhere in the wiki. Common hints such as disable NetworkManager. Enable hardware realtime clock (rtc) if wanted. Confirm that multimedia kernel is being used.

DEPRECATED

Older Information (pre-2008)

Note that the information below here was last edited in 2007. Linux is rapidly changing and the advice may not be up to date. It is being kept here should someone find it still applicable or useful.

Low latency patches from Ingo Molnar for 2.6 kernel

There you can also find some stuff on getting realtime priority for
normal users and tune your hardware.

LSM module

This has been integrated into the linux kernel.org kernels for some time now and is working nearly out of the box. At least you don't have to install patches which is much more complicated compared to a single recompile.

mail traffic

Here are some mails I've collected, maybe they give you some hints.

first mail

> i would like to take the chance to document what latency-methods are
> implemented and as far as i know it's:
> - libcaps (2.4 or 2.6 only?)
> - 2.4 preemptive patches (there is a howto)
> - 2.6 lsm module

The libcap and lsm are not strictly for getting lowlatency but for allowing
realtime threads from a program run by a normal user.

> is there more?
> i think a 2.6 preemptive patch is also being worked on lately.

Yes, even the standard (vanilla) kernel is catching up. I'm running the 2.6.10
with very good performance at this moment.

Though, I think what Erich is asking is only partly answered by this:

There are several kinds of latencies. The one described is the realtime
latency between playing a sound and that it will reach the ear.

The other kind of latency is what happens when there are latencies introduced
by different parts of the system. E.g. plugins can add latency.

MusE does not compensate for plugin latencies as far as I know. Recorded wav
files I am unsure about. It has never been an issue for me.

If there is latency in the recording then it should be the same as the setting
in Jack I think. buffersize*number_of_buffers

Mmm, this begs for some experimentation. How about recording the output of a
softsynth to different tracks with different buffer setting, does this change
the delay? I'll see if I can try that later.

/Robert

second mail

I realize I didn't quite answer the question as I wanted to.

About realtime:

libcap - realtime support for 2.4
suid binary - realtime support for 2.4 and 2.6
lsm-realtime - realtime support for 2.6 (best option)