做音乐延迟太高?rtprio拯救你

Too much xrun in music production? rtprio helps you get the smallest latency.

Posted by Tee on December 09,2018

众所周知,Linux系统是一个多用户的操作系统,默认情况下会有2个特权功能会被拒绝。因为不怀好意的人会用这2个权限来攻击你的Linux系统。而这2个特权功能对做音乐太重要了,下面教你如何解开“封印”。(安全)

这2个特权功能分别是rtprio与memlock。

  • rtprio:允许用户执行实时(realtime)线程
  • memlock:允许用户把数据锁定在内存里,防止被丢弃和替换。

创建配置文件

打开终端,以管理员权限新建/编辑配置文件:

sudo nano /etc/security/limits.d/99-realtime.conf

输入以下2行内容,保存离开:

@realtime   -  rtprio     99
@realtime   -  memlock    unlimited

99-realtime-file

创建realtime用户组

记住你的用户名,以下例子以tee作为用户名。

打开终端,以管理员权限分别运行下方2行:

groupadd realtime
usermod -a -G realtime tee

注销该用户并重新登录

可选:设置JACK的rtprio

如果你用的是ALSA作为DAW的音频驱动,可以不设置该项;如果使用的是JACK作为音频驱动,则需要把JACK的realtime priority设置为上方的rtprio数值。

JACK rtprio settings

简单一句话概括是,rtprio与memlock能帮你以最大的努力减少xrun(卡顿)。享受吧!

进阶阅读:一切的开端:Linux音频系统的调教

参考资料

https://wiki.cockos.com/wiki/index.php/REAPER_for_Linux

http://www.jackaudio.org/faq/linux_rt_config.html

http://alsa-project.org/main/index.php/Low_latency_howto