主页

索引

模块索引

搜索页面

常用

ALSA

  1. ALSA 库:提供设备检测、设备操作和 MIDI 接口等 API。应用程序通过调用 ALSA 库的 API 来操作音频设备。

  2. ALSA 驱动:实现对不同音频接口和音频硬件的支持,如 PCI 音频卡、USB 音频设备、AC97 芯片组等。ALSA 驱动为 ALSA 库提供底层访问硬件的接口。

  3. ALSA 工具:提供配置工具、测试工具和示例应用等,用于帮助开发者配置和测试 ALSA 系统。

  4. ALSA 插件:实现对不同音频编解码器和文件格式的支持,以扩展 ALSA 的功能。

  5. ALSA 相关的守护进程和消息传递系统:用于进行系统设置和注册客户端等。

ALSA 的主要功能包括:

1. 支持大多数 Linux 下的音频接口和音频设备。
2. 提供完整的 MIDI 支持。
3. 支持多路复用、同步和时间控制。
4. 提供跨平台的 API,保证在不同硬件和操作系统上的一致性。
5. 支持动态添加/移除设备,不需要重新启动系统。
6. 提供较低延迟和较高的 fidelity。
7. 支持不同的音频格式和效果的平台。

设备接口类型 - 包括:

Analog
Digital
Alt Analog
HDMI
USB

每个声卡的设备信息主要包含:

1. 声卡名称:如 Generic, Intel, USB 等,表示声卡的厂商或类型
2. 声卡编号:如 card 0, card 1 等,表示该声卡在系统中的编号
3. 设备号及名称:如 device 0: ALC3232 Analog, 表示该声卡上的一个设备接口及其名称
4. 子设备信息:每个设备下可能包含多个子设备(subdevice),对应不同的功能或连线
5. 支持格式:如 S16_LE, S24_LE, FLOAT 等,表示该设备支持的样本格式
6. 支持的通道数:如 2、4、6、8 等,表示支持的声道配置
7. 最大/最小采样率:表示该设备所支持的采样率范围
8. 其他信息:如是内置设备还是外接设备,是输入还是输出设备等

常见的声卡名称:

1. HDA Intel PCH
2. HD-Audio Generic

alsa-utils

安装命令:

apt install alsa-utils

安装以下工具:

1. alsamixer - 一个文字模式的声卡控制面板,用于控制 ALSA 声卡驱动的音量等设置。
2. alsactl - 用于保存和恢复 ALSA 配置的工具。可以保存音量设置、静音设置以及其他控件的状态。
3. alsaloop - 一个 ALSA PCM 测试工具,可以生成和输出各种类型的信号到 ALSA PCM 设备,用于测试 ALSA 的 PCM 功能。
4. aplay - 一个命令行播放器,可以播放不同格式的音频文件,并通过 ALSA 声卡驱动输出声音。
5. arecord - 一个命令行录音工具,可以从 ALSA 声卡驱动的输入录制音频,并保存为各种格式的音频文件。
6. aconnect - 用于查看和管理 ALSA 连接的工具。可以显示 ALSA 库的当前连接状态,也可以手动建立和打断连接。
7. aseqnet - 一个 ALSA MIDI 网络客户端,可以将 MIDI 事件从 ALSA MIDI 输出端口转发到其他主机上的 ALSA MIDI 输入端口。
8. aseqdump - 显示或转换 ALSA 事件序列的工具。
9. aviaaconvert - 一个协助 ALSA 库和 OSS 库之间的应用程序与音频设备格式转换的工具。
10. alsa-info.sh - 一个用于收集 ALSA 相关状态信息的脚本,用于诊断 ALSA 相关问题。

目录/dev/snd/

  • /dev/snd/ 目录下包含 Linux 系统的音频设备文件

常见的设备文件及其作用如下:

- controlC0, controlC1, controlC2: 声卡的控制设备文件,用于设置声卡参数
- pcmC0D0c, pcmC0D0p: PCM 音频接口的播放(p)和捕获(c)设备文件
- seq: MIDI 设备文件
- timer: 计时器设备文件,用于生成定时音频事件
- midiC0D0: MIDI 设备文件
- adsp: 用于专用数字信号处理器的设备文件

规范

命名规范

音频设备文件的标准命名规范:

- control: 声卡控制设备文件,用于设置声卡参数
        命名方式:controlC0, controlC1, controlC2 ...

- pcm: PCM音频接口的播放和捕获设备文件。
- 命名方式:
 - pcmC0D0p: 第一个声卡的第一个PCM设备的播放设备
 - pcmC1D3c: 第二个声卡的第四个PCM设备的捕获设备
 - pcmC0D0c 表示 card0 的第 0 个 PCM 设备的捕获设备
 - pcmC1D3c 表示 card1 的第 3 个 PCM 设备的捕获设备

- timer: 定时器设备文件,用于生成定时音频事件。
- 命名方式:timer

- midi: MIDI设备文件。
- 命名方式:midiC0D0, midiC1D1 ...

- seq: MIDI设备文件。
- 命名方式:seq

- hw: 硬件音频设备文件。
- 命名方式:
 - hw0, hw1, hw2 ...: 表示硬件音频设备
 - hw:0, hw:1, hw:2 ...: 同上,另一种表示方式
 - hw0,0, hw1,0 ...: 将hw0映射为第一个声卡,hw1映射为第二个声卡 ...

- dsp, adsp, dmix: 旧式命名,新版本的ALSA不再推荐使用。

API 规范

ALSA 定义了音频应用程序与 ALSA 库交互的 API。包括:

- alsa-lib API:用于常规 PCM 播放/捕获等操作
- alsa-mixer API:用于控制音量、选择输入/输出源等
- alsa-pcm API:低级接口,用于直接与 PCM 子系统交互
- alsa-seq API:用于 MIDI 序列器操作

架构规范

  • ALSA 定义了统一的音频架构,主要包括:

    卡(Cards) → PCM(Pulse Code Modulation,脉冲编码调制) → 控制(Controls)
    

主页

索引

模块索引

搜索页面