我该如何使用杰克? Linux 声音是如何工作的?

我该如何使用杰克? Linux 声音是如何工作的?

我正在尝试设置 Jack,因为我听说它在 Linux 上相当于 Windows 上的 ASIO。我弹吉他是为了好玩,我觉得用 Ardour 弹奏或者找到一个相当于 Guitar Rig 的自由开源软件会很酷。

然而我不明白……好吧,什么都不懂。我不明白杰克在做什么。据我所知,一般流程是

[sound hardware][kernel][JACK][ALSA][PulseAudio][Phonon][my headphones]

(Phonon 出现是因为我使用 KDE。我想。)

我其实不知道什么箭头代表。 JACK 网站包含基本上从零开始的面向用户的文档,除了一页描述如何将 JACK 与 PulseAudio 结合使用。

作为一个初学者,无论JACK如何,都不了解Linux中声音是如何工作的,我可以去哪里学习?我想了解声音堆栈。但对于杰克我能找到的就是其贫瘠的维基(包括两个名为配置并运行 JACK 服务器设置简单的音频链,结果都是“即将推出”页面,五年没有编辑过)和2005 年的 Linux Journal 文章

很多事情让我困惑。我如何知道 Linux 可以识别哪些声音设备?我有三个:板载芯片、USB 音频接口(M-Audio FastTrack)和带麦克风的 USB 网络摄像头。所有这些东西都能被 Linux 识别吗?它们都专门注册为声音设备吗?每个设备是否都必须有独立的 JACK、ALSA、PulseAudio 等驱动程序?有没有一种基本方法可以测试我的设备以确保它有输出?有没有办法可以监控我的设备以查看软件是否确实在使用它们?

现在可以听到 Amarok 声音,但听不到 Youtube 声音。 Amarok 还通过我的 USB FastTrack 而不是我的板载声音芯片运行。 Hydrogen 拒绝启动,大概是因为我有 JACK 或 Alsa 或其他配置错误的东西。我不知道如何找出这些事情的韵律或原因。

答案1

在我对 Linux 声音的努力中,我最终禁用了 Pulse Audio 的自动生成(因此它在关闭时不会重新启动):

添加。autospawn=no~/.pulse/client.conf

  • 停止与pactl exit
  • 从...开始pulseaudio

正在做现场声音的东西或者类似的,我关闭 PA 并只运行 JACK。没有 PA 桥。我从未使用 PA 或 JACK+PA 令人满意地降低延迟。

本文似乎对各层进行了相当好的快速介绍,其中还提到了Phonon.

您可能已经读过这篇文章,而且也不是最新的,但也许会让您更接近理解:Linux 音乐工作流程:与 Kim Cascone 一起从 Mac OS X 切换到 Ubuntu。请注意标题上方的图表「工作流程」。 (您也可以在此处找到JACK示意图.) 另请阅读链接,例如顶部的链接Linux 音频简介,尽管从 2004 年开始,它可以让您快速了解 ALSA。


尽管我自己对这两者都不太熟悉,但我相信一个好的方法是将学习分成不同的部分。

  1. 了解 ALSA
  2. 了解 JACK(特别是因为您想做工作室工作。)
  3. 了解脉冲音频

以该顺序。难怪人们很难掌握 Linux 声音。这与历史及其演变有很大关系。这也是为什么,如果想真正了解它,了解它的历史是一件好事。因此,ALSA 是一个很好的起点。在 OSS 上进行一些嗅探。并努力向上。

快速方法可能让它工作是遵循这些指南中的任何一个

简单地说; ALSA是内核的一部分,知道如何处理各种硬件。 JACK 和 Pulse Audio 使用 API 来控制硬件并与硬件交互。 ALSA也可以单独用作声音服务器。应用程序使用 JACK/PA API 进行多线程声音工作。

通过运行以下命令可以快速查看您的系统alsa-info.sh找到脚本这里

一个非常简化的模糊视图图,显示了一些连接:

 +------------------------------------------------+
 |                   SOUNDCARD                    |
 |------------------------------------------------|      _____  __
 |                  ___________                   |     /     \/  \
 |                  |   ADC   | <---- analog in --[o---7 :===========|==|==|=[';]
 |                  -----|-----                   |     \____7 \__/
 |    __________ AMP     |                        |
 |   | MIXER |----+------o                        |
 |   +---|---+-- AMP_____|______                  |        _______
 |       |          |   DAC    | ---> analog out -[o------[ o o o ]  ♫ ♬ ♪ ♩ ♭ ♪
 |       |          +----------+                  |       |       |
 |       |                                        |       |  (o)  |
 |   -- -+---^-- --v-- -- -- --^-- --v-- --+--    |       |       |
 |                    CONTROLS                    |       | ((0)) |
 |                                                |       |_______|
 |                                                |
 +------------------------------||----------------+
                                ||
 ADC: Analog to digital         ||
 DAC: Digital to analog         |- udev trigged and mounted
 _______________________________||________________
|                                                 |
|                     KERNEL                      |
|¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ -|-|-|-|- ¨ ¨ ¨ ¨ ¨|
|                                                 |
|       ALSA API <--> [Device Drivers]            |
|         ^  |        module-alsa-card   +--------|--
|         |  |                           |        |
+---------|--|---------------------------|     Memory Buffer I/O
:         |  v                           |        |
|                                        +----|---|--
| JACK ------------ PULSE AUDIO --------------+   |
|             sinks                           |   |--
| * hardware-access-points * hardware-sink    |   |  Uses ALSA API for HW I/O
| * virtual-devices        * mediaplayer-sink |   |  Mixing, Control etc.
|                          * recorder-sink    |   |
|                          * ...              |   |--
|                                             |   |
|-----------------|------|--------------------|---|
|               APPLICATIONS -----------------+   |
|-------------------------------------------------|
|                                                 |
| Software based mixing                           |
|                                                 |
+-------------------------------------------------+

相关内容