Ubuntu Weekly Recipe

第159回 オーディオインターフェイスを使う ― USB/PCIバス/PCI-Expressバス編

この記事を読むのに必要な時間:およそ 5 分

ALSAのカード認識順の変更

標準の出力先は,ALSAに認識されているサウンドデバイスのうち,カード0となっているものです。そのため,USB接続のサウンドデバイスがカード0として認識されるように設定してみましょう。

この設定はALSAカーネルモジュールに関するもので,特定のファイルに記述することで有効となります。設定ファイルは,パス「/etc/modprobe.d」以下に配置します注6⁠。

具体的な操作は以下のとおりです。

  1. 端末で「$ gksudo gedit /etc/modprobe.d/alsa-order.conf;」を実行します注7
  2. パスワードを入力すると,テキストエディタが開きます
  3. テキストエディタに「options snd-usb-audio index=0」を記述します
  4. 保存してテキストエディタを終了します
  5. 端末で「$ gksudo alsa reload;」を実行します
  6. パスワードを入力すると,ALSAサブシステムが再起動します

先ほど紹介したコマンド「$ aplay -l;」を実行してみましょう。USB接続のサウンドデバイスがカード0に設定されるはずです。そして,マザーボードに載っているサウンドデバイスはカード1以降となったかと思います。

しかしこの方法,あまりおすすめできません。USB接続のサウンドデバイスを接続している,接続していないに関わらず,マザーボードに載っているサウンドデバイスは常にカード1以降となります。USB接続のサウンドデバイスを接続していない限りは,カード0に相当するサウンドデバイスがない,つまり標準の出力先がないということになりますので,音声を出力できなくなります。しかもカーネルモジュールに関する設定ですので,この場合,システム全体で標準の音声出力が使えなくなります。これは結構深刻な事態ですので,今回は別な設定方法を紹介しましょう。

それに先立ち,先程の設定を解除しておきます。操作方法は以下のとおりです。

  1. 端末で「$ gksudo rm /etc/modprobe.d/alsa-order.conf;」を実行し,先ほど作成したファイルを削除します
  2. 続けて「$ gksudo alsa reload;」を実行し,ALSAサブシステムを再起動します
  3. 「$ aplay -l;」を実行して,カード認識順番が元に戻っていることを確認できます

さて,ALSAサブシステムはログインユーザ毎に設定ファイルを作成することができます。そのため,システム全体に影響を及ぼすことなく,自分が標準で使用するサウンドデバイスを指定できます。

設定ファイル名は「.asoundrc」です。これをユーザのホームディレクトリの直下に配置します。記述する内容は今回の場合,⁠defaults.pcm.card カード番号」となります。⁠カード番号」には,コマンド「$ aplay -l;」の出力内容を参照して,標準に指定したいカード番号を入れて下さい。

以下に,端末での操作方法を紹介します。Nautilusファイルマネジャーでも同様の操作ができるため,お好みの方法をお使いください。

  1. コマンド「$ gedit ~/.asoundrc」を実行し,テキストエディタを開きます。⁠~」はログインユーザのホームディレクトリ,例えばユーザ「mocchi」に対してはパス「/home/mocchi」を示します
  2. 今回は例として,カード1を標準に指定します。テキストエディタに「defaults.pcm.card 1」を記述してください
  3. 保存してテキストエディタを終了します

これで設定は終了です。先ほどよりも簡単ですね。ホームディレクトリに対する操作なのでテキストを編集する際にパスワードを入力することもありませんし,ALSAサブシステムを再起動する必要もありません。

さあ,Adobe Flash Playerを使ったストリーミングサービスなどで音声を出力してみましょう。おそらく,カード1で指定したデバイスから音声が出るはずです。もし出ないようであれば,ブラウザやアプリケーションを再度起動してみてください。接続するサウンドデバイスを変更した場合はデバイスの認識順番が変わっている場合があるため,テキストエディタでこの「.asoundrc」の記述内容を変更してください。

録音に関しては,大抵のアプリケーションが入力元デバイスを選択できるようになっているため,おそらく問題ないかと思います。

注6
ここに配置されたファイルの内容は,システムが起動した際に読み込まれ,ALSAに限らず,一般的なカーネルモジュールの設定に反映されます。
注7
以前はファイル「/etc/modprobe.d/alsa-base.conf」を編集するのが一般的でしたが,これはパッケージ「alsa-base」がインストールするファイルであり,編集による不慮の事故を防ぐために,自分で設定ファイルを用意することを推奨します。

Xubuntuのサウンドデバイス設定アプレット「xfce4-mixer」

サウンドデバイスが複数の出力/入力を持っている場合は,XFCEのミキサーアプレット(xfce4-mixer)を使い,サウンドデバイスの出力先や入力元を切り替えます。

図7 XFCEミキサーの画面。サウンドデバイスをコントロール単位で設定することができる

図7 XFCEミキサーの画面。サウンドデバイスをコントロール単位で設定することができる

「再生」タブや「録音」タブでマスター音量を調整できるほか,⁠スイッチ」タブで入力元を選択できます。

注8
上図は,筆者が以前,Ubuntu日本語フォーラムでXubuntuのサウンドサポートをした際にいただいたスクリーンショットです。

無理せずPulseAudioを使うのも手です

長々と述べましたが,ここで挙げたXubuntu用の設定は,gstreamer-propertiesの設定も含め,すべてPulseAudioがやってくれます。XubuntuでもPulseAudioをインストールすることができますので,設定変更が面倒くさい方や画面で操作をしたい方は,無理せずPulseAudioをインストールしましょう。

今回は,USB接続やPCI/PCI-Expressバス接続のものを紹介しました。次回は,Firewire接続のオーディオインターフェイスの導入を紹介します。

著者プロフィール

坂本貴史(さかもとたかし)

Ubuntuのマルチメディア編集環境であるUbuntu Studioのユーザ。主にUbuntu日本コミュニティとUbuntu Studioコミュニティで活動。いつかユーザ同士で合作するのが夢。