仕込み

天気悪そうなので、オフ会に参加すべく、ネタの仕込みを。
早朝5時台に目が覚めたので、USL-5Pを取り出していくつかビルド。
USB-HDDにrootfsを置くokeシステムを使って、USB-Audioデバイスを使って簡単なMP3プレーヤーを作る。
デフォルトで、特定ディレクトリ配下のmp3ファイルをランダム再生。
選択ボタンで起動と停止。ランダム再生なので他の曲にする時(スキップ代わり)は2度押し。
ボリュームのアップダウンを2つのボタンに割り当てる。


kernelは、okeシステム用に作ったkernel-image-2.6.14-sh_PLUSinitrd10_sh4.debを使う。
userlandは、kogiidena版Etchベース。
kernelが古いので、ボタンフレームワークも最新2.6.22系のものではないい。
kogiidenaさんのサイトが落ちてて、落とせないパッケージ多数。
ミラーしておけばよかったよ... orz
小さなツールも入っていないのはローカルでビルドし直し。
alsaベースだと、ちょっとコンパイル作業が重いので、やりかけてやめる。
mpdを使おうと思ったけど、これも依存が重くてビルドを諦める。
mpg123-ossもshパッチしてビルドしてみるけど、httpではm3uが扱えないのでラジオも受信したいのでやめる。SHなのでビットレートコンバートの指定をしなくちゃいけないのもめんどくさい。
楽にossフレームワークベースで、madplayとsetmixerの組み合わせに落ち着く。
起動時に曲のインデックスファイルを都度作成。ランダム化はmadplayまかせ。
音量は値を保管して、これも起動時に再調整をかけるようにする。
再生負荷はそんなに重くない。CPUで10%未満くらい。メモリはswapには入らない。
ボタンの応答性も良い。


ほんとは、デフォルト音量のバラつきが大きいから、USB-Audioデバイス名と音量情報をリンクしたほうがいいのかも。
あとは、USBからブートしているので、起動に待ちが長いのが問題か。


とりあえず、このままOSC2007-Kyotoの展示用に発展させるとして、以下の機能で組み込めるものを入れる予定。

  • kernel 2.6.22化
  • Etchリリース版userland化
  • 液晶の追加(HDL-GT/LCDを使った表示)
  • joypadでの制御を追加(これも前に買ったまま放置してある)
  • 赤外線リモコンでの制御(GV-RCkit2を中古で買ってあるんだった)
  • USBマスストレージなMP3デバイスを挿しての再生
  • iPodとの同期
  • iTunesからのネットワークごしのライブラリキャプチャ
  • DAAPサーバー
  • CDからのリッピング(エンコードにx1くらいかかるけど)
  • ネットラジオ受信対応
  • インタラクション時にしゃべらせる
  • Podcastingクライアント
  • RSS取得データの読み上げ(できるのか?)

展示のスピーカーは、やっぱペットボトルスピーカーだよな!