サウンドとの格闘

えー、前回のポストでサウンドの問題は一旦解決していたんですが、ちょっと気になるところもあったので昨日さらに弄って見ました。

まず、tsched=0をつけておくと、出力デバイスは問題なく音を再生できるようになるけれど、Webカメラのマイクが認識できなくなる。まぁALC889Aの入力端子は認識できているので、別でマイクをもっているならなんの問題もない。なんか損した気分になるくらい。

次に、そもそもtsched=0をつけないのがあるべき姿だということ。これをつけていると、なぜかPhononはSkypeにサウンドを奪われる。両方PulseAudioなんだけれども。

とまぁそんなこともあり、ちょっとした興味もありでRealtekで公開されているLinux用ドライバを適用してみました。

インストールは簡単。RedHat系ならアーカイブを展開した中に同梱されているinstallスクリプトを実行すればガリガリとALSAをビルドしてインストールしてくれます。デバイスドライバをゴリゴリ変更するので、割と危険。気にせずやっちまいましたが。

中身はただのシェルスクリプトで、ALSAのビルドを順次実行しているだけなので、気になるようでしたら手動で同梱されているソース群をビルドすればよろしいかと。
うちの環境では、最後のalsaconfだけ失敗しました。いつの間にやらFedoraのalsa-utilsにはalsaconfが同梱されなくなってたんですよねぇ。どうやらこいつでサウンドデバイスの設定をするようですが、私の場合はこれなしで再起動したら有効になってました。運が良かっただけかもしれません。

現状、tsched=0をつけなくても音は正常に再生されています。Skypeとの競合もなくなっており、あるべき姿を実現できてます。

ただ、悲しいかな今度はWebカメラのマイクが認識されなくなりましたOrz ALC889Aに特化したからなのかどうかは分かりませんが・・・。これは正直悩ましいところ。

というか、そもそもRealtekはALSAでドライバを公開しているのだし、それは本家にマージされていないのか? って話。バージョンを見たところFedoraのalsaと同じバージョンっぽい。

ということはoptionsのモデルを正しいやつに入れてやれば鳴るのか・・・? 正直よく分からん。Intel-HDAはややこしいのよなぁ。オンボードはそのあたりがややこしくていやだわ。PCI挿しておく方がよほどデバイスの誤認識が少なくてよろしいのはどうなのよ一体(苦笑)

広告

オーディオの不具合と戦った記録

さて、PCを現在の環境に新調してからずっと、オーディオの不具合には悩まされ続けて来ました。
言葉ではうまく表現できないんですが、音楽とか聞いてたら所々で直前の音に戻ってまた再生が続行される、みたいな。
プログラム風に言えば、サイクルバッファが壊れて継目を正しく処理できなかったみたいな。

結論から言うと、完全解決ではないかも知れませんがほぼその現象を抑えることに成功しました。
/etc/pulse/defaultt.paにて
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
.else
### Alternatively use the static hardware detection module (for systems that
### lack udev support)
load-module module-detect
.endif

と記述しておけばOKでした。tsched=0がミソ。タイマベースから割り込みベースに切り替えただのなんだのって書いてあったんだけど、まだ詳しくは理解しきれてません・・・。ちょっと調べないといけませんね。

以下、つらつらと紆余曲折をだらだらと。

音がうまく鳴ってくれない、ちとそれじゃ気にくわないってんでSoundBlaster AudigyLSのカードを挿して使ってたんですが、できたらオンボードだけで完結しちゃいたいなーってことで再度オンボードの方でチャレンジすることに。

まず、そもそもちゃんとデバイスが認識しているのかって話。これはこのPCに変えたときから一応調べてはいたんですが、使われているチップはALC889Aというチップ。現在のALSAではばっちりこれに該当するコーデックは入っていないらしく、ALC880だったかな、それのコーデックを使っているようです。まぁ互換性があるようなのでこれで問題ないらしい。動いてますよーって報告もちらほら。

ただ、ALC889Aで不具合がーみたいな報告もちらほら。私の場合、音が鳴るには鳴ってるけど再生状況が正常ではないっていう微妙な症状なので、なかなかうまい検索ワードも思いつかず、Webでは探しきれなかったんですよねぇ。

で、いろいろとdmesgのエラーメッセージを元に探して行ったところ、
Bug #329620 in linux (Ubuntu): “ALSA woke us up to write new data to the device, but there was actually nothing to write.”
のような記述が複数みつかりました。どうもtsched=0というのがキーワードになるようだ、と。

