Ubuntu Weekly Recipe

第144回UbuntuでOpen Sound Systemを使う

LinuxのサウンドサブシステムはALSAが有名ですが、ひと昔前まではOpen Sound Systemも使われていました。Ubuntu日本語フォーラムでもいくつか投稿があったため、今回は、UbuntuでOpen Sound Systemを使う方法を解説していきます。

Open Sound Systemとは

Open Sound SystemはUNIXベースのプラットフォームで使うことができるサウンドサブシステムで、現在はフィンランドの4 Front Technologiesが開発をしています。Open Sound Systemは一時期、ライセンスを制限したプロプライエタリなコードとしてリリースされていたため[1]⁠、これを嫌ったLinuxコミュニティはALSAの開発を進めました。そのため、現在のLinuxではALSAが主流となっています。いずれもハードウェアを直接制御するドライバ(カーネルモジュール)を含むため、⁠2種類の異なるドライバが存在する」と考えると良いでしょう。

Open Sound Systemの最新はバージョン4です。4 Front Technologies社のウェブサイトで、2009年10月25日付けの対応デバイスの一覧表を確認できます。ALSAも対応しているサウンドデバイスがほとんどですが、プロプライエタリ時代の名残りか、Open Sound Systemでしか使うことのできないデバイスもあります。また注意点として、Open Sound Systemのバージョン4はMIDI機能[2]をまだ実装していないため、MIDI機能を使いたい場合はバージョン3を使う必要があります。

なお、Open Sound Systemの略称はOpen Source Softwareと同じ「OSS」なので、本稿では混同を防ぐために、少々長いですがOpen Sound Systemと記述していきます。

UbuntuとOpen Sound System

Lucidまでのリリースでは、カーネルイメージにOpen Sound Systemのバージョン3が含まれています。デフォルトではALSAが利用されるよう、Open Sound Systemに関連するモジュールはブラックリスト(読み込まないカーネルモジュールのリスト)に列挙されており、あくまで「含まれているだけ」の状態で、一切読み込まれないように設定されています。

ALSAのカーネルモジュールを無効にしてOpen Sound Systemのカーネルモジュールを有効にするには、端末で以下を実行し、デフォルトのサウンドシステムとしてOSSを選択します。

sudo dpkg-reconfigure linux-sound-base
図1 dpkg-reconfigureによるlinux-sound-baseの設定変更画面
図1 dpkg-reconfigureによるlinux-sound-baseの設定変更画面

これにより、カーネルモジュールのブラックリストからOpen Sound Systemが除外されます。その代わりにALSAが登録され[3]⁠、オペレーティングシステムのブート時にロードされなくなります。

Lucid以降のリリースでは、パッケージ「oss4-dkms」「oss4-base」でOpen Sound Systemのバージョン4をインストールすることができます。DKMSは、ドライバのソースパッケージから、自動的にドライバのバイナリ(カーネルモジュール)をインストールするための仕組みです。このパッケージをインストールすると、DKMSによってカーネルモジュールが自動で作成されるほか、ALSAやOpen Sound Systemのバージョン3をブラックリストに登録する設定が行われます[4]⁠。そのため、dpkg-reconfigureを実行する必要はありません。

図2 Synapticでのoss4関係パッケージの一覧
図2 Synapticでのoss4関係パッケージの一覧

しかしLucidのパッケージ「oss4-dkms」には、既知のバグがあり、そのままではインストールに失敗します。幸いなことにこのバグ報告にはパッチが登録されており、インストール可能なパッケージを作ることができます。

dpkg-reconfigureやパッケージ「oss4-dkms」をインストールするなどして設定を完了したら、システムを再起動します。そうすると、Open Sound Systemが使えるようになります。Open Sound Systemのサンプル音声を出力する場合はコマンド「osstest」を、トラブルシュートにはコマンド「ossinfo」を実行して情報を取得してください。

PulseAudioの出力をOpen Sound System経由にする

Ubuntuのデフォルトの状態では、PulseAudioの音声入出力はALSAのカーネルモジュールを経由し、サウンドカードやUSBオーディオデバイスなどのサウンドデバイスに送られます[5]⁠。Open Sound Systemを利用する場合、ALSAの代わりにOpen Sound Systemを利用するようにPulseAudioの状態を変更する必要があります。

PulseAudioは「モジュール」と呼ばれる単位で機能を拡張でき、Open Sound System用のモジュールが準備されています。端末で以下を実行して、モジュールを追加してください[6]⁠。

