🔖コンピュータ, とくに🐧Linuxのサウンド/オーディオ周りのまとめ.
サウンドシステム
- サウンドカード: 物理回路.
- オーディオデバイスドライバ
- ドライバインタフェース
- サウンドサーバー
用語がわからなすぎる…
サウンドカード
オーディオのデバイス. オーディオデバイス, サウンドカード. サウンドボード.
- オーディオをインプットするためのハードウェア部分.
- コンピュータに音響信号の入出力機能を付加または強化する拡張用の回路基板(サウンドカード - Wikipedia).
- hw:0
- PCH
入力デバイス
arecord -l
出力デバイス
aplay —list-devices
Linixでの確認方法
- CLI: lspci | grep Audio
オーディオデバイスドライバ
サウンドカードのためのドライバ. Linuxが周辺機器を制御するIF.
cat /proc/asound/modules
オーディオインタフェース
オーディオインタフェースという用語は, 個々のサウンドカードに対する個々のデバイスドライバをまとめたライブラリ.
🔈ALSA
Linuxにおけるデファクトスタンダードなオーディオドライバ. 📝Linux Kernelのコンポーネント.
Advanced Linux Sound Architecture - Wikipedia
- 色んなサウンドカードを統一的に操作出来るようにする仕組み.
snd-virmidi/aconnect
snd-virmidiはALSAで提供されている仮想MIDIポートのkernel module.
$ sudo modprobe snd-virmidi
$ aconnect -l
aconnect -l でport確認.
alsamixer
CLIから音量調整できるツール. archだとalsa-utilsにある.
alsamixer -c 0
サウンドサーバ
オーディオシステム. 複数のアプリの音を制御する交通整理のサーバ.
🔈PulseAudio
- pavucontrol: GUI
- pactl: CLI
🔈JACK
DAWとかオーディオ周りで人気. 遅延が少ない. PulseAudioは遅延が多い.
- Qjackctl: GUI
- JACK Audio Connection Kit - ArchWiki
- [初心者向け] JACKサウンドサーバのキホン | 使い方から設定までを解説 from Libre Music Production - フノスちゃんの窓
- Linuxで(不毛な)「良い音」を目指す設定 - Chienomi
- 👨ジャック・マー
<2024-07-26 Fri 08:13>
Bitwig Studioだと複雑な音を鳴らすとPulseAudioはテンポがスローダウンするがJackはテンポが維持される. 改善した.
🔈PipeWire
Redhatが開発した最近でてきたやつ.
- pipewire: 本体
- wireplumber: セッションマネージャー. 交通整理的な. wpctlがCLI
- pipewire-alsa: ALSA APIを利用するApp
- pipewire-pulse: pulseaudio client
- pipewire-jack: jack client, pw-jack
- qpwgraph: GUIのオーディオ設定可視化.
- pwvucontrol: https://github.com/saivert/pwvucontrol
- pulseaudioのpavucontrolみたいなGUIツール.
settings
- /usr/share/pipewire: defaultの初期設定ファイル. コピーまたはsimlinkする.
- /etc/pipewire: システム全体の設定
- ~/.config/pipewire: ユーザ個別設定
$ sudo cp /usr/share/pipewire/pipewire.conf /etc/pipewire
$ sudo cp /usr/share/pipewire/pipewire-pulse.conf /etc/pipewire
$ sudo pacman -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber qpwgraph
PipewireでJackアプリをつかうには?
pw-jackコマンドでアプリを起動する. pipewire-jackに含まれてる.
pw-top
latencyを調整するためにつかう.
refs
- doc: https://docs.pipewire.org/
- Void LinuxのオーディオサーバーをPulseAudioからPireWireに切り替えてみた | クロの思考ノート
- Linuxで使える作曲ソフトRosegardenをPipeWire環境下で動かしてみた | クロの思考ノート
- PipeWire - ArchWiki
- LADSPA/LV2/VSTの設定があるので後で読む.
- UbuntuにPipeWireを入れてみる
- https://github.com/mikeroyal/PipeWire-Guide
Tools/CLI
Topics
- Ubuntu Studioというクリエイター向けの機能強化ディトロがあるらしい.
💡PulseAudioとJACKは共存できない
ATTENTION: The playback device “hw:0” is already in use. Please stop the application using it and run JACK again
- PulseAudio機能拡張であるJACKモジュールという解決方法がある.
- Pipewireをつかうという手もある.
Realtime Scheduling有効化
よくわかってない.
ulimit -lで8092だった. /etc/sequlity/limits.d/jack.conf or 99-pipewire.confを作成して以下を記入したらRealtime Schedulingが有効化されたか?
@audio - rtprio 95 @audio - memlock unlimited
- https://medium.com/@wallacechemical/bitwig-on-linux-with-pipewire-94d74dec52a5
- How do I configure my linux system to allow JACK to use realtime scheduling? | JACK Audio Connection Kit
🔗References
- https://github.com/anton-k/linux-audio-howto
- virtual-midi
- LinuxMusicians - Index page
- サウンドシステム - ArchWiki
- プロフェッショナルオーディオ - ArchWiki
👉Related
- 🎓音響工学
- 🎶Bitwig Studio: Linuxで動作する商用DAW.