Real Time Kernel(以下rtと省略)を導入してから、設定を変えて音の出方の変化の確認を行っていました。カーネルをrtに変えただけでもかなりの変化はあると思いますが、本領を発揮するのはこれの有効利用です。
Jessie版、Ubuntu版のセッティング済みのイメージファイルをアップロードしてありますので、これでご確認いただくのが一番はやいと思います。2つのイメージの(聴感上の)差は少ないと思います。その少ない差の中での話になりますが、上品にすっきりまとまっているJessie版と、溢れるように(人によっては抑制がかかってないように)聴こえるUbuntu版となります。ただ本当に差は少なくて、確かに鳴り方は変わりますが、切り替えると切り替えて鳴っている方が良く聴こえます。
RealTimeオプションについて詳しい知識も無いしまして正しい説明など出来ません。もしそれをやっても車を使いたい人にエンジンの構造から説明するのとたいして変わりがないように思うのです。
RTカーネル(mpd-rtも)を使うと音を聴きながらコンピュータの仕事の優先度を変えることが出来ます。
BBB+Boticでやっている仕事は非常に単純化すると3つの入力から1つの出力です。入力は、音楽ファイル・GMPCのようなクライアントからの制御信号・マスタークロック(MCLK)です。出力はI2S信号(デジタル音楽信号)です。もう少し細かくその仕事について書いていくと、たとえば入力の音楽ファイルを処理する場合、Lanという入口の門を開けるとか、開いた門から実際使うところに通路を作るマウント、Flacファイルなどを処理するデコーダーとか様々な仕事に分解できます。
コンピューターは単純な仕事(スイッチのOn・Off)をものすごい速さでやっているだけで、それが何重にも重なり複雑な仕事をしているように見えているわけですが、実際に仕事をしている部分はスイッチのOn・Offだけです。それをひとつずつ順番に進めているだけです。コンピュータの中には神様みたいな存在がいて(あって)全体を取り仕切っています。その神様が仕事の進み具合によって仕事を切り替えていきます。仕事の並んでいる列の途中に新しい仕事を割りこませるので「割り込み処理]というらしいです。
RTオプションというのは、こっちの仕事の時はすぐやってもらえるませんかとか、こっちの方はゆっくりでも良いですよといったお願いをコンピュータの神様にすることです。神様の方は音が良いとわ悪いとかは関係なく仕事が順調に進むように組み立てていきますが、その音を人間が聴いてこっちの方をすぐやってもらえるできませんかなどとお願いできるようにするわけです。
moc さん こんばんは
どうも製作途中の方をアップロードしてしまったようです。
2つ問題がありました。
1. ライブラリの不足
apt-get update
apt-get install libcurl4-openssl-dev
2. Boticの未セッティング
/boot/uEnv.txt の上から5行目あたりに挿入してください。
##Botic setting:
dtb=am335x-boneblack-botic.dtb
optargs=snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=MMMM snd_soc_botic.dsd_format_switch=3
/root/selmpdを別のBBGからディレクトリごとコピーしたのですが調整用のmpd-new,mpd-sndも入ったままでした。できれば消去してください。ライブラリの内容の違うmpdも何種類か作って聴き比べしたりするのですが、これは見なかったことにしていただければ……
sndfileデコーダをいつもは切っているのですが、音を確かめたくて入れたやつが紛れ込んだようです。
これで動くはずです。お手数をお掛けしますがよろしくお願いします。
kickさん
おはようございます。mocと申します。
ご指示ありがとうございました。無事、音だしできました。冬の休暇の間、幸せな時間が過ごせそうです。ありがとうございました!!
みみず工房さんの「BBBのI2S interface(7)」が2年前に収束して以来、beaglebone black(green)の情報が少なくなり、寂しい思いをしておりましたが、12月中旬にこちらのサイトを見つけて以来、楽しく拝見させていただいております(jessie-botic_12172016.imgから使用させていただいております)。
さて、jessie-botic-rt-12292016.imgについてお教えいただきたくご連絡させていただきました。と申しますのは、
/boot/uEnv.txtに
dtb=am335x-boneblack-botic.dtb
optargs=snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=MMMM snd_soc_botic.dsd_format_switch=3
を書き込み、IPを固定、音源ファイルのディレクトリをマウントし、音楽が再生できる所までは確認したのですが、
% selmpd mpd-rt
を実行しますとmpdのプロセスがなくなってしまいます(リスタートしません)。
そこで、
% systemctl start mpd
を実行してみたのですが、やはり状況は同じ状況でした。そのときのsyslogが以下のものです。
————- syslog ———–start
Dec 30 23:10:01 beaglebone mpd[1244]: /usr/local/bin/mpd: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
Dec 30 23:10:01 beaglebone systemd[1]: mpd.service: Main process exited, code=exited, status=127/n/a
Dec 30 23:10:01 beaglebone systemd[1]: mpd.service: Unit entered failed state.
Dec 30 23:10:01 beaglebone systemd[1]: mpd.service: Failed with result ‘exit-code’.
————- syslog ———–end
libcurl.so.4 がないと怒られていますので、
% find / -name libcurl.so.4 -print
を実行してみましたが、発見できませんでした。
なお
・mpd-git, mpd-new, mpd-rtは実行できませんでした。
・ mpd-sndは実行できました。
・実行できない場合、いずれもlibcurl.so.4がないと怒られます。
・「ubuntu-botic-rt-12292016.img」は問題なく使用できています(結構お気に入りかも、です!)。
当方の勘違いがあるかもしれませんが、アドバイスいただければと思いご連絡いたしました。よろしくお願いいたします。