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

leo*_*nic 7 audio jack

我正在尝试设置 Jack,因为我听说它的 Linux 相当于 Windows 上的 ASIO。我弹吉他是为了好玩,并认为与 Ardor 一起弹奏或找到与 Guitar Rig 等效的 FOSS 会很酷。

但是我不明白......好吧,任何事情。我不明白杰克在做什么。据我所知,一般流程是

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

(Phonon 进来是因为我使用 KDE。我想。)

我实际上不知道箭头代表什么。除了描述如何将 JACK 与 PulseAudio 一起使用的一页之外,JACK 网站基本上包含面向用户的零起点文档。

作为一个初学者,不管 JACK,都不了解 Linux 中的声音是如何工作的,我可以去哪里学习?我想了解声音堆栈。但对于 JACK,我所能找到的只是它的贫瘠 Wiki(包括两个名为配置和运行 JACK 服务器设置简单音频链的多汁链接,它们都是尚未编辑的“即将推出”页面五年内)和2005 年Linux Journal 文章

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

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

Run*_*ium 10

在我对 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 Schematic diagram下找到该链接。)还可以阅读链接,例如顶部的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                           |
|                                                 |
+-------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)