2016年12月19日月曜日

MPD+Raspberry Pi 3 BによるDAP、及び専用クライアント開発記録_Vol.3

 連載3回目です。大学祭も終わり、その後流れるようにその成果や、さらなる記事を追加したオーディオ研究会の本「METRONOTES」の2016年冬号を先日入稿しました。あとは印刷が間に合うことを祈るばかりです。
 
 さて、そんなこんなで当連載をまとめた、というかこの連載をベースとして改めて描き下ろした記事がMETRONOTES・2016冬に掲載されております。というわけで、この連載をどこに着地させるか非常に悩んでいたわけですが、結局そのまま継続してみることにしました。METRONOTESではUNIX系OSなどを扱い慣れていない方でもセットアップしてオーディオプレーヤを作成できるようになる一助となるべく、#と$の差などといった部分まで細かに補足を入れておりますので、まぁ、競合することもないかなと思っておりますこの連載ではそもそもまともに順序立てて書いていないですしね。
 
 それでは、いつものように雑に開発記録を書いていきたいと思います。
 
 前回Vol.2では、Javaを用いてssh経由で本体にmpc命令を送ってやるクライアントを作ろう、という事になっていましたが、開発期間的に厳しかったので当連載にて今後開発していくことにして、ひとまずRaspberry Pi単体(+ドータ+バッテリ)で動作するものを作ってみました。
 んで、更にDACも完全外部化してUSB-DACを新たに接続する形に逃げました。小型DACを直接駆動させて、アンプも乗っける件に関しても、(DACについては)必要な部品などをようやく揃えましたので、当連載にて継続開発していくこととします。アンプはまだない。
 
 では、ざっくり暫定版のオーディオプレーヤがどういうことになったか、先にまとめてしまいましょう。
  •  Raspberry Pi 3 B & Raspbian Jessie
  •  音声出力は3.5mmステレオミニとUSB-DAC(ALSA経由)のオルタネイティヴ
  •  操作はドータボードとしてブッ刺した安物のタッチパネルに実行形式に書き換えたshellの成れの果てを置く
  •  音量は100%で固定(mpd.confにて。100%にして直接インピとか気にしたこともないそこら辺のイヤホン刺しても、耳が壊れたりしない音量だったので)
という感じです。まずUSB-DACの話から。
 
 USB-DACを結局使うことにしたわけですが、たまたまDENONのDA-300USBが新型が来るとかなんとかで投げ売りされていたのをビックカメラで見つけたので、ヨドバシカメラに直行して買いました。だってクレカの還元率的に淀がいいんだもん。一般カードで買った時で2%分お得になります。とにかく、あのDA-300を3万ちょいで手に入れたわけです。お好きな方はご存知と思いますが、コレ以降のDENONは良いか悪いか、昔のDENONのどこか真空管じみた、というか柔らかな音を捨ててキッパリとした今流行の音になっているので、新型がどう出ようと、こちらが欲しかったところなのでした。正直、KORGのDS-DAC100mだっけ、あのちっちゃいやつを買おうかと思っていたのですが、小さい頃からDENON、もといデンオンの頃の音に親しんできたこともあって、飛びついてしまいました。
 
 後悔はしていない。DA-300USBはまさしくデンオンの息遣いを感じるDACでした。まぁしかも、これは予想外だったのですが、なかなか内部のHPAの性能がよろしい。まぁうちパワードしか無いんですが。PSVR買って次の大きな買い物あたりで買いましょう。
 そういうわけで、突如うちにDA-300がやってきたので、S/PDIF経由でPS4の音を拾って遊んでいたわけですが、Raspberry Piに戯れに繋げたところこれが意外とすんなり鳴ってしまったのです。
 
 というのも、どっかの窓OSと違って苹果OSとか最近のLinuxディストリビューションはUSB Audio Class2.0に対応しているのは当然です。が、CoreAudio、ASIOで鳴らせるのは殆どのメーカーが公称していますが、ALSAに対応していることを謳うメーカーはほぼない状況です。ので、ALSAでなかなかすんなり鳴ることって無いんです。Ubuntuくらいのディストリビューションになれば結構動いてくれたりもするんですが、Raspbianで動くとは。
 調べてみると、他のUSB-DACはやはり結構USBAudio2.0機種でも相性問題を起こしているようです(設定をどうだこうだすれば結構鳴りはするみたいですが)。そんな中、何故か出力系統の変更すら要らなかったDA-300ちゃんは何者なんでしょうかね。
 
 閑話休題、DACで鳴らすと当然ながらRaspberry Pi特有の4極プラグに由来するノイズが減るので、その分音が良くなるというか、まともになるのは当然として、アシンクロナス転送とデジアナの分離、左右独立設計など細かなDACの良さが光ります。これもうRaspberry Piじゃなくていいんじゃないか。今度ブラインドテストしてみましょうかね。
 
 次に、操作部分について。操作部分はひとまずシェルスクリプトに逃げました。といっても、シェルはダブルクリック実行ができないので、.xファイルに変換してくれる素敵な何かを使って.sh.xとかいう代物にしてデスクトップに置いておきます。そうすれば、ダブルタップからのexecuteで実行できますので。お手軽に再生/曲追加/停止など各ボタンをつくることが出来ました。UIデザイン?そんなものは知らん。再生停止だけはnode.js噛ませてDashボタンを使ってみる計画も進行中です。
 
 そうして、当初の計画から114514度回ったオーディオプレーヤがひとまず完成しました。次回の予定はチップを持ってきてブレッドボードに刺してとりあえずデータシートとにらめっこしながらDACを動かしてみることですかね。ポータブルがテーマなので、毎度電源をACから取るDA-300を使うわけにいきませんから。