Messages in cipher reflected in the looking glass
[ Yasuhiro Fujitsuki's Weblog ]
http://blogs.sun.com/thaniwa/date/20050407 2005年 4月 07日 木曜日

(JA) HomePod

Photograph of HomePod
HomePodとはiPodに似た操作性を持つネットワークミュージックプレイヤーです。 LAN内のサーバー上においてある MP3ファイルの再生が行えます。
再生するためにはサーバーが必須なので、結構ニッチな製品だと思います。
詳細は、本家のサイト(英語)を見てください。
http://www.macsense.com/product/homepod/
実は、去年のJavaOneの時に販売されていたので買って使っていたりします。 本体にもスピーカーがついているのですが、お世辞にも良い音とは言えないので、 私は外部のアンプ(5.1ch)に接続しています。

HomePodは本体のOSは Linuxが搭載されており、サーバーや本体のソフトの大部分は Javaで実装されています。
(そういう意味では、Linuxの項目に入れても良いのですが、一応Javaで)
HomePodで用いられているソフトは、
GLOO LABS : http://developer.gloolabs.com/index.php
で開発されたものが搭載されています。
(最近はさっぱり活動していませんが)一時期、私もソースコードを書いていました。 多少のバグフィックスもしましたが、私のHomePodは次のような部分を改造して使用しています。 (改造コードは本家サイトに投稿していますが、現状のHomePodには組み込まれていません。)

  • (サーバー側) MP3のID3タグの日本語認識の改造
    Unicodeもしくはサーバーと同じ漢字コードしか対応できなかったものを JISAutoDetect で変換するように変更。(ID3タグの部分って別のGPLプロジェクトのソース使っているっぽい(汗))
  • (サーバー側)ディレクトリ検索、再生モードの追加
    iPodと同等が仕様なので、元々はこんな機能はありませんでした。
  • (HomePod側) 音楽再生中にメニューに戻ると再生を中断しないように改造。
    メニューに戻ると曲の再生を終了するのが本家の仕様です(汗)。

1つ目は結構重要です。ID3タグは漢字コードの規定が無いため、Windowsで作成した場合 SJIS、Unixで作成した場合 EUC-JP等、漢字コードが変わります。サーバーを Linuxで動かす場合、この辺が問題になるケースがありますので、Java側で文字コード変換を行うようにすることで対処しています。
2つ目はファイル数が膨大になればなるほど必須の機能だと思います。
3つ目、普通中断しないでしょう…(汗)。

ということでこんな感じで改造して使っています。
ちなみに、HomePod側のJavaモジュールの更新は非常に簡単で telnetでログインしたあとにftpでファイル更新でできます(笑)。
最後に、一応自分は CDをちゃんと購入して、それを MP3にする人ですので。(おかげでCCCDには振り回されましたが)。

(EN) HomePod

Photograph of HomePod
HomePod is a network music player with operating interface that looks like iPod. HomePod can play MP3 files of servers, which runs HomePod server software, on LAN.
To use HomePod, we have to prepare Windows/Mac/Linux PC for HomePod Server.

Please look at the following URL when you want to know details of HomePod.
http://www.macsense.com/product/homepod/
I bought HomePod at JavaOne S.F. on June 2004.

HomePod has a speaker, but I use HomePod with external speakers because quality of HomePod's speaker is not good.

Most parts of HomePod's software is based on Java, and HomePod's software run on Linux.
HomePod's firmware/software is developed by GLOOLABS
GLOO LABS : http://developer.gloolabs.com/index.php

And, we can download source code of HomePod.
My HomePod has improved as follows.
(Source code which I wrote can download from forum of developer.gloolabs.com.)

  • (Server-side) Original cannot read SJIS when server environment is EUC-JP.
    So, I rewrite ID3Tag reader class to use JISAutoDetect.
  • (Server-side) Added directory search and play mode.
  • (HomePod) Added play music in the background.
    Original stop play music when user push menu button and move music selection menu.

ID3Tag issue is a very important on Japanese environment.
I have Windows environment and Linux environment, and general mp3 h/w player support SJIS only. So, I have to use ID3Tag with SJIS on linux environment.
Directory search mode is very useful when user has 1000+ mp3 files...

Updating Java code on HomePod is easy. Get jar file with ftp after login HomePod with telnet. Jar files of HomePod are in under /misple directory.