先日のMCLK出力対応に加えて、Volumio 1.55 に改造を加えてみました。Firmwareファイルはここからどうぞ
オリジナルのVolumio 1.55 と比べてこんな違いがあります。
- 再生時間の正確さと引き換えにジッターレス化されている
- I2S出力時に、GPIO4ピンからMCLK信号が出力される
- 左詰め24bit固定DACのドライバーが入ってる(GUI未対応)
- I2C接続のLCD対応
- RuneAudioで用いられている Arch Linux の Kernel Config でコンパイルした Kernel
- Shift-JIS で記録された Wave(RIFF)ファイルのタグに対応
- MPD Version 0.19.9
ジッターレス化から、左詰め24bitまでの話は、Volumio 1.4のものと同一なので、そっちを参照してくださいませ。
ほかの機能については、ちと説明しましょう。
I2C接続
new_westan_elecさんのページその1、その2の内容をそのまま取り込んだだけです。スクリプトも丸々コピーしただけです。GPIO2/GPIO3をI2Cインターフェースとして利用しますので、これに対応したハードウェアが必要です。
何やってるかは、new_westan_elec さんのページをみてください。
RuneAudioっぽいKernel
Volumioとよく似たサウンドサーバとして、RuneAudioというのがあって、Volumioより音がいいといわれています。
Arch Linux というディストリビューションを元にしているのですが、そのコンセプトは、「シンプル、軽量なディストリビューション」だそうです。どうやって軽量にしているのかまでは調べてないんですが、とりあえずは Kernel の .config ファイルをもってきて、これで Kernel をコンパイルしてみました。
不思議なことに、これだけで音が変わったように感じます。
Kernel の Source は何も触ってないので、処理はさほど変わってないはずなので、おそらくは機能モジュールが削られているのではないかと。
もうすこし詳しく調べないとダメですね。
Shift-JIS 対応の MPD 0.19.9
Windows Waveファイル(RIFF形式)の曲名タグは鬼門です。
Waveファイルにはもともと曲名タグが仕様に入っていませんでした。それをいつの間にやらMSが拡張して、タグを入れられるようにしたみたいです。ただ、その拡張を行った当初は、Shift-JIS を使用していたのですが、いつの間にやら UTF-8 に変更してやがります。
んなわけで、MPD は RIFF ファイルを読み込むとき、UTF-8 を想定します。とーぜん、S-JIS でタグ打ちされたファイルは、文字化けします。
なんだよ、Volumio つかえねーな!って声があったので、文字コードを判定して読み込めるようにしてみました。
なお、MPD のバージョンが上がったことで、機能が増えてるはずなんですが、そっちはまだ追いきれてません
コメントする