/usr/bin/pactl load-module module-oss

筆者が試した環境(サウンドデバイスにALi Corporation M5451を使用)でこのまま実行すると、サウンドが間延びしたり、おかしなノイズまじりとなってしまって使いものになりませんでした。そこで、PulseAudioのWikiのLoadable Modulesでmodules-ossを参照しながら試行錯誤した結果、以下に落ち着きました。オプション「format」で16ビットビックエンディアンを指定し、オプション「rate」でサンプリング周波数を48,000kHzに指定しています。

/usr/bin/pactl load-module module-oss format=s16be rate=48000

なお、PulseAudioにモジュールをロードすることで、GNOMEのサウンドアプレットにサウンドデバイスが表示されるようになります。

図3 サウンドの設定の入力タブ。今回使ったサウンドデバイス(ALi Corporation M5451)が表示されている
図3 サウンドの設定の入力タブ。今回使ったサウンドデバイス(ALi Corporation M5451)が表示されている
図4 サウンドの設定の出力タブ
図4 サウンドの設定の出力タブ

Open Sound Systemモジュールを無事ロードできたら、⁠ログイン時に自動起動するアプリ」に登録します。メニューのシステム、設定、自動起動するアプリと進み、⁠自動起動するアプリの設定」ウィンドウ (gnome-session-properties) を開いてください。⁠追加」ボタンをクリックして自動起動するプログラムの追加をします。テキストボックス「コマンド」に先のコマンドを入力して、項目に追加します。

図5 自動起動するアプリの設定ウィンドウ
図5 自動起動するアプリの設定ウィンドウ

ログアウト/ログインしてみて、ログインの音声が鳴ったら設定は完了です。

アプリケーションとOpen Sound System

一部のアプリケーションでは、サウンド再生のためのバックエンドを指定できます。こうしたアプリケーションでは、バックエンドとしてOpen Sound Systemを指定することで問題なく使えます。また、PulseAudioの設定が完了していれば、PulseAudioをバックエンドとするGstreamerアプリケーション(RhythmboxやTotem動画プレイヤー、PiTiViなど)やSkypeなども使うことができます。

図6 Audaciousの設定画面。さまざまなバックエンドに切り替えられ、Open Sound Systemも利用可能
図6 Audaciousの設定画面。さまざまなバックエンドに切り替えられ、Open Sound Systemも利用可能

ALSAの利用が前提となるアプリケーションは使えるのか、と不安になるかと思いますが、こうしたものも利用が可能です。本連載の第137回で少し解説しましたが、ALSAサブシステムは標準入出力先としてサウンドデバイスではなくPulseAudioを指定しており、事実上PulseAudioに対応した状態となっています[7]⁠。

図7 サウンドの設定のアプリケーションタブ
図7 サウンドの設定のアプリケーションタブ

ここではTotem動画プレイヤーとRhythmbox、ALSA pluginによるALSAの音声がPulseAudioに出力されています。本連載の第137回ではnpviewer.binをAdobe Flash Pluginのラッパーとして使うと説明しましたがこれはamd64版Ubuntuの場合で、i686版ではラッパーを使わずにplugin-containerがALSAへ出力します。

Open Sound Systemのミキサー ossxmix

パッケージ「oss4-gtk」をインストールすると、Open Sound Systemバージョン4のサウンドミキサを使うことができます。端末でコマンド「ossxmix」を実行するとミキサーGUIが起動するほか、パネルにアプレットが表示されます。

図8 ossxmixの画面。この場合は、AudaciousとGTickとPulseAudioの出力がミックスされている
図8 ossxmixの画面。この場合は、AudaciousとGTickとPulseAudioの出力がミックスされています

図8では、Open Sound System用アプリケーションであるGTickとミュージックプレーヤーAudacious、そしてPulseAudioからの入力が表示されています。vmix0フィールドでそれぞれのストリームの音量を調整できるほか、volやpcmで全体のボリュームを調整できます。

Open Sound SystemはUbuntuにおいてはもはや主流ではありませんが、昔一世を風靡したLynx Studioのサウンドデバイスをフルサポートするなど[8]⁠、ALSAにはない特色があります。本連載の第137回で紹介したALSAやPulseAudioのOpen Sound Systemエミュレーションモジュールも合わせ、UbuntuでOpen Sound Systemを使いたい冒険者の手助けとなれば幸いです。

おすすめ記事

記事・ニュース一覧