いつも楽しみに拝見させていただいております。
さっそくですが、梅雨入りバージョンでのアップサンプリングの方法が分からず苦慮しております。
mpd.conf の audio_output に
format "88200:24:2"
と追加し rebootしてみたのですが、音が途切れて再生されてしまいます。
(例えていうなら、「あー」というところが「あ、あ、あ、あ・・・」のような感じです)
ひな祭りバージョンではうまくアップサンプリングできていたのですが。
ついでにもう一つお聞きしてしまいます。
インターネットラジオなのですが、playlist の m3u ファイルで、mms:// で始まるものが再生できなくなってしまいました。
NHK や Ottava です。http:// で始まるものはちゃんと再生ができています。
mms はサポートされなくなってしまったのでしょうか?
教えてばかりで恐縮ですが、どうぞよろしくお願いします。
まさまささん
多分、両方ともrootfsをarch linuxにしたため、発生するようになった問題だと思います。
debianの方で試してみて下さい。やり方は
selpart d
です。元に戻すには
selpart a
です。
yoさん
リプライどうもありがとうございました。
なるほど、distribution の違いで発生してしまった問題でしたか。
さっそく selpart d を入れて、
/etc/interfaces, fstab, mpd.conf をひな祭りバージョンのように変更して試しているのですが、
今度は NAS へ ip address を使って cifs mount するところで NT_STATUS_LOGON_FAILURE と認証エラーが出てしまいました。
過去ログや「MPD on Cubox(19)」の記事を参考に、いろいろ試しているのですが、解決にはもう少し時間が必要みたいです。
うまくいきましたら、またご報告させていただきます。
(今忙しいので週末になるかもです)
とりいそぎご報告まで。
認証エラーの件は、mount option に sec=ntlm を入れ忘れていたためでした。お騒がせしました。
おかげさまで、NHK や Ottava は聞くことができるようになりました。どうもありがとうございました。
アップサンプリングの方ですが、残念ながら同じ症状で、改善はされませんでした。
このままでも十二分に良い音質なのですが、ちょっとだけ試してみたくなってしまったもので。。。。
もし他にお心当たりがありましたら、よろしくお願いします。 m(_ _)m
まさまささん
> NHK や Ottava は聞くことができるようになりました。
archのmpdも「/etc/local/bin/mpd -V」で確認すると
Protocols:
file:// http:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://
と表示されますので、mmsはサポートされているはずなのですが、何か設定が必要なのでしょうね。そのうち調べてみるつもりです。
> アップサンプリングの方ですが、残念ながら同じ症状で、改善はされませんでした。
ということはrootfsのパッケージのバージョンが変わったことか、Kernelを3.8にしたことが原因となります。切り分けるには
selboot 17-CFQ
とやれば、3.6.9(雛祭り版のディフォルトのKernel)になりますので、これで動けばカーネルの問題、これでも駄目ならパッケージということになります。
元にもどすには
selboot 20-CFQ
です。
まさまささん、yoさんこんにちは
梅雨入り版ではないのですが、arch + kernel 3.8.x+rt + rt化mpdで使用しております。アップサンプリング(44.1->88.2)は、問題なく動いています。
kernelは、3.8.9+rt4 -> 3.8.10+rt6 -> 3.8.11+rt8 -> 3.8.13+rt11 or 12と更新していますが、どのバージョンでもOKでした。
3.8.13+rtは不安定なところがありますが(アップサンプリングとは関係なくたまにurbエラーを出す)、梅雨入り版に入っているのと同じ3.8.11+rt8は安定していました。
アップサンプリングで音が切れ切れになる現象ですが、過去2回体験しています。
1.archを最初に入れた際にrtのprioを初期化するrtset.confを入れてなくかった際に起こっていました。
cpu負荷自体は高くなってはいませんでした。
2.debienがhfで無かったバージョン(確か年末版)ではアップサンプリングがうまく行きませんでした。
この場合はcpu負荷が非常に高くなっていました。
しかし梅雨入り版に関しては2つともあてはまらないですね・・・
1.に関しては、以前のmpd.confを使い回していて、rtの優先度が変更になった場合に整合性が取れなくなると起こりそうな気もします。
yo さん
いろいろとアドバイスどうもありがとうございました。
まずArchのmpdのmmsサポートの件ですが、mpd.logにエラーログが残りましたので、コピペしておきます。
Jun 28 21:50 : decoder_thread: mmsx_connect() failed
次にDebianでのselboot 17-CFQの結果ですが、
今度はまったく音が出なくなってしまいました。
私は JAVS X-DDC を使っているのですが、パネルに88.2KHzと表示されていますので、もうちょっとなのかと。。。
そこでmpd.log を見ると
cannot submit urb (err = -27)
が12行表示されて止まっていました。
fHiroさん
リプライどうもありがとうございます。
私は Linux に関しては素人で、おっしゃっていることがあまり理解できず申し訳ないです。
ちなみにmpd.confですが、分からないこともあり、ついてきたmpd.confはほとんど編集していないです。。。
と思って、ひな祭りバージョンと見比べていたら、
priority "FIFO:53"(ひな祭り)
priority "FIFO:54"(梅雨入り)
になっているのを見つけました。
FIFO:53 に変更したら、見事に88.2KHzで再生できるようになりました!!!
selboot 17-CFQ
selboot 20-CFQ
両方ともOKでした。
最後に、selpart a で Arch に切り替えて、mpd.conf の FIFO:53 にしたところ、こちらも88.2KHzで再生できました♪
ちなみに、176.4KHz までアップサンプリングさせてみました。
mpdのCPU使用率は最大で70%くらいまで上がりますが、安定して良い音を聞かせてくれています。
yoさん、fHiroさん
本当にどうもありがとうございました m(_ _)m
まさまさ さん貴重な情報有り難うございます。androidTvの梅雨入り版でFIFO:53としたところ、88KHz 96Khzの再生で音が途切れなくなりました。
TUさん 少しでもお役にたてて光栄です♪ Playlist の方も解決できると良いですね。
まさまささん
興味深い結果ですね。mpd outputの優先度を下げると音切れなしで再生できるようになったということになります。しかし、それでもplayerとdecoderの優先レベルよりは高いので、関係がなさそうなのですが、よく分かりません。まあ、解決されたことでよしとしますかね。
参考までに、音切れなしで動いている状態の
ps -eLo pid,lwp,rtprio,priority,time,cmd | egrep "irq/24|irq/29|mpd|cifsd"
の結果を教えていただけますか。
yoさん
優先度を下げてOKになったということなんですか、確かに訳がわからないですね。。。
以下取得ログになります。
FIFO:53
88.2KHz upsampling
root@(cubox):~# ps -eLo pid,lwp,rtprio,priority,time,cmd | egrep "irq/24|irq/29|mpd|cifsd"
64 64 54 -55 00:00:03 [irq/24-ehci_hcd]
1395 1395 55 -56 00:00:00 [irq/29-eth0]
1531 1531 53 -54 00:00:00 [cifsd]
2246 2246 - 20 00:00:00 /usr/local/bin/mpd /tmp/mpd/mpd.conf
2246 2248 - 20 00:00:00 /usr/local/bin/mpd /tmp/mpd/mpd.conf
2246 2249 52 -53 00:00:00 /usr/local/bin/mpd /tmp/mpd/mpd.conf
2246 2250 49 -50 00:00:01 /usr/local/bin/mpd /tmp/mpd/mpd.conf
2246 2251 53 -54 00:00:15 /usr/local/bin/mpd /tmp/mpd/mpd.conf
2346 2346 - 20 00:00:00 egrep irq/24|irq/29|mpd|cifsd
root@(cubox):~#
私の使用しているファイルは44.1KHz,16bitのFLACで、これを88.2KHz,24bitに変換して再生しています。
それから、upsampling をしていない状態で、priority "FIFO:54" のときですが、
96KHzや192KHzのFLACファイルは正常に再生できていました。
ですのでTUさんの件とはちょっと違うのかな?とも思っています。
このスレッドのテーマを誤解していました。
わたくしの抱えていた問題は、88.2KHZその他ハイレゾのFlacの再生が途切れることでした。mpdではアップサンプリングの設定はしていません。しかし、FIFO:53としたら、途切れなくなったのは事実です。
まさまささん、とりあえずOKになって良かったですね。
>yoさん
いちおう私の優先度ログも確認してみました.(arch + 3.8.13+rt11 + git版mpd(rt)です)
mpd.confのoutputは53でした。元々ひな祭り版のmpd.confをarch+rtに持ってきたので。
試しにFIFO:54にすると、まさまささんと同じく44.1はOKですが、88.2はNGでした。
比較してみると相違点はcifsdとの関係が変わっているくらいですね、
仕組みをちゃんと理解していないので、これが原因になるのどうかは分かりませんが..
FIFO:53
[root@cubox ~]# ps -eLo pid,lwp,rtprio,priority,time,cmd | egrep "irq/24|irq/29|mpd|cifsd" 65 65 54 -55 00:00:04 [irq/24-ehci_hcd]
225 225 55 -56 00:00:00 [irq/29-eth0]
332 332 - 20 00:00:03 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
332 408 - 20 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
332 409 52 -53 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
332 410 49 -50 00:00:03 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
332 411 53 -54 00:00:29 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
365 365 53 -54 00:00:00 [cifsd]
9973 9973 - 20 00:00:00 egrep irq/24|irq/29|mpd|cifsd
FIFO:54
[root@cubox ~]# ps -eLo pid,lwp,rtprio,priority,time,cmd | egrep "irq/24|irq/29|mpd|cifsd"
225 225 55 -56 00:00:00 [irq/29-eth0]
331 331 - 20 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
331 404 - 20 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
331 405 52 -53 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
331 406 49 -50 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
331 407 54 -55 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
360 360 53 -54 00:00:00 [cifsd]
471 471 - 20 00:00:00 egrep irq/24|irq/29|mpd|cifsd
皆様
FIFO:53 54共に
> 64 64 54 -55 00:00:03 [irq/24-ehci_hcd]
FIFO:54
> 331 407 54 -55 00:00:00 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
FIFO:53
> 2246 2251 53 -54 00:00:15 /usr/local/bin/mpd /tmp/mpd/mpd.conf
これが原因ですね。irq/24-ehci_hcdはusb-dacのハード割り込み処理を行うドライバです。mpd outputとusb割り込み処理が同じレベルで動くことになったため、ハードの割り込み処理が動けなくなるタイミングあり、音切れになるということのようです。androidの場合は別のスレッドにTUさんの報告がありますが、
> 44 44 54 -55 00:00:00 [irq/39-ehci_hcd]
となっていて同じことになります。アップサンプリングしていても、直接に96KHzの再生をしていても同じということだと思います。
rtカーネルというのは割り込みハンドラの処理中に割り込まれることを禁止するという仕組みですので、ハンドラ(この場合はmpd output)が必要以上の長時間に走行し続けるとこういうことになります。rtカーネルの特性を理解するという意味では興味深い事例でしたね。
しかし、何でmpd outputの優先レベルを一つあげちゃったのですかね。僕がやったのは間違いないのですが、理由を思い出せません(^^;;;。まあ、とりあえず、このケースでは元に戻すが正解だということでご容赦をお願いします。
yoさん、いつもありがとうございます。rtカーネルはカーネル自体だけでなく運用面もきわどくて、(趣味でやる分には)興味深く楽しめます。yoさんとBBSの皆さんのおかげでlinuxにも親しむことができて感謝しております。
まさまさ様、はじめまして。
当方Linux初心者です。(yo様にもお世話になっております)
恥ずかしながら教えて頂きたいのですが、mpd.confの編集するためのコマンドってどう打ち込んだらよいのでしょうか?本当に初歩的な質問で恐縮です。。。
よろしくお願いします。
yukikiさん、こんにちは。
私を含め、初心者だと CuBox+Linux+MPD って結構敷居が高くてたいへんですよね~
でも良い音を聞きたいっていう衝動にかられて、ついつい手をだしちゃう(苦笑)
編集するためのコマンドですが、皆さんは nano エディタというのを使われているみたいです。コマンドは以下の通りです。
nano /etc/mpd.conf
私の場合は、かなーり昔に vi エディタというのをかじった経験があり、vi を使っています。もちろん知っている操作しかしませんけど。
ちなみに、nano の使い方ですが、ググってみるとたくさん出てくると思いますが、ここなんか詳しそうです。
http://www.obenri.com/_nano/index.html" target="_blank">http://www.obenri.com/_nano/index.html
左上に目次がありますので、まずは一通り目を通され、
一度練習されておくことをお勧めします。
例えば、/etc/mpd.conf を /etc/mpd.test にコピーしておいて
cp /etc/mpd.conf /etc/mpd.test
つぎに /etc/mpd.testを試しに編集してみるなどです。
nano /etc/mpd.test
ご健闘をお祈りしております!
yukikiさん
まさまささんの書かれているように、nanoやviの使い方を覚えておくと、今後いろいろ試されるときに便利だと思います。是非がんばってください。
どうしてもnanoやviなどが性にあわないとか教義に反する^^;などの時には、邪道かもしれないですがこんなものもあります(win用です。macにも同じようなものがあると思います)
http://www.forest.impress.co.jp/library/software/winscp/" target="_blank">http://www.forest.impress.co.jp/library/software/winscp/
これだとwin用のeditor(秀丸とかサクラエディタなど)を使うことができます。
yukikiさん
そうですね、tinkerさんが書かれているように、今後のためにも是非基本的な部分だけでも操作方法を習得されることをお勧めします。そのための情報はググればいくらでも得ることができますので。
まあ特にviなどはクセがありますので、使いこなすには経験が必要でしょうが、nanoは画面上にコマンド・キーが表示されていたりして、比較的直感的な操作が可能かも知れません。
蛇足ですが、当方はviのコマンドなどはその昔「人に聞けないUNIXの使い方」という書籍を購入して覚えました(^^;
まさまさ様、tinker様、えふ様、
ご回答、アドバイス感謝致します。(本当に皆様親切で有り難いです!)
>蛇足ですが、当方はviのコマンドなどはその昔「人に聞けないUNIXの使い方」という書籍を購入して覚えました(^^;
まさに「人に聞けない」で投稿するのに毎回1時間ほどぐずぐずしてしまいます(笑)
毎回タイムリーな返答には有り難いばかりです。
当方のコマンドを受け付けない理由は単純にviのあとにスペースがなかっただけでした・・・。
いざ/etc/mpd.confを編集しようと、yoさんが仰るmpd-outputプロセスの優先度を53-54へ変更しようと思い試みましたがまたしてもコマンドで編集なのですね・・・。
再びですが、ご指導願います。
当方の環境ではDSDが再生はするのですが1曲が長めの(30分とか)曲で、途中ブツブツと激しく途切れます。以前のバージョン(雛祭り)では出ませんでした。
余談ですが皆様のおススメ通り、コマンドの勉強はしておりますがまだまだお世話になるかと思いますがよろしくお願いします。
yukikiさん
コマンドというのはlinuxで何かを行う時にコンソールから操作する内容のことをいいます。例えばファイルのコピー(cp)、ディレクトリの作成(mkdir)、エディターの起動(nano)などです(括弧内がコマンド(名)です)。コマンドは行いたい操作の内容をオペランドという形で指定する必要があります。例えばエディターの起動であれば、操作したいファイル名を指定する必要があります。
nano /etc/mpd.cof
の/etc/mpd.confという部分が操作をしたいファイル名(とディレクトリ名)になります。
さて、コマンドを使いエディター(nano)を起動した後はエディターの操作となり、コマンドは関係ありません。GUIを使ったnanoの操作を行うことになります。
nano /etc/mpd.cof
と操作すると(ちょっと長くなりまが)
-------------------------------------------------------
realtime_option {
memlock "yes"
stack_reserve "4096"
heap_reserve "10240"
main_priority "OTHER:0"
player_priority "FIFO:52"
decoder_priority "FIFO:49"
update_priority "OTHER:0"
}
decoder {
plugin "dsdiff"
enabled "yes" # DSD native
}
decoder {
plugin "dsdiff_native"
enabled "yes"
dsdsampleformat "24"
tagsupport "id3v1_encoding"
}
# An example of an ALSA output:
#
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
# format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
# use_mmpa "yes"
# buffer_time "2900000"
# period_time "1400000"
priority "FIFO:54"
dsd_usb "yes"
}
#
#audio_buffer_size "16368"
#audio_buffer_size "8184"
audio_buffer_size "4092"
[ Read 463 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
-------------------------------------------------------
という画面が表示されるはずです。この画面が表示中はWindowsのメモ帳を使っている時と同じように操作ができます(操作方法もマウスが使えないことを除けばメモ帳と同じような感じでず)。画面に表示されている任意の場所にカーソルで移動。PageUp、PageDownで任意のページに移動。変更したい文字を入力、不要な文字はbsやdelキーで削除。ということができます。
従って
priority "FIFO:54"
53に変えたい時は、5の上にカーソル(緑で表示されています)をもっていってdelキーを二回入力。53と入力。で変更できます。変更した内容は保存する必要がありますので、ctrl+O(コントロールキーを押しながらOキーを押す)で
File Name to Write: /etc/mpd.conf
というガイド画面が表示されますので、改行キーを押せばいいです。nanoを終了させるにはctrl+Xで終わらせることができます。
こういう具合にGUIの操作を文字で書くと非常に大変なので、詳しくはまさまささんの書き込みのリンク先をご覧ください。
yo様
今回も大変詳しい手解き感謝致します。
お陰様で安心してボリュームを上げられました!
ありがとう御座いました。
素人ながら・・・yo様へ。BeagleBone Blackの解説、期待しております(笑)!
yoさん
いつも大変お世話になっております。優先レベル設定の記事を拝見して、私も自分の設定を確認しました。
現在使用しているのは「梅雨入りバージョン」つまり優先度54でUSB2とMPDが同じ優先度の状態でした。しかし不思議なことにこれまでサンプリング周波数の高いものやDSDを再生しても全く音切れが発生しませんでした。
念のためAudioOutputの優先度を54から53に変更してみましたが、やはり同じように全く音切れが発生しません。
つまり、私の場合は、優先度が54でも53でも問題が発生しません(ちなみにirq/24-ehci_hcdの優先度は54になっています)。
再生上不都合がないので別に問題にしなくてもよいのですが、何かのご参考になるかもしれないと思い、ポストさせていただきました。