で、参考リンクとして提示されてた
Features/GlitchFreeAudio – FedoraProject
を見ると、どうもFedora10からは割り込みベースではなくタイマスケジュールベースにPulseAudioが変更されたらしい。ただ、tsched=0とすれば従来の割り込みベースに戻せるのだとか。

で、従来の割り込みベースにしたらちゃんと鳴るようになるよーって記述が多かったので試して見たところ、ほんとに鳴るようになっちゃったというわけ。意味が分からん・・・。PulseAudioの実装がまずいってことなんかしら・・・? それともALSAと相性が悪い?

で、そのまんま置いとけばよかったのに、さらに遊びで$HOME/.pulse/daemon.confにて
resample-method = trivial

とか書いてたもんだから原因到達に苦しんだ・・・。なんかこのオプションでもってリサンプルしたらPhonon経由で音を鳴らした途端にPulseAudioがクラッシュしてました。どうもこのリサンプル方法はPhononと相性が悪いらしい・・・。Phonon以外では普通に鳴ってたんだけどね。デフォルトだとsoeex-float-3とかだったかな? それよりは精度がいいらしいんだけど、まぁめっちゃ頑張って聴いてもプラシーボじゃねぇの?ってくらいしか違いを感じ取れなかったし、そもそも圧縮音源で聴いてる時点で、しかもオンボードで聴いてる時点で音質なんて(笑)って話なので潔くデフォルトに戻しました。

そのおかげで今は快調に音が鳴ってます。長時間のベンチ的なことをしていないのでひょっとしたらたまに音がおかしくなる可能性もありますが、まぁ前は10分に1度くらいの頻度で起きちゃってましたからそこからすれば格段に安定してます。

にしたって、タイマベースで動かせないのはどうなんだろう? タイマベースの方がモダンな実装らしいんだけどねぇ。よく分からんや。

今回は「ALSAドライバ」「PulseAudio」「Phonon」とそれぞれについて調べなくてはいけなかったのでなかなか大変でした・・・。ALSA一本の頃は楽やったなぁ・・・;;

Amarok2.2.1のランダム再生について

最近、Amarokが2.2.1にバージョンアップされたのですが、それまで問題なく再生されていたランダム再生が突如として無効になってしまいました。

で、いろいろと調べた結果、Amarokの公式Blogのコメント欄で同様の症状に見舞われている人を発見。解決方法も提示してありました。

解決策は至って簡単。
「リピートとランダムの両方を有効にしているなら、リピートをOffにせよ」
というもの。

まぁ分からなくはないんですが、両方設定している人って結構いると思うんですよねぇ(苦笑)
かくいう私もきっちり両方設定しておりまして、見事その罠に引っかかってしまったという訳…。コメント欄にあった通りの設定で問題なくランダム再生されることを確認しました。

というか、これまでその設定でうまく行ってたんだから、いきなり変えないでよねぇ。しかもマイナーバージョンアップで! つーかFeaturesとかに載ってなかったぞw

今回の変更はレイアウトの変更とかデザインの変更が入っており、どちらかというとマイナスの評価が多いようです。2.2.2で改善されることを祈りましょう。

あと、これはずっと昔から続いている症状なんですが、プレイリストから曲がちょっとだけ消えてしまうんですよねぇ。今回は15曲消えてます。どれが消えているのか調べるのも面倒で放置してますけど、何が原因なんだろう…?

PulseAudioの設定について

PulseAudioについて、日本語の解説を見つけられなかったので自分なりにまとめてみた。

PulseAudioの設定 – Fedora備忘録

正直最後の方は投げやり…。そんなに細かく設定する人もそう多くはないと思うので、必要十分だとは思ってるんですが…。ま、PulseAudioの本家サイトに詳しく書いてるんですけれどね。daemon.confについては本家では触れられていないので、多少は参考になるかも。中身についてはファイルを見れば分かるでしょう。

あとは/etc/pulse/以下のファイルは$HOME/.pulse/以下にもってきてカスタムしたらいいってのも書いてない情報かな? まぁLinux触って長い人にとっては常識レベルではあるんですが。

サウンドはLinuxにとってまだまだ問題の頻出するところですし、PulseAudioのことも知っておいて損はないかと。ぶっちゃけALSAのdmixでよかったじゃんとも思わなくもないけどさw

Amarok2.2リリース

先日、Amarok2.2がリリースされました。
2.1からかなりの機能追加となっています。
待望のCD再生機能も追加されました!

