「プロフェッショナルオーディオ」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(linux-rtパッケージがLTS共々公式リポジトリに移動していたのでテンプレートを変更)
 
(4人の利用者による、間の28版が非表示)
1行目: 1行目:
[[Category:音声/動画]]
+
[[Category:サウンド]]
[[en:Pro Audio]]
+
[[en:Professional audio]]
[[ru:Pro Audio]]
+
[[ru:Professional audio]]
  +
[[zh-hans:Professional audio]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|サウンドシステム}}
 
{{Related|サウンドシステム}}
  +
{{Related|JACK}}
{{Related4|envy24control}}
 
  +
{{Related|リアルタイムカーネル}}
  +
{{Related|envy24control}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
この記事では、[[Wikipedia:Multitrack recording#With computers|recording]]、ミキシングや再生、さらには合成や音の生成に使うためのシステムの設定方法について説明します。これらの活動は[[Wikipedia:Professional audio|professional audio]](プロオーディオ)という用語に包含され、一般的に低 [[Wikipedia:Latency (audio)|latency]] パフォーマンスを必要とします。
   
  +
映像制作やゲームに比べれば、ほとんどの用途でそれほどハイエンドなハードウェアは必要ありません。2012 年後半以降に製造されたほとんどのコンピュータは、プロオーディオ用に最適化することができます。詳しくは Ardour マニュアルの [https://manual.ardour.org/setting-up-your-system/the-right-computer-system-for-digital-audio/ The Right Computer System for Digital Audio] のページを参照してください。
== イントロダクション ==
 
 
現代の Linux システムは(セミ)プロフェッショナルオーディオのニーズを十二分にサポートすることが出来るようになっています。適当なハードウェアと正しい設定をすれば 5ms のレイテンシを 1ms まで小さくすることが可能です。''DAW'' (デジタルオーディオワークステーション) にあわせて産業用レーザーを動かすことさえ不可能ではありません。
 
 
Arch Linux がレコーディング・ミキシング・マスタリング・サウンドデザイン・DSP プログラミングなどのための専用マシンを作るにふさわしい"フレームワーク"を優れたユーザーたちに提供すると私たちは信じています。しばしば、"linux のオーディオユーザー"が"制作環境"を考慮するとき、"Gentoo" が候補に上がってくることがあります。どうしてそのような誤った考えが出てくるのかは不明ですが、言うまでもなく、"コンパイル"と"学習"そして"パフォーマンス"は "Cubase と Pro Tools の表現の質の違い" くらいにしか互いに関係していません。
 
 
=== Arch Linux のプロオーディオ ===
 
 
* '''バイナリベース'''
 
 
Arch は主としてバイナリパッケージで構成される(メタ)ディストリビューションです。その上に簡単なソースベースのパッケージ管理システムが付いています。時間と CPU サイクルを浪費する必要はありません、あなたはただそれをやるだけです (''you just work''™)。これは下の"サードパーティのリポジトリ"につながっています。
 
 
* '''KISS'''
 
 
Arch の哲学はパッケージが出来る限り vanilla (オリジナルの状態) であることを要求しています。上流のソフトウェア開発者がのぞむことをそのまま実現しています。パッケージの名前は現実的で率直でありヘッダーは全て入っています。新しい Linux のオーディオアプリケーションをビルドするときに開発用ファイルが存在しないと頭を痛めることはもうありません。
 
 
* '''ローリングリリース'''
 
 
上流の計画に従って、Arch ではアップデートが素早くリリースされ古くなったものは使われなくなります。Linux のオーディオは、ある意味、実験的なパラダイムと言えます。Arch を使うことでお気に入りのオーディオソフトウェアについていくために最新の状態を保つことができます。
 
 
* '''プラグマティック'''
 
 
ソフトウェアのライセンスに関して言うと Arch はあいまいです - 公式リポジトリにはディストリビューションの自由を"汚染"するような、しかしながら人気のある・便利なパッケージが含まれています。これが可能なのは Arch が完全な"ディストリビューション"ではないためです。リリースとは実のところ''基本的なパッケージだけ''が入ったシステムのスナップショットにすぎません。インストールをしなくとも全てのパッケージでライセンスの情報をはっきり確認できます。つまり何をインストールするのか決めるのはユーザー次第だということです。
 
 
* '''ABS'''
 
 
Arch はシンプルな BSD の Ports ライクなソースパッケージシステムを提供しており、ユーザーはビルドスクリプト ("レシピ") を使って簡単にソフトウェアをコンパイルでき、作ったバイナリはパッケージマネージャで管理することができます。こうして、古今東西のソフトウェアを、どこから取得したかは関係なく、システムによってチェックすることが可能です。新しい Linux のオーディオソフトウェアの数は絶えず増え続けているため、ソースからビルドするしかないソフトウェアを使う場合は確実にプラスになります。
 
 
* '''AUR'''
 
 
Arch には"サポートがない"ビルドスクリプトのリポジトリ (AUR) があり、誰でも登録すれば投稿することができ、即席コンパイル可能なパッケージが無数に存在します。Arch Linux のユーザーによって Arch Linux のユーザーのために作られています。何かが公開されたとして、次の日にはもう既に AUR にアップロードされている。あなたのような多くのユーザーには大きな助けになります。
 
 
* '''サードパーティのリポジトリ'''
 
 
すぐ実行できるバイナリパッケージを提供する非公式のリポジトリを使おうとしても Arch は決してユーザーを妨げません。使用するリポジトリの一覧に非公式のリポジトリを追加するだけで使うことができ、そしてその一覧は一つのファイルに記述されています。新しいオーディオリポジトリを見つけたときに "Whory Warthong", "Denim Jacket", "sources.list", "source.keys" などに困惑する心配は要りません。私たちには ''PEBKAC 保護装置''を省略する余裕があります。なぜならユーザーは自分が何をしているのか知っているという前提があるからです。つまり特定のバイナリリポジトリを使うのかどうか決めることに"心配はない"わけです。オーディオソフトウェアのサードパーティの Arch Linux バイナリについては、[[#Arch Linux Pro Audio Project|こちら]]も参照してください。
 
 
'''Q: では私は Arch Linux を (DAW として) 使うべきなのですか?これまでディストリ X を使ってきたんですが..'''
 
 
A: 残念ながら、そのような質問に対する答えは悲観的だとお知らせします。
 
 
''"Arch Linux が Archer (Arch 使い) を見つけるのではない、Archer が Arch Linux を見つけるのだ。" - Hercules on Arch and Archers''
 
   
 
== はじめに ==
 
== はじめに ==
68行目: 32行目:
 
* {{Pkg|calf}}
 
* {{Pkg|calf}}
 
* {{Pkg|dssi}}
 
* {{Pkg|dssi}}
* {{Pkg|guitarix2}}
+
* {{Pkg|guitarix2}}{{Broken package link|置換パッケージ: {{Pkg|guitarix}}}}
   
 
[[Arch User Repository|AUR]] からインストールできる他のパッケージも必要になるかもしれません:
 
[[Arch User Repository|AUR]] からインストールできる他のパッケージも必要になるかもしれません:
* {{AUR|qsampler}} ([[en2:Linuxsampler|Linuxsampler]] も参照)
+
* {{Pkg|qsampler}} ([[Linuxsampler]] も参照)
* {{AUR|tal-plugins-vst-bin}}
 
 
* {{AUR|mhwaveedit}}
 
* {{AUR|mhwaveedit}}
* {{AUR|carla}}
+
* {{Pkg|carla}}
* {{AUR|fluidsynth-dssi}}{{Broken package link|{{aur-mirror|fluidsynth-dssi}}}}
 
 
* {{AUR|rakarrack-git}}
 
* {{AUR|rakarrack-git}}
  +
* {{AUR|xcfa}}{{Broken package link|パッケージが存在しません}}
* {{AUR|xcfa}}
 
* {{AUR|yoshimi}}
+
* {{Pkg|yoshimi}}
 
* {{AUR|wineasio}}
 
* {{AUR|wineasio}}
 
* [https://github.com/abique/vst-bridge vst-bridge]
 
* [https://github.com/abique/vst-bridge vst-bridge]
88行目: 50行目:
 
* ユーザーを ''audio'' [[グループ]]に追加する。
 
* ユーザーを ''audio'' [[グループ]]に追加する。
 
* {{ic|threadirqs}} [[カーネルパラメータ]]を追加する。
 
* {{ic|threadirqs}} [[カーネルパラメータ]]を追加する。
* {{AUR|linux-rt}} カーネルをインストールする。
+
* {{Pkg|linux-rt}} カーネルをインストールする。
 
* [[CPU 周波数スケーリング|cpufreq]] の governor を ''performance'' に設定する。
 
* [[CPU 周波数スケーリング|cpufreq]] の governor を ''performance'' に設定する。
 
* ''noatime'' を[[fstab|ファイルシステムのマウントオプション]]に追加する ([[パフォーマンスの最大化#マウントオプション|パフォーマンスの最大化]]を参照)。
 
* ''noatime'' を[[fstab|ファイルシステムのマウントオプション]]に追加する ([[パフォーマンスの最大化#マウントオプション|パフォーマンスの最大化]]を参照)。
145行目: 107行目:
 
$ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p256 -n3
 
$ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p256 -n3
   
{{pkg|qjackctl}}, {{AUR|cadence}}, {{pkg|patchage}} で JACK の状態を確認したり設定を簡単にすることができます。
+
{{pkg|qjackctl}}, {{Pkg|cadence}}, {{pkg|patchage}} で JACK の状態を確認したり設定を簡単にすることができます。
   
 
{{Note|JACK を設定したら、様々なオーディオアプリケーションで設定をテストしてください。}}
 
{{Note|JACK を設定したら、様々なオーディオアプリケーションで設定をテストしてください。}}
152行目: 114行目:
   
 
==== FireWire ====
 
==== FireWire ====
{{Note|[https://ieee1394.wiki.kernel.org/articles/j/u/j/Juju_Migration_e8a6.html 新しい FireWire スタック]が導入され、HAL が廃止されて [[udev]] にフォーカスがあてられたことにより、ほとんどのことが自動化されたおかげで、する必要があることはあまり多くはありません。デバイスのパーミッションを編集することはありませんが、そのような問題のせいでデバイスが動作しないのではないかと感じたら、{{ic|/lib/udev/rules.d/60-ffado.rules}} を見て、必要ならば {{ic|/etc/udev/rules.d/60-ffado.rules}} を作成して変更を加えてさい。しばしば、このドライバーの開発版である {{AUR|libffado-svn}} でデバイスが動作するようになることもあります。}}
+
{{Note|[https://ieee1394.wiki.kernel.org/articles/j/u/j/Juju_Migration_e8a6.html 新しい FireWire スタック]が導入され、HAL が廃止されて [[udev]] にフォーカスがあてられたことにより、ほとんどのことが自動化されたおかげで、する必要があることはあまり多くはありません。デバイスのパーミッションを編集することはありませんが、そのような問題のせいでデバイスが動作しないのではないかと感じたら、{{ic|/lib/udev/rules.d/60-ffado.rules}} を見て、必要ならば {{ic|/etc/udev/rules.d/60-ffado.rules}} を作成して変更を加えてください。}}
   
 
JACK(2) は FFADO を使うようにビルドされているため、{{Pkg|libffado}} パッケージで FFADO をインストールする必要があります。
 
JACK(2) は FFADO を使うようにビルドされているため、{{Pkg|libffado}} パッケージで FFADO をインストールする必要があります。
178行目: 140行目:
 
jack を設定した後、あなたは Flash の音が鳴らなくなったことに気づくでしょう。
 
jack を設定した後、あなたは Flash の音が鳴らなくなったことに気づくでしょう。
   
jack で flash を使えるようにするには [[AUR]] から {{AUR|libflashsupport-jack}} をインストールする必要があります。
+
jack で flash を使えるようにするには {{AUR|libflashsupport-jack}} パッケージをインストールする必要があります。
   
 
もしくは、jack の動作中に (Flash などの) Alsa のプログラムが音を出せるようにするという、より柔軟な方法を使うこともできます:
 
もしくは、jack の動作中に (Flash などの) Alsa のプログラムが音を出せるようにするという、より柔軟な方法を使うこともできます:
   
まず[[公式リポジトリ]]から {{Pkg|alsa-plugins}} をインストールして Alsa の jack プラグインをインストールしてください。そして {{Ic|/etc/asound.conf}} (システム共通の設定) を編集 (または作成) し以下の行を記述してプラグインを有効にします:
+
まず {{Pkg|alsa-plugins}} パッケージをインストールして Alsa の jack プラグインをインストールしてください。そして {{Ic|/etc/asound.conf}} (システム共通の設定) を編集 (または作成) し以下の行を記述してプラグインを有効にします:
   
 
{{Bc|
 
{{Bc|
223行目: 185行目:
   
 
https://github.com/raboof/realtimeconfigquickscan/blob/master/realTimeConfigQuickScan.pl
 
https://github.com/raboof/realtimeconfigquickscan/blob/master/realTimeConfigQuickScan.pl
 
(もしくは [[AUR]] から {{AUR|realtimeconfigquickscan}} をインストール)
 
   
 
スクリプトの出力によって、システムに足りていないところ、詳しい情報が見られるところを指示してくれます。
 
スクリプトの出力によって、システムに足りていないところ、詳しい情報が見られるところを指示してくれます。
258行目: 218行目:
 
{{note|カーネルにパッチをあてる前に、[http://jackaudio.org/faq/realtime_vs_realtime_kernel.html http://jackaudio.org/faq/realtime_vs_realtime_kernel.html] を見て下さい。}}
 
{{note|カーネルにパッチをあてる前に、[http://jackaudio.org/faq/realtime_vs_realtime_kernel.html http://jackaudio.org/faq/realtime_vs_realtime_kernel.html] を見て下さい。}}
   
=== ABS ===
+
=== カーネルパッケージ ===
 
[[Arch Build System|ABS]] を使って {{Pkg|linux}} にパッチをあててリコンパイルすることができます。ただし、アップデートによってカスタムカーネルが上書きされるため、一番便利な方法とは言えません (少なくとも {{Ic|1=IgnorePkg=linux}} を {{Ic|/etc/pacman.conf}} に追加しなくてはなりません)。
 
 
=== AUR ===
 
   
[[AUR]] から、以下のパッケージを使うことができます:
+
以下のカーネルパッケージを使うことができます:
   
* {{AUR|linux-rt}}
+
* {{Pkg|linux-rt}}
* {{AUR|linux-rt-lts}} (長期サポート、安定リリース)
+
* {{Pkg|linux-rt-lts}} (長期サポート、安定リリース)
* {{AUR|linux-rt-ice}}
 
   
 
上の2つは CONFIG_PREEMPT_RT パッチのあたった標準カーネルです。-ice には一部の人には不要でありながら、他の人にとっては役に立つようなパッチが含まれています。
 
上の2つは CONFIG_PREEMPT_RT パッチのあたった標準カーネルです。-ice には一部の人には不要でありながら、他の人にとっては役に立つようなパッチが含まれています。
297行目: 252行目:
 
}}
 
}}
   
  +
== ヒントとテクニック‎ ==
== Tips and Tricks ==
 
   
 
* 録音をするときは WiFi を無効化してブラウザなどの不要なプログラムを終了してください。WiFi を無効化することで JACK のパフォーマンスが安定するようになったという報告は多数あります。
 
* 録音をするときは WiFi を無効化してブラウザなどの不要なプログラムを終了してください。WiFi を無効化することで JACK のパフォーマンスが安定するようになったという報告は多数あります。
303行目: 258行目:
 
* USB 3 端子に USB のオーディオハードウェアを接続しても正しく動作しないことがあります。USB 2/1 端子に接続してみてください。
 
* USB 3 端子に USB のオーディオハードウェアを接続しても正しく動作しないことがあります。USB 2/1 端子に接続してみてください。
   
* IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at [http://subversion.ffado.org/wiki/IrqPriorities FFADO IRQ Priorities How-To]. If you have a realtime or a recent kernel, you can use {{AUR|rtirq}} to adjust priorities of IRQ handling threads.
+
* IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at [http://subversion.ffado.org/wiki/IrqPriorities FFADO IRQ Priorities How-To]. If you have a realtime or a recent kernel, you can use {{Pkg|rtirq}} to adjust priorities of IRQ handling threads.
   
 
* '''irqbalance''' デーモンは使用しないで下さい、もしくは注意して使って下さい [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.3/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-Interrupt_and_Process_Binding.html]。
 
* '''irqbalance''' デーモンは使用しないで下さい、もしくは注意して使って下さい [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.3/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-Interrupt_and_Process_Binding.html]。
321行目: 276行目:
 
=== M-Audio Delta 1010 ===
 
=== M-Audio Delta 1010 ===
   
M-Audio Delta シリーズのカードは VIA Ice1712 オーディオチップセットを搭載しています。このチップを使用するカードを使うには [[en2:envy24control|envy24control]] プログラムが含まれている alsa-tools パッケージをインストールする必要があります。[[en2:Envy24control|Envy24control]] はハードウェアレベルのミキサー/コントローラーです。alsa-mixer を使うこともできますが無駄に苦労することになります。このセクションに MIDI をセットアップする方法や使い方に関する情報はないので注意してください。
+
M-Audio Delta シリーズのカードは VIA Ice1712 オーディオチップセットを搭載しています。このチップを使用するカードを使うには [[envy24control]] プログラムが含まれている alsa-tools パッケージをインストールする必要があります。[[Envy24control]] はハードウェアレベルのミキサー/コントローラーです。alsa-mixer を使うこともできますが無駄に苦労することになります。このセクションに MIDI をセットアップする方法や使い方に関する情報はないので注意してください。
   
 
ミキサーアプリケーションを開いて下さい:
 
ミキサーアプリケーションを開いて下さい:
 
$ envy24control
 
$ envy24control
   
This application can be more than a bit confusing; see [[en2:envy24control|envy24control]] for guidance
+
This application can be more than a bit confusing; see [[envy24control]] for guidance
 
on its use. That said, here is a very simple working setup for multitracking with Ardour.
 
on its use. That said, here is a very simple working setup for multitracking with Ardour.
   
470行目: 425行目:
 
=== RME Babyface ===
 
=== RME Babyface ===
   
{{Pkg|alsa-utils}}, {{Pkg|jack2}}, {{AUR|linux-rt}} を使うことで低遅延 (~5ms) で動作します。標準カーネルで ALSA だけを使用した場合、レイテンシを低くすると音が割れることがあります。
+
{{Pkg|alsa-utils}}, {{Pkg|jack2}}, {{Pkg|linux-rt}} を使うことで低遅延 (~5ms) で動作します。標準カーネルで ALSA だけを使用した場合、レイテンシを低くすると音が割れることがあります。
   
 
動作させるには、Babyface のファームウェアバージョンが 200 以上である必要があります。バージョン 200 から Class Compliant Mode が導入されています。Class Compliant Mode に入るには USB で Babyface をコンピュータに接続するときに "Select" と "Recall" ボタンを押して下さい。それで認識されるはずです。
 
動作させるには、Babyface のファームウェアバージョンが 200 以上である必要があります。バージョン 200 から Class Compliant Mode が導入されています。Class Compliant Mode に入るには USB で Babyface をコンピュータに接続するときに "Select" と "Recall" ボタンを押して下さい。それで認識されるはずです。
498行目: 453行目:
 
{{Note|Steinberg does not forbid redistribution of resulting products, nor dictate what license they can be under. There are many GPL-licensed VST plug-ins. As such, distributing binary packages of software built with these restricted headers is '''not''' a problem, because the headers are simply '''buildtime dependencies'''.}}
 
{{Note|Steinberg does not forbid redistribution of resulting products, nor dictate what license they can be under. There are many GPL-licensed VST plug-ins. As such, distributing binary packages of software built with these restricted headers is '''not''' a problem, because the headers are simply '''buildtime dependencies'''.}}
   
== Arch Linux Pro Audio Project ==
+
== Linux と Arch Linux Pro Audio のニュース ==
  +
* [https://www.linux.com/learn/tutorials/607117-build-a-serious-multimedia-production-workstation-with-arch-linux Build a Serious Multimedia Production Workstation with Arch] - Linux.com の記事 (2012年7月)
   
  +
* [https://www.linuxjournal.com/content/arch-tale An Arch Tale] - 元ミュージシャンで作家の Dave Phillips によって書かれた記事 (2011年10月)
Yes, we have one. Think of "Planet CCRMA" or "Pro Audio Overlay", less the academic connotations of the former: [http://archaudio.org ArchAudio].
 
   
  +
* [http://www.itwire.com/opinion-and-analysis/open-sauce/36698-from-windows-to-linux-a-sound-decision From Windows to Linux: a sound decision] - Geoff "songshop" Beasley のインタビュー (2010年2月)
What this means is that the repositories are add-ons, i.e you need to have a running, sane Arch Linux installation.
 
   
  +
== Mailing lists ==
It is a relatively new effort although the initiative has been around since
 
2006/2007.
 
   
  +
* [https://lists.archlinux.org/listinfo/arch-proaudio Arch Linux Pro-audio] Discussion about real-time multimedia, including (semi-)pro audio and video
歴史: https://bbs.archlinux.org/viewtopic.php?id=30547
 
  +
* [https://lists.linuxaudio.org/listinfo/linux-audio-dev Linux Audio Developer] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of mainly developers.
  +
* [https://lists.linuxaudio.org/listinfo/linux-audio-user Linux Audio User] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of users and developers.
   
  +
== IRC ==
For all your Arch- and ArchAudio-related audio issues hop on to '''IRC''': #archaudio @ Freenode
 
   
  +
* [ircs://irc.libera.chat/archlinux-proaudio #archlinux-proaudio] - Arch Linux pro-audio channel
== Linux と Arch Linux Pro Audio のニュース ==
 
  +
* [ircs://irc.libera.chat/lau #lau] - General Linux Audio channel for users
* [https://www.linux.com/learn/tutorials/607117-build-a-serious-multimedia-production-workstation-with-arch-linux Build a Serious Multimedia Production Workstation with Arch] - Linux.com の記事 (2012年7月)
 
  +
* [ircs://irc.libera.chat/lad #lad] - General Linux Audio channel for developers
  +
* [ircs://irc.libera.chat/jack #jack] - Development and support related to JACK audio system
  +
* [ircs://irc.libera.chat/lv2 #lv2] - Development and support related to the LV2 plugin format
  +
* [ircs://irc.libera.chat/ardour #ardour] - Discussion and support relating to the Ardour DAW
  +
* [ircs://irc.libera.chat/opensourcemusicians #opensourcemusicians] - Large general OSS musician discussion channel
   
  +
== 参照 ==
* [http://www.linuxjournal.com/content/arch-tale An Arch Tale] - 元ミュージシャンで作家の Dave Phillips によって書かれた記事 (2011年10月)
 
   
  +
* [[アプリケーション一覧#音声|音声]] A comprehensive list of audio applications on Arch Linux
* [http://www.itwire.com/opinion-and-analysis/open-sauce/36698-from-windows-to-linux-a-sound-decision From Windows to Linux: a sound decision] - Geoff "songshop" Beasley のインタビュー (2010年2月)
 
  +
* [[リアルタイムカーネル]]
  +
* AUR meta packages: {{AUR|proaudio-meta}}, {{AUR|soundfonts-aur-meta}}, {{AUR|lv2-plugins-aur-meta}}
  +
* User repositories: [[非公式ユーザーリポジトリ#heftig|heftig]], [[非公式ユーザーリポジトリ#proaudio|proaudio]]
  +
* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] A list of software and resources for professional audio/video/live events production on the Linux platform
  +
* [https://wiki.linuxfoundation.org/realtime/start Realtime] The Linux Foundation wiki on the PREEMPT_RT patches
  +
* [https://bbs.archlinux.org/viewforum.php?id=32 Multimedia and Games / Arch Linux Forums]
  +
* [https://web.archive.org/web/20180929105149/http://archaudio.org/ ArchAudio] - the now legacy - pro-audio related package repository overlay ([https://bbs.archlinux.org/viewtopic.php?id=30547 some history])

2023年8月21日 (月) 20:09時点における最新版

関連記事

この記事では、recording、ミキシングや再生、さらには合成や音の生成に使うためのシステムの設定方法について説明します。これらの活動はprofessional audio(プロオーディオ)という用語に包含され、一般的に低 latency パフォーマンスを必要とします。

映像制作やゲームに比べれば、ほとんどの用途でそれほどハイエンドなハードウェアは必要ありません。2012 年後半以降に製造されたほとんどのコンピュータは、プロオーディオ用に最適化することができます。詳しくは Ardour マニュアルの The Right Computer System for Digital Audio のページを参照してください。

はじめに

主要なプロオーディオアプリケーションはすでに公式やコミュニティーの Arch Linux リポジトリから利用することができます。リポジトリにないアプリケーションについては、バイナリリポジトリを追加するか (下を参照) もしくはコンパイルしたいなら AUR を検索してください。上流のリリースを直接ビルドしてもいいですが、それは LFS を動かすのとあまり変わりありません。

まずは JACK をインストールしてください。

フル機能のプロオーディオシステムを作るために以下のパッケージからインストールし始めると良いでしょう:

AUR からインストールできる他のパッケージも必要になるかもしれません:

アプリケーション一覧/マルチメディア#オーディオシステムアプリケーション一覧/マルチメディア#サウンド編集も見て下さい。

システムの設定

以下のシステムの最適化がよく使われています:

リアルタイムの設定は大部分が自動化されています。リアルタイムアクセスのために /etc/security/limits.conf などのファイルを編集する必要はもうありません。とはいえ、設定を変更する必要があるときは、/etc/security/limits.d/99-audio.conf/usr/lib/udev/rules.d/40-hpet-permissions.rules を見て下さい (これらのファイルは jackjack2 に含まれています)。さらに、RTC の最大割り込み周波数 (デフォルトは 64 Hz) を増やすには起動時に次を実行するようにしてください:

echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq

デフォルトでは、swappiness によって定義されるスワップの頻度は 60 に設定されています。この数字を 10 にまで減らすことで、システムはディスクへの書き込みをしにくくなります。また、ファイルの変更を監視してアプリケーションにそれを報告する inotify というものがあります。大量の音声データを扱う場合、多くの対象を監視する必要がでるため、監視対象の上限を増やす必要があります。どちらの設定も /etc/sysctl.d/99-sysctl.conf で調整ができます。

vm.swappiness = 10
fs.inotify.max_user_watches = 524288

PCI サウンドカードの PCI レイテンシタイマを最大化して他の全ての PCI 周辺機器のレイテンシタイマを上げるのも効果があります (デフォルトは 64 です)。

$ setpci -v -d *:* latency_timer=b0
$ setpci -v -s $SOUND_CARD_PCI_ID latency_timer=ff # eg. SOUND_CARD_PCI_ID=03:00.0 (下を参照)

SOUND_CARD_PCI_ID は次のようにして取得できます:

$ lspci ¦ grep -i audio
03:00.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
03:01.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)

チェックリスト

以下はマルチメディアシステムが動作しているかの確認です:

  • サウンドを正しく設定しましたか?ALSAOSS を参照して下さい。
$ speaker-test
  • audio グループに入っていますか?ALSAOSS を参照して下さい。
$ groups | grep audio
  • PulseAudio や OSS などがデバイスを認識していますか?
$ lsof +c 0 /dev/snd/pcm* /dev/dsp*

もしくは

$ fuser -fv /dev/snd/pcm* /dev/dsp*  
  • PAM-security や realtime が問題なく動作していますか?

参照: リアルタイムプロセス管理#PAM が有効なログイン (KDM, GDM, Slim を使っていない場合は特に注意をしてください)

  • 全ての設定をした後に再起動しましたか?

JACK

ここでの目的はあなたの持っているハードウェアにあわせて、バッファサイズとピリオドの最適な組み合わせを見つけることです。Frames/Period = 256 が通常の初期値です。オンボードや USB デバイスを使っている場合は、Periods/Buffer = 3 を試してみて下さい。基本的に使われる値は以下のどれかです: 256/3, 256/2, 128/3。

また、サンプルレートをハードウェアのサンプルレートと一致させて下さい。デバイスがサポートしているサンプル・ビットレートを確認するには:

$ cat /proc/asound/card0/codec#0

card0codec#0 はあなたの使っているデバイスに置き換えて下さい。Extended IDrates または VRA を見て下さい。今日の多くのデバイスで共通のサンプルレートは 48000 Hz です。他に 44100 Hz や 96000 Hz も一般的なレートです。

外部の装置を使ってレコーディングやシーケンシングをする場合はたいてい、リアルタイムが必要不可欠になります。また、priority を最大に (少なくとも /etc/security/limits.d/99-audio.conf に定義するシステム制限よりも10は低く) 設定すると良いでしょう。

あなたの設定したオプションを使って jack を起動してください:

$ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p256 -n3

qjackctl, cadence, patchage で JACK の状態を確認したり設定を簡単にすることができます。

ノート: JACK を設定したら、様々なオーディオアプリケーションで設定をテストしてください。

参照: http://w3.linux-magazine.com/issue/67/JACK_Audio_Server.pdf

FireWire

ノート: 新しい FireWire スタックが導入され、HAL が廃止されて udev にフォーカスがあてられたことにより、ほとんどのことが自動化されたおかげで、する必要があることはあまり多くはありません。デバイスのパーミッションを編集することはありませんが、そのような問題のせいでデバイスが動作しないのではないかと感じたら、/lib/udev/rules.d/60-ffado.rules を見て、必要ならば /etc/udev/rules.d/60-ffado.rules を作成して変更を加えてください。

JACK(2) は FFADO を使うようにビルドされているため、libffado パッケージで FFADO をインストールする必要があります。

FireWire デバイスを動作させることができるかテストするには:

  • 適切なカーネルモジュールをロード:
# modprobe firewire-core firewire-ohci
  • チップセットがデバイスを初期化できるか確認:

http://www.ffado.org/?q=node/622

  • チップセットにデバイスを動作させることができるキャパシティがあるか確認:

確実なことは言えません、Ricoh のチップセットは特にそうです (クロスプラットフォームの問題)。大抵の場合、あなたのデバイスは問題なく動作するでしょう。しかしながら、時には変な癖が起こるかもしれません。運が悪いと、地獄を見ることになるでしょう。

ノート: Takashi Sakamoto が alsa-devel メーリングリストに投稿した メール によれば、jackd で FireWire バックエンドを使用した場合、DICE モジュールが利用できません。以下のような行が表示された場合:
Warning (dice_eap.cpp)[1811] read: No routes found. Base 0x7, offset 0x4000
"snd_dice" モジュールを無効化してください。

Jack Flash

jack を設定した後、あなたは Flash の音が鳴らなくなったことに気づくでしょう。

jack で flash を使えるようにするには libflashsupport-jackAUR パッケージをインストールする必要があります。

もしくは、jack の動作中に (Flash などの) Alsa のプログラムが音を出せるようにするという、より柔軟な方法を使うこともできます:

まず alsa-plugins パッケージをインストールして Alsa の jack プラグインをインストールしてください。そして /etc/asound.conf (システム共通の設定) を編集 (または作成) し以下の行を記述してプラグインを有効にします:

# convert alsa API over jack API
# use it with
# % aplay foo.wav

# use this as default
pcm.!default {
    type plug
    slave { pcm "jack" }
}

ctl.mixer0 {
    type hw
    card 1
}

# pcm type jack
pcm.jack {
    type jack
    playback_ports {
        0 system:playback_1
        1 system:playback_2
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
}

コンピュータを再起動する必要はありません。alsa の設定ファイルを編集して、jack を起動してください。

Quickscan Jack スクリプト

おそらく、ほとんどの人は jack をリアルタイムモードで実行したいと思うでしょうが、それをするためには押さなくてはいけないスイッチやボタンが大量にあります。

システムを診断して jack をリアルタイムモードで正しく実行するのに欠けているものが何かを素早く見つける方法として Quickscan スクリプトを実行するのが良いでしょう。

https://github.com/raboof/realtimeconfigquickscan/blob/master/realTimeConfigQuickScan.pl

スクリプトの出力によって、システムに足りていないところ、詳しい情報が見られるところを指示してくれます。

デスクトップ効果と JACK

上のシステムの設定セクションに書かれている要素と realTimeConfigQuickScan.pl で確認できる設定に加えて、デスクトップ環境によって xruns や JACK の音声に問題が発生することもあります。特にメモリや CPU の消費が激しいデスクトップ効果を利用するデスクトップで発生します。JACK を使用する際はデスクトップ効果を無効化することを推奨します。軽量なデスクトップやウィンドウマネージャを使うことで最適なパフォーマンスを得ることができるでしょう。

一般的なサンプル

一般的な設定例はここにあります。

リアルタイムカーネル

しばらく前から、標準の Linux カーネルでリアルタイムの利用に十分足りることが証明されています。標準のカーネル (オプション CONFIG_PREEMPT=y、Arch ではデフォルト) は最悪の場合でも 10ms 以下のレイテンシ (ハードウェアでの割り込みの発生と、それに対応する割り込みスレッドが実行されるまでの間の時間) で動作することが可能ですが、デバイスドライバーによってはレイテンシがそれよりもかなり悪化する可能性があります。そのため使用しているハードウェアやドライバー (と要件) によっては、強力なリアルタイム性能を持ったカーネルが必要になるかもしれません。

Ingo Molnar と Thomas Gleixner による RT_PREEPMT パッチは、プロフェッショナルオーディオから工業制御の分野まで、ハードなリアルタイム処理を要求するアプリケーションにとって興味深い選択肢です。ほとんどのオーディオ特化 Linux ディストリビューションはこのパッチを適用したカーネルを載せています。realtime-preemptible カーネルは IRQ 処理スレッドのプライオリティを調整することを可能にして負担を気にしないスムーズなオーディオを実現するのに役立ちます。

自分でカーネルをコンパイルするつもりならば、モジュールやオプションを削除すれば"スリムで強靭な"カーネルになるとは限らないことを覚えておいて下さい。カーネルイメージのサイズが減るというのは確かですが、今日のシステムにおいては、1995年の頃とは違ってあまり大きな問題ではないのです。

どちらにしろ、以下を確認してください:

  • Timer Frequency1000Hz に設定 (CONFIG_HZ_1000=y; MIDI を使わない場合は無視してかまいません)
  • APMDISABLED (CONFIG_APM=n; ハードウェアによっては厄介な問題があります - x86_64 ではデフォルト)

If you truly want a slim system, we suggest you go your own way and deploy one with static /devs. You should, however, set your CPU architecture. Selecting "Core 2 Duo" for appropriate hardware will allow for a good deal of optimisation, but not so much as you go down the scale.

(リアルタイム) カーネルの一般的な問題:

  • ハイパースレッディング (if you suspect, disable in BIOS)

すぐに実行・コンパイルできるパッチ済みのカーネルが ABS と AUR にあります。

ノート: カーネルにパッチをあてる前に、http://jackaudio.org/faq/realtime_vs_realtime_kernel.html を見て下さい。

カーネルパッケージ

以下のカーネルパッケージを使うことができます:

上の2つは CONFIG_PREEMPT_RT パッチのあたった標準カーネルです。-ice には一部の人には不要でありながら、他の人にとっては役に立つようなパッチが含まれています。

参照: Real-Time Linux Wiki

MIDI

MIDI ハードウェアを使う場合は ALSA MIDI ドライバーをロードして下さい。以下の内容で /etc/modules-load.d/alsamidi.conf ファイルを作成することで、起動時に MIDI ドライバーがロードされるように設定できます:

snd_seq_midi

MIDI を使う時は a2j をインストールすることを強く推奨します (a2jmidid)。alsa midi と jack midi のブリッジです。a2j を使うことで alsa midi にしか対応していないアプリケーションを jack midi しか使えないアプリケーションに接続することができます。また、Laditray で a2j を起動・停止できます。

参照: JACK Audio Connection Kit#MIDI

環境変数

If you install things to non-standard directories, it is often necessary to set environment path variables so that applications know where to look (for plug-ins and other libraries). This usually affects only VST since users might have a Wine or external Windows location.

We would usually not have Linux plug-ins (LADSPA, LV2, DSSI, LXVST) beyond standard paths, so it is not necessary to export them. But if you do, be sure to include those standard paths as well since Arch does not do anything for dssi or ladspa, and some applications like dssi-vst will not look anywhere else if it finds predefined paths.

~/.bashrc
...
export VST_PATH=/usr/lib/vst:/usr/local/lib/vst:~/.vst:/someother/custom/dir
export LXVST_PATH=/usr/lib/lxvst:/usr/local/lib/lxvst:~/.lxvst:/someother/custom/dir
export LADSPA_PATH=/usr/lib/ladspa:/usr/local/lib/ladspa:~/.ladspa:/someother/custom/dir
export LV2_PATH=/usr/lib/lv2:/usr/local/lib/lv2:~/.lv2:/someother/custom/dir
export DSSI_PATH=/usr/lib/dssi:/usr/local/lib/dssi:~/.dssi:/someother/custom/dir

ヒントとテクニック‎

  • 録音をするときは WiFi を無効化してブラウザなどの不要なプログラムを終了してください。WiFi を無効化することで JACK のパフォーマンスが安定するようになったという報告は多数あります。
  • USB 3 端子に USB のオーディオハードウェアを接続しても正しく動作しないことがあります。USB 2/1 端子に接続してみてください。
  • IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at FFADO IRQ Priorities How-To. If you have a realtime or a recent kernel, you can use rtirq to adjust priorities of IRQ handling threads.
  • irqbalance デーモンは使用しないで下さい、もしくは注意して使って下さい [1]
  • デーモンやプロセスによって突然 xruns が発生することがあります。必要ないのであれば kill しちゃってください。問答無用です。
$ ls /var/run/daemons
$ top # or htop, ps aux, whatever you are comfortable with
$ killall -9 $processname
# systemctl stop $daemonname
  • If you are facing a lot of xruns especially with nvidia, disable your GPU throttling. This can be done via the card's control applet and for nvidia it is "prefer maximum performance" (thanks to a mail in LAU by Frank Kober).

ハードウェア

M-Audio Delta 1010

M-Audio Delta シリーズのカードは VIA Ice1712 オーディオチップセットを搭載しています。このチップを使用するカードを使うには envy24control プログラムが含まれている alsa-tools パッケージをインストールする必要があります。Envy24control はハードウェアレベルのミキサー/コントローラーです。alsa-mixer を使うこともできますが無駄に苦労することになります。このセクションに MIDI をセットアップする方法や使い方に関する情報はないので注意してください。

ミキサーアプリケーションを開いて下さい:

$ envy24control

This application can be more than a bit confusing; see envy24control for guidance on its use. That said, here is a very simple working setup for multitracking with Ardour.

  1. On the "Monitor Inputs" and "Monitor PCMs" tabs, set all monitor inputs and monitor PCM's to around 20.
  2. On the "Patchbay / Router" tab, set all to PCM out.
  3. On the "Hardware Settings" tab, verify that the Master Clock setting matches what is set in Qjackctl. If these do not match you will have xruns out of control!

M-Audio Fast Track Pro

The M-Audio Fast Track Pro is an USB 4x4 audio interface, working at 24bit/96kHz. Due to limitation of USB 1, this device requires additional setup to get access to all its features. Device works in one of two configuration:

  • Configuration 1, or "Class compliant mode" - with reduced functionality, only 16bit, 48kHz, analogue input (2 channels) and digital/analogue output (4 channels).
  • Configuration 2 - with access to all features of interface.

Currently with stock kernel it runs in configuration 2, but if you want to make sure in what mode you are, you can check kernel log for entries:

usb-audio: Fast Track Pro switching to config #2
usb-audio: Fast Track Pro config OK

The interface also needs extra step of cofiguration to switch modes. It is done using option device_setup during module loading. The recommended way to setup the interface is using file in modprobe.d:

/etc/modprobe.d/ftp.conf
options snd_usb_audio vid=0x763 pid=0x2012 device_setup=XXX index=YYY enable=1

where vid and pid are vendor and product id for M-Audio Fast Track Pro, index is desired device number and device_setup is desired device setup. Possible values for device_setup are:

デバイスモード
device_setup 値 ビット深度 周波数 アナログ出力 デジタル出力 アナログ入力 デジタル入力 IO モード
0x0 16 bit 48kHz + + + + 4x4
0x9 24 bit 48kHz + + + - 2x4
0x13 24 bit 48kHz + + - + 2x4
0x5 24 bit 96kHz * * * * 2x0 or 0x2

The 24 bit/96kHz mode is special: it provides all input/output, but you can open only one of 4 interfaces at a time. If you for example open output interface and then try to open second output or input interface, you will see error in kernel log:

cannot submit datapipe for urb 0, error -28: not enough bandwidth

which is perfectly normal, because this is USB 1 device and cannot provide enough bandwidth to support more than single (2 channel) destination/source of that quality at a time.

Depending on the value of index it will setup two devices: hwYYY:0 and hwYYY:1, which will contain available inputs and outputs. First device is most likely to contain analog output and digital input, while second one will contain analog input and digital output. To find out which devices are linked where and if they are setup correctly, you can check /proc/asound/cardYYY/stream{0,1} . Below is list of important endpoints that will help in correctly identifying card connections (it easy to mistake analog and digital input or output connections before you get used to the device):

EP 3 (analgoue output = TRS on back, mirrored on RCA outputs 1 and 2 on back)
EP 4 (digital output = S/PDIF output on back, mirrored on RCA outputs 3 and 4 on back)
EP 5 (analogue input = balanced TRS or XLR microphone, unbalanced TS line on front)
EP 6 (digital input = S/PDIF input on back)

This .asoundrc file enables 24-bit IO on the fast-track pro (and I'm sure it could be modified to work with other 3-byte usb devices) within the context of jack's 32-bit interface while routing default alsa traffic to jack outputs on the audio interface. Alsa will be in S24_3BE mode but jack can plug S32_LE data in and out of the interface and other alsa programs will be able to plug almost anything into jack.

### ~/.asoundrc
### default alsa config file, for a fast-track pro configured in 24-bit mode as so:
### options snd_usb_audio device_setup=0x9
### invoke jack with: (if you use -r48000, change the rate in the plugs as well)
### $jackd -dalsa -P"hw:Pro" -C"hw:Pro,1" -r44100

## setup input and output plugs so jack can write S24_3BE data to the audio interface

pcm.maud0 {
	type hw
	card Pro
	 }

#jack_out plug makes sure that S32_LE data can be written to hw:Pro
pcm.jack_out{
	type plug
	format S32_LE
	channels 2
	rate 44100
	slave pcm.maud0
}

pcm.maud1 {
	type hw
	card Pro
	device 1
}
## jack_in plug makes sure that hw:Pro,1 can read S32_LE data
pcm.jack_in {
	type plug
	format S32_LE
	channels 2
	rate 44100
	slave pcm.maud1
}
#####
# route default alsa traffic through jack system io

pcm.jack {
    type jack
    playback_ports {
        0 system:playback_1
        1 system:playback_2
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
} 
pcm.amix {
	type asym
	playback.pcm "jack"
	capture.pcm "jack"
	}
pcm.!default {
	type plug
	slave.pcm amix
}

PreSonus Firepod

  1. Startup: Either from command line or QjackCtl, the driver is called firewire.
  2. Specs: The card contains 8/8 preamp'ed XLR plus a stereo pair, in total 10 channels.
  3. Linking: Cards can be linked together without any problems.
  4. Hardware Settings: Nothing particular, tweak the settings in QjackCtl to your likings.

Volume levels are hardware and routing can be done through QjackCtl, even with more cards linked together, this is not a problem. The ffadomixer does not work with this card yet, hopefully in the future we can control more aspects of the card through a software interface like that.

PreSonus AudioBox USB

  1. Startup: It is called "USB" by ALSA.
  2. Specs: Two mono TRS+XLR in, two mono TRS out, MIDI in and out, plus separate stereo headphone jack. Knob controls for both inputs, for main out, and for headphone, four in all.
  3. Hardware: Works very well, audio and MIDI too. No software mixer controls at all.

Tascam US-122

この内容は US-122L には当てはまりません。

  1. 必要なパッケージ: alsa-tools alsa-firmware fxloadAUR
  2. udev ルール: 以下の rules ファイルを作成して、udev ルールをリロードしてください:
/etc/udev/rules.d/51-tascam-us-122.rules
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8006", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us122fw.ihx'"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="8007", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"

ユニットを接続すれば、デバイスは動作するはずです。ソフトウェアミキサーコントロールはありません。

RME Babyface

alsa-utils, jack2, linux-rt を使うことで低遅延 (~5ms) で動作します。標準カーネルで ALSA だけを使用した場合、レイテンシを低くすると音が割れることがあります。

動作させるには、Babyface のファームウェアバージョンが 200 以上である必要があります。バージョン 200 から Class Compliant Mode が導入されています。Class Compliant Mode に入るには USB で Babyface をコンピュータに接続するときに "Select" と "Recall" ボタンを押して下さい。それで認識されるはずです。

認識されているか確認するには:

grep -i baby /proc/asound/cards

Class Compliant Mode に関する詳細は RME のウェブサイトを見て下さい。全ての機能を説明した PDF が存在します。

The Babyface does not need any special Jack Settings. But if you want to use the built in MIDI In/Out then you need to set the "MIDI Driver" to "seq" and optionally disable "Enable Alsa Sequencer Support" to use it in combination with other MIDI Devices (a USB Midi Keyboard for example).

制限ソフトウェア

Steinberg の SDK

It is very clear - we can distribute neither the VST nor the ASIO headers in binary package form. However, whenever you are building a program which would host Windows .dll VST plug-ins, check for the following hints (that do not require use of any SDK):

  • dssi-vst
  • fst
  • vestige

With that said, if you are building a program which would host native .so VST plug-ins, then there is no escape. For such cases, Arch yet again allows us to maintain a uniform local software database. We can "install" the SDK system-wide - you simply have to download it yourself and place it in the packaging directory.

Get them from AUR

ノート: Steinberg does not forbid redistribution of resulting products, nor dictate what license they can be under. There are many GPL-licensed VST plug-ins. As such, distributing binary packages of software built with these restricted headers is not a problem, because the headers are simply buildtime dependencies.

Linux と Arch Linux Pro Audio のニュース

  • An Arch Tale - 元ミュージシャンで作家の Dave Phillips によって書かれた記事 (2011年10月)

Mailing lists

  • Arch Linux Pro-audio Discussion about real-time multimedia, including (semi-)pro audio and video
  • Linux Audio Developer The Linux pro-audio related mailing list with much traffic and a huge subscriber community of mainly developers.
  • Linux Audio User The Linux pro-audio related mailing list with much traffic and a huge subscriber community of users and developers.

IRC

  • #archlinux-proaudio - Arch Linux pro-audio channel
  • #lau - General Linux Audio channel for users
  • #lad - General Linux Audio channel for developers
  • #jack - Development and support related to JACK audio system
  • #lv2 - Development and support related to the LV2 plugin format
  • #ardour - Discussion and support relating to the Ardour DAW
  • #opensourcemusicians - Large general OSS musician discussion channel

参照