首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免XRUN回调跳过

如何避免XRUN回调跳过
EN

Ask Ubuntu用户
提问于 2014-10-20 15:42:50
回答 1查看 18K关注 0票数 3

在设置了QjackCtrl和Arour之后,我可以记录得很好,但是XRUN回调跳过是很烦人的。

这是我的QjackCtrl配置:

在日志中我看到:

代码语言:javascript
复制
18:37:22.041 XRUN callback (97).
18:37:22.793 XRUN callback (42 skipped).
18:37:24.794 XRUN callback (111 skipped).
18:37:26.795 XRUN callback (111 skipped).
18:37:28.796 XRUN callback (111 skipped).
18:37:30.798 XRUN callback (75 skipped).
18:38:45.359 XRUN callback (552).
Mon Oct 20 18:38:45 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Running
Mon Oct 20 18:38:45 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:38:45 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:38:46 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:38:46 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:38:46 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:38:46 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
18:38:46.833 XRUN callback (3 skipped).
Mon Oct 20 18:38:46 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:38:46 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:38:46 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:38:46 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Triggered
Mon Oct 20 18:38:46 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
18:38:48.834 XRUN callback (23 skipped).
18:40:28.031 XRUN callback (580).
Mon Oct 20 18:40:28 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Running
Mon Oct 20 18:40:28 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
18:40:28.884 XRUN callback (1 skipped).
Mon Oct 20 18:40:28 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:40:28 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Running
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client PulseAudio JACK Source finished after current callback
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Running
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state = Running
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = PulseAudio JACK Source was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mon Oct 20 18:40:29 2014: ERROR: JackEngine::XRun: client = ardour was not finished, state = Triggered
Mon Oct 20 18:40:29 2014: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
18:40:30.885 XRUN callback (32 skipped).
18:40:32.887 XRUN callback (89 skipped).

什么是XRUN回调跳过?我怎样才能解决这些问题?

使用低延迟内核运行Ubuntu14.04:

代码语言:javascript
复制
$ uname -a
Linux laptop 3.13.0-38-lowlatency #65-Ubuntu SMP PREEMPT Thu Oct 9 12:04:28 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2016-08-20 20:38:06

再次遇到这种情况,并最终得到了正确的答案,为什么xrun会发生。

来自JACKS页面:

指定插孔进程()调用之间的帧数。B这个值必须是2/b的幂,默认值是1024。如果您需要较低的延迟时间,请将-p设置为尽可能低,而不需要看到xrun。更大的周期大小会产生更高的延迟,但使xrun不太可能运行。以秒为单位的千斤顶捕获延迟是周期除以速率。

您需要将sample rateframes/periodperiods/buffer设置为正确。下面是usb设备的最佳选择。

代码语言:javascript
复制
(Frames [or buffer] / Sample Rate ) * Periods = Latency in ms

( 16 / 48000 ) * 3 = 1
( 32 / 48000 ) * 3 = 2
( 64 / 48000 ) * 3 = 4
( 128 / 48000 ) * 3 = 8
( 256 / 48000 ) * 3 = 16
( 512 / 48000 ) * 3 = 32
( 1024 / 48000 ) * 3 = 64
( 2048 / 48000 ) * 3 = 128
( 32 / 96000 ) * 3 = 1
( 64 / 96000 ) * 3 = 2
( 128 / 96000 ) * 3 = 4
( 256 / 96000 ) * 3 = 8
( 512 / 96000 ) * 3 = 16
( 1024 / 96000 ) * 3 = 32
( 2048 / 96000 ) * 3 = 64
( 64 / 192000 ) * 3 = 1
( 128 / 192000 ) * 3 = 2
( 256 / 192000 ) * 3 = 4
( 512 / 192000 ) * 3 = 8
( 1024 / 192000 ) * 3 = 16
( 2048 / 192000 ) * 3 = 32

我选了最优的,所有的都在这里:http://wiki.linuxaudio.org/wiki/list_的_杰克_框架_句号_设置_理想化_为_usb_接口

票数 8
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/539406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档