Fedora11であればyumでサクッと入ります。2.1をお使いの方は、2.2を起動した初回のみ、DBの再構築が実行されます。
私の場合、初回起動時のみ、微妙にプレイリストやLocalMusicの情報がおかしくなっていました。色々弄くっていてついAmarokがフリーズしたので再起動したところ、DB情報が正しく読み込まれたようでしっかり表示されてました。DBの再構築が終わったら再起動させる方が無難なようです。

追加された機能は結構多いのですが、一番ありがたいのはCD再生機能でしょうか。2.1まではかなりトリッキーなことをしなければ再生できませんでしたが、2.2からはDを挿入した時点でLocalMusicのリストにCDが現れます。

そこから普通に再生もできますし、リッピングしてDBに追加することもできます。情報はCDDBから拾っていたようですが、日本語が化けてました。ここらへんは改善してくれるとうれしいですねぇ。KIOのaudiocd:プロトコルではきちんと日本語が通ってますし、Amarok側の仕様ということのようです。

その他、拡張機能としてFlickrとYoutubeから情報を拾ってくる機能が追加されています。再生しているアーティストで拾ってきているようで、Youtubeプラグインに関してはブラウザで開くこともできるし、プレイリストに追加して再生することも可能です。ただし、プレイリストに追加した場合は音声のみが再生され、映像は出ません。これは2.1でも同様ですね。動画ファイルをプレイリストに入れることはできますが、映像は再生されません。

また、以前はPhononのバックエンドがGstreamerのときのみ有効だったReplayGainが、Xineをバックエンドにしていても有効になりました。Gstreamerバックエンドは不安定だったのでこれは嬉しい改善です。ReplayGainを使ってない人にとってはメリットはあまりないですが^^;

あと気になるのは、私の所ではグレーアウトしているのですが、設定のところに「イコライザ」が追加されているところですね。1.4ではイコライザ機能が付いてましたが、2系でようやく搭載されたのかな・・・? これまたGstreamerのみなんだろうか・・・? 要調査だな。

※15:46追記
また、MySQLのDBですが、1.4の時のように組み込み”でない”MySQLサーバのDBを利用することもできるようになりました。複数のAmarokを一元管理してるような場合に便利かもしれませんね。1.4のときのDBは多分使えないでしょうから、新規で作成することにはなると思います。

うん、これで1.4にだいぶ追いついてきたな。あと欲しい機能といえばやっぱり外部メディアとの同期機能。USBマスストレージに対応してくれたら完璧なんだよなぁ。今後に期待だ!

これは非常に面白そうだ

OpenShot Video Editor
Linuxでのノンリニアビデオ編集ソフトKdenliveとか、Cinelerraとかだったわけですが、両者とも不安定だったり、インターフェースが独特でとっつきにくかったりと、なかなか「オススメ!」とは言えなかったんですよねぇ。

それらに対し、こちらのソフトは見た感じとてもよさそう。Winの同カテゴリのソフトとよく似たインターフェースをしてますし、何より最初からある程度のエフェクトが用意されて居るのがいいですね。
ってまぁ、それならKdenliveもフィルタ系は用意されて居ますが^^; Kdenlive、もう少し安定して動いてくれたら素晴らしいのだけれどなぁ。OpenShotがどれくらい安定しているかにも依りますが。

今のところUbuntuのバイナリが提供されているようですが、ソースも配布されている感じだったので、近いうちにビルドしてみようかと思います。

Linuxで動画作成ができるようになるとかなり幅が広がりそうだなぁ。編集ソフトとしてはAvidemux2がありますし、M@D作品もLinuxで作れるようになるかも!?(笑)

Amarok2.2 Coming Soon?

ちらっとAmarokの公式サイトを覗いてみたら、2.2RCがリリースされたみたいですね。更新頻度は結構早そうなので、正式版のリリースは早ければ今月末、遅くとも来月頭くらいに来そうです。

新機能リストを見つけられなかったので詳しいことは分かりませんが、

Do you have a media device? Plug it in and it will show up in the collection browser. Want to play a CD? Just put it in your drive and it will appear in the collection browser, allowing you to either play it directly or copy the tracks to your harddrive.

とあるので、ようやくCD再生機能とリッピング機能が搭載されるようです。CDをほとんど再生しなくなったため、この機能が搭載されてなかったことをずいぶん最近まで知らなかったんですよねぇ^^;

あとはDAPに簡単に曲を転送できる機能が復活してくれたら言うことないなぁ。

あ、そういえばAmarok2.1では動画をプレイリストに放り込むことができ、再生も可能です。映像は全く出ず、音声だけですが(笑) 再生できるコンテナはxine or Gstreamerに依存します。そのうち映像も表示できるようになったりするのかしら? そこまではいらないかな・・・?