文章发在我的博客:http://lado.me/2017/04/16/combination-of-linux-audio/ 期待认识更多Linux上玩音乐的朋友!
正文开始:
先介绍一下最常见的Linux音频的处理方式,看下图不像Windows或OSX,Linux上可以更自由选择音频组件进行组合。 以下讨论的方案,是最流行的Alsa+Pulseaudio组合,Ubuntu等发行版也在使用。
声卡 → 内核 → Alsa(低延迟) → Pulseaudio(高延迟) 或 JACK(低延迟) → 软件App。图片来自linux-audio.com
我使用的连接方式
JACK连接专业App或Pulseaudio
这是我正在使用的连接方式,Alsa输出JACK,JACK输出给专业App与Pulseaudio。
- 内核和Alsa负责驱动声卡(驱动)
Alsa连接JACK
JACK连接Pulseaudio,Pulseaudio连接普通的桌面App、蓝牙和系统声音
JACK负责连接专业的音频App(不经过Pulseaudio)
- 打开浏览器,在爱奇艺看视频,调节播放的音量,使用的是JACK+Pulseaudio。
打开Ardour(一款Daw),使用的是JACK。
其他常见的音频组件连接方式
Pulseaudio或JACK连接App
- 内核和Alsa负责驱动声卡(驱动)
Pulseaudio负责连接普通的桌面App和蓝牙(网易云音乐、QQ、浏览器)
JACK负责连接专业的音频App(录音软件)
- 打开浏览器,在优酷看视频,调节播放的音量,使用的是Pulseaudio。
打开Ardour(一款Daw),使用的是JACK。
Alsa直接连接App因为Pulseaudio与JACK同时连接Alsa的话,需要先停用另外一方。所以如果想在使用Daw的时候,播放网页的声音,就必须停用连接着Daw的JACK,让JACK不再占用Alsa。
我们在Linux是自由的,不仅限以上的音频组件连接方式。网页播放视频的声音、即使是Daw的声音也可以同时由Alsa控制。
举个例子:Alsa可以直接控制所有的声音播放,可以不需要Pulseaudio或JACK。
- 打开浏览器,在Bilibili看视频,使用Alsa控制播放音量。
打开Ardour(一款Daw),使用Alsa。
最方便的部署方式因为Pulseaudio在各方面都有着不错的现成接口,如使用蓝牙,JACK在专业级的软件也有更丰富的支持。所以要求比较复杂的朋友,还是使用Pulseaudio和JACK比较方便。
使用Cadence,在图形界面按自己的喜好选择音频组件的连接方式。
Arch
代码: 全选
yaourt cadence
请参考官网
Cadence官方地址:http://kxstudio.linuxaudio.org/Applications:Cadence
注意事项
我使用的连接方式,Alsa → JACK → Daw或Pulseaudio,JACK必须为jack2-dbus版本,才能达到与其他应用程序通信的效果。
Pulseaudio,JACK,Alsa之间的连接,除了程序本身需要安装,还需要安装依赖的插件。
Arch
代码: 全选
sudo pacman -S pulseaudio-alsa pulseaudio-jack alsa-plugins
代码: 全选
sudo apt-get install pulseaudio-module-jack libasound2-plugins
必须知道的知识
控制Alsa调音台音量,需要先安装alsa-utils,终端输入alsamixer运行。
控制Pulseaudio的图形界面,在Gnome、Kde等流行的桌面默认都有调音台可以控制。 我使用Gnome桌面,还另外安装了pavucontrol。
关于JACK的图形界面控制,除了Cadence,还有QjackCtl。
参考资料
https://wiki.archlinux.org/index.php/Ad ... chitecture
https://wiki.archlinux.org/index.php/Pu ... ection_Kit
http://jackaudio.org/faq/
编辑器排版困难,辛苦看贴了!