ひとりごと

新しい記事:[987]  古い記事:[985] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2003/10/31 (金)

・ FreeBSDのおと

Windowsでは運がよければインストールしただけで起動時にジャカジャ音が出てきます。運が悪くてもメーカーの用意しているデバイスドライバを入れたら大抵 音がでます。これに対して FreeBSD では自分の所有しているデバイスを把握した上でカーネルオプションに長い呪文を書いて必要ならパッチを当ててようやく動くようになるので、普通の人は音を出せるようにならない・・・と思っていました。FreeBSD2.xのころにPnPなISAサウンドカードを苦労して動かせなかった(^^;)経緯があるからです。

ところが、ひとさまのWWWページを見ていると、みなさんわりと簡単に動かせている場合が多いのですねー。最近は自動で動くようになったのかな~と思いつつも、うちの機械ではブートメッセージに pcm とか出てこないので『私の機械では動かないのだろう』と思っていたのです。が、何気なくハンドブックをみますと、『カーネルオプションに device pcm を追加しなくてはならない』と書いてあるんですねー。うちのFreeBSDで音が鳴らなかったのは GENERICカーネルに device pcm が入っていなかったからでした(笑)。

てなわけで、さっそく ThinkPad T20(FreeBSD5.1) にてカーネル再構築です。よしよし、ちゃんと

pcm0: <CS461x PCM Audio> on csa0
pcm0: <Cirrus Logic CS4297A AC97 Codec>
と表示されました。ジュークボックス用に WAV ファイルが山ほどありますから、ports/audio/waveplay にて試しに演奏です。

スピーカから音が鳴ります

おぉぉ、歴史的な瞬間!! と思ったのですが、時々ズズズズとノイズが入ります。定期的に鳴っているようなので計ってみるとほぼ30秒おきにノイズが入るようです。プレーヤの問題かな~と思って ports/audio/amp にて mp3 ファイルを再生してみましたが、こちらも30秒問題が発生します。どうやらデバイス側に問題があるようです。

さて、内蔵音源が動いたのなら・・・ということで、今度はUSB-光アダプタ(D2Link)を差し込んでみました。

pcm1: <USB Audio> on uaudio0
uhid0: I-O DATA DEVICE,INC. D2Link USB Audio Device, rev 1.10/1.00, addr 2, iclass 3/0
お、なかなかいい感じではないか。てことで、早速再生してみました。

すごいノイズです(笑)

さきほどのノイズとは違い、もとの曲のテンポでざらざらノイズが再生されます。でもって面白いことに、このUSB-光アダプタは48kHz出力専用なはずなのですが、外付けDAコンバータには44.1kHzと表示されています。明示的に48kHzを指定しなくちゃいかんのかな~と思って
# waveplay -f /dev/dsp1 -S 48000 ファイル名
としてみますと、確かにざらざらノイズはなくなって音楽が演奏されるのですが、テンポが早くなって音程が少し高くなります(笑)。どうやらこのデバイスはソフトウェアでサンプリングレート変換をしてから48kHzで出力してあげないといけないようです。なお、音楽が鳴るといっても30秒ノイズは同じように発生していました。

USB光アダプタが動くのなら・・・ということで、いつもジュークボックスで使っている Sound Blaster Digital Music で試してみました。うまくいけば44.1kHz出力も可能なはずです。

pcm1: <USB Audio> on uaudio0
uhid0: Creative USB Audio, rev 1.10/1.00, addr 2, iclass 3/0
うんうん、いいですねー。で、音を鳴らしてみますと、聴きなれた綺麗な音が出てきます。おぉぉ、完璧!! と思っていると、30秒ノイズが(笑)。う~む、デバイス固有の問題でもなさそうですねー。なんだか意味不明です。

さて、ノイズの問題の原因はT20かFreeBSD5.1にありそうなので、こんどは 4.9-RELEASEを入れたばかりの ThinkPad 560X にて試してみました。いきなり Sound Blaster Digital Music を差し込んでの実験です。

pcm0: <USB Audio> on uaudio0
uhid0: Creative USB Audio, rev 1.10/1.00, addr 2, iclass 3/0
ん? こちらは内蔵音源が認識されていないようですね。で、演奏させてみますと

ちゃんと音楽が鳴ります。ノイズも入りません。

ぱちぱち、完璧ですね。ということで、我が家のFreeBSDでもちゃんと音が鳴ることが確認できました。

□ 関連記事

[つっこみ]

新しい記事:[987]  古い記事:[985] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)