Rockbox

Rockboxは、デジタルオーディオプレーヤーに搭載されたファームウェアを置き換えるフリーソフトであり、拡張性の乏しいプレーヤーに様々な機能を追加するためのプラグイン機能を提供する。オープンソースのファームウェアであり、誰でも開発、配布が自由である。拡張機能にはPDA機能、アプリケーション、ユーティリティ、ゲームなどがある。また、2000年中頃にリリースされたプレーヤーにもビデオの再生機能を加える。また、視覚障害をもつユーザのための声で操作できるユーザインタフェースも用意されている。

Rockboxはハードウェア能力が非常に異なっている様々なポータブルオーディオデバイス上で動くものであるため、1ビットのキャラクタセルベースのディスプレイをもつ早期のArchosプレーヤーから、近代的な高画質のディスプレイ/デジタルの光学オーディオ機器/高度な録音能力をもっているプレーヤーまで対応している。多くの場合、フラッシュメモリから実行されるよりも、ハードディスクからRockboxか標準のファームウェアのどちらかから読み込み可能なサポートされているデバイスのフラッシュに最小限のブートローダーがインストールされる。また、一部の機器ではフラッシュメモリへのインストールもできる。

1. 開発
-----

Rockboxプロジェクトは2001年の後半に、初期のArchosシリーズのハードディスク内蔵型MP3プレイヤーと、フラッシュメモリ型のOndioを含んだ録音機能つきモデルを対象に行われた。Rockbox開発は、ユーザーインターフェイスやデバイスの取り扱い方法に不満をもったことにより開発された。これらの機器の処理能力は限られており、音楽再生はMP3デコードチップで行っていたため、Rockboxは音楽の再生品質を変えることはできなかったが、その代わり、Rockboxは改良されたユーザーインターフェイスを提供し、工場出荷時のファームウェアに無い機能をプラグインで導入可能にした。Rockboxは製品に搭載されたフラッシュメモリの起動領域を書き換え、元のファームウェアとそっくりそのまま入れ替えてしまうことができた。

Rockboxにはより新しい製品に対応したバージョンも用意されている。こちらではソフトウェアデコードにより演奏しており、既にArchos版で実装している機能に加えて、オリジナルのファームウェアが対応しないオーディオフォーマットの演奏が潜在的に可能となっている。専用のブートローダーで製品が起動後、Rockboxはハードディスクから立ち上がる。つまり、Rockboxをアップグレードするのにユーザーが必要なことは、ハードディスクにファイルをコピーして再起動することだけである。ブートローダーの差し替えのためにはファームウェアの書き換えが必要になるが、製品によっては差し替え不要である。

2004年の後半に始まった初めてのこれらの移植はiriverが製造したモトローラー製のColdFireプロセッサーを使ったデバイス、つまりハードディスク・プレイヤーであるiriver H100 シリーズだった。およそ1年後に、iriver H300 シリーズへの移植は機能的になり、同じような機能を提供するようになった。

2005年後半に、Apple製のiPodにRockboxの移植が始まった。
2006年の1年間は、Cowon iAUDIO X5シリーズと同様に、Rockboxを様々なiPodで利用可能にした。
2007年2月には、iriver H10や東芝のgigabeat FとXシリーズへの移植が利用可能になった。
2007年3月5日には、Cowon iAUDIO M5への移植が機能的になった。
2007年3月11日には、SanDisk Sansa e200シリーズがRockboxの次のラインアップに追加された。
2007年5月23日には、iPod 5.5世代 80 GBモデルに対応し、iPod videoのラインアップが完結した。
2007年7月27日には、iPod 1G と 2Gの最初のサポートが追加された。
2007年9月23日には、Sansa c200シリーズがラインアップに追加された。
2008年3月18日には、オリンパスのm:robe MR-100がラインナップに追加された。
2008年3月23日には、Cowon iAudio M3がラインナップに追加された。
2008年5月3日には、東芝 gigabeat Sの利用が可能となった。
2009年3月10日には、オリンパスのm:robe MR-500iの利用が可能となった。
2010年にはandroidへの移植が始まる。現在、Rockboxはmpegplayerプラグインを使用し、MPEG再生に対応。

現在のところ全てのRockboxはメーカーの手助けをほとんど借りることなくリバース・エンジニアリングのみによって移植を完了してきた。しかし、フリーソフトウェアではあるが、開発者、支援者は移植されたRockboxにメーカーの公式サポート、あるいは新製品への移植に非公式な手助けが得られることを望んでいる。今でも少数の企業がRockboxに興味を示すに留まっており、開発プロジェクトへの公式なコード提供や、製品への組込を行う企業は皆無である。Sansaへの移植はメーカーの要請により始められ、開発チームにサンプル品が提供されている。また、Sansa E200 v2などのSoCを開発しているAustriaMicrosystemsもデータシートを提供するなど開発に協力している。また、ロシアのフォーラムで有志がHiFiMAN HM-801にrockboxの移植を行ってもらおうと呼びかけ、賛同者がrockboxの開発者にHM-801を提供し、移植されたという例もある。

Rockboxは継続的に開発されており、ソースコードの毎変更ごとのSVNビルドがリリースされている。

2. カスタマイズ
---------

Rockboxのインターフェイスは特有のプラットフォームごとの制限に左右されるが、様々な方法でカスタマイズ出来る。フォントや表面と背景の色は追加したり選ぶことが出来る。その一方、メニューや再生中の画面のテーマを作るのには簡単なマークアップ言語が使われている。これらのテーマとして、背景や他の画像があげられ、加えて、様々な拡張子、ID3タグ、ファイルの進捗状況、時間やシステムの情報があげられる。2007年11月11日の時点で、アルバムアートの表示が正式にサポートされた。2011年2月27日にはmp3のID3タグに埋め込まれたJPEGが正式にサポートされた。Rockboxは原則的にファイルツリーが基本のプレイヤーであり、そしてフォルダ構造による操作が出来る。プレーヤー内で切り取り・貼り付けや削除をすることもできる。また、最近のバージョンには、プレイヤーにファイルのID3タグからの情報を集めることを可能にしたデーターベース機能がある。ユーザーはその結果ファイル構造に関係なく、このデーターベースを用いることでファイルを操作することが出来る。

3. 特徴
-----

3.1. コーデック
----------

ソフトウェアでデコードするプラットフォームでは13つの非可逆コーデックと6つのロスレスコーデックと4つの非圧縮コーデックと14つのチップチューンフォーマットの再生をサポートしている。また、DRM機構のファイルはRockboxにおいて再生できない。Rockboxはオープンソースのプロジェクトなので、この機能は意図的に決して実装されることはない。

3.1.1. 非可逆コーデック
---------------

AC3
ADX
Advanced Audio Coding
MPEG audio layers I-III 
Musepack
Ogg Vorbis
ATRAC3
Cook Codec
Speex
Dialogic telephony type
Windows Media Audio
Windows Media Audio Professional
Opus

3.1.2. 可逆コーデック
--------------

FLAC
WavPack
Shorten
Apple Lossless
Monkey's Audio
TTA

3.1.3. 非圧縮コーデック
---------------

PCM
WAV
AIFF
Sunオーディオファイル
Wave64

3.1.4. チップチューンフォーマット
--------------------

Atari Sound Format
Synthetic music Mobile Application Format
Game Boy Sound Format
AY Sound Chip Music
Hudson Entertainment System Sound Format
MSX Konami Sound System
SMS/GG/CV Sound Format
Video Game Music Format
Gzipped Video Game Music Format
MOD
NES Sound Format
Atari SAP
Sound Interface Device
SPC700

3.2. 特徴
-------

オーディオファイルを再生したり録音したりする能力の傍ら、Rockboxは他のファームウェアが実装していない再生機能を提供している。

以下に掲載されているのはこれらの機能の一部である。

ギャップレス再生 、AACに対応)
リプレイゲイン
5バンド・パラメトリックイコライザ
クロスフィード
OTF  プレイリスト
True randomシャッフル 
カスタムUIテーマ
ステレオでの以下の形式への録音: WAV/AIFF/WavPack /MP3 
FMラジオとその録音
遠隔操作
Digital SPDIFの入出力
Last.fmの対応 
Cue sheetの対応
メニュー選択のバーの色と外観は変更可能
アルバムアート
マルチフォントのサポート
歌詞を音声にあわせて表示

3.3. プラグイン
----------

Rockbox は、音楽を聞く以外の機能として、プラグインという形で様々なアプリケーションが Rockbox の開発者によって作成されている。その一例として、以下のものがある。

JPEG、PNG、BMPビューア
Rockboy GameBoy エミュレータ
ZXBox ZX Spectrum エミュレータ
//Doom//
WAV から MP3 へのエンコーダ
WAV から WavPack へのエンコーダ
MPEGビデオプレーヤー
様々なゲーム
MIDIプレーヤー。ある程度の処理能力があるプレイヤーではリアルタイムで再生可能。再生には外部の楽器セットファイルが必要であり、Rockboxのページからダウンロードできる。CPUが追いつかなくなると、音飛びが生じる。
電卓
カレンダー
ペイント
メトロノーム
テキストビューア/エディタ
ストップウォッチ

3.4. サポートしない機能
--------------

Rockboxには外部の会社やプラットフォームのサポート不足のために、まだ実装されていない機能がいくつかある。

FireWire
DRM 
FAT32以外のファイルシステムの実装 

4. アーキテクチャ
----------

Rockboxはフラットメモリモデル と シングル プロセスを用いた、単純なカーネルで動いている。 貧弱なスレッド は、"オーディオ・スレッドを優先させる スケジューラ"に制御を返す"協調マルチスレッディング"で動く。つまり、プリエンプションを行うには割り込みを利用するしかない。OSやプラグインはC言語で書かれていて、繊細なコードを実行することにつけ加え、デバイスやプラットフォーム固有のコードの為にアセンブリ言語が用いられている。この単純で軽いアーキテクチャのおかげで、Rockboxは、1〜64MBまで変動するメモリや、12〜300MHzまで変動するCPUといった、様々な機器で動かすことが可能になっている。Rockboxはまた、マルチコア・システムや非対称型マルチプロセッサ・システムへの限定的なサポートをしている。

5. サポートしているデバイス
---------------

Archosデバイスのみ公式にサポートされると宣告されている。以下は少なくとも実質的に動作するデバイスのリストであると考えるべきである。詳細に関しては[1]を参照。

5.1. 安定版
--------

5.1.1. Archos
-------------

Archos Jukebox シリーズ
Jukebox 6000
Jukebox Player/Studio
Jukebox Recorder
FM Recorder
Recorder v2
Ondio FM
Ondio SP

5.1.2. Cowon
------------

iAUDIO M3、M3L
iAUDIO M5、M5L
iAUDIO X5、X5L
iAUDIO X5V

5.1.3. Apple
------------

iPod 第1世代
iPod 第2世代
iPod 第3世代
iPod 第4世代 ※ロットによって公式ビルドではunstableなものがある模様。
iPod 第4世代 
iPod 第5世代/第5.5世代 
iPod mini 第1世代
iPod mini 第2世代
iPod nano 第1世代

5.1.4. iriver
-------------

iriver H10 
iriver H100 
iriver H300 

5.1.5. MPIO
-----------

MPIO HD300

5.1.6. Packard Bell
-------------------

Vibe 500

5.1.7. SanDisk
--------------

Sansa e200 シリーズ 
Sansa e200r シリーズ
Sansa c200 シリーズ 
Sansa Fuze シリーズ 
Sansa Clip シリーズ 
Sansa Clip Zip

5.1.8. Toshiba
--------------

Gigabeat Fシリーズ 
Gigabeat Xシリーズ

5.2. 不安定版
---------

5.2.1. Apple
------------

iPod nano 第2世代

5.2.2. Cowon
------------

COWON D2

5.2.3. HiFi E.T
---------------

MA9

5.2.4. HiFiMAN
--------------

HM-60x
HM-801

5.2.5. MPIO
-----------

MPIO HD200

5.2.6. Olympus
--------------

M:Robe 100
M:Robe 500

5.2.7. PHILIPS
--------------

PhilipsGoGear HDD16x0
GoGear HDD63x0
GoGear SA9x00

5.2.8. Samsung
--------------

YH-820/YH-920/YH-925
YP-R0

5.2.9. SanDisk
--------------

Sansa Fuze+

5.2.10. Toshiba
---------------

Gigabeat Sシリーズ

6. 開発中の移植版
----------

Rockboxは様々なデジタルオーディオプレーヤーを使う人たちによって開発されている。自分たちが使っているプレイヤーへRockboxを移植することに興味を持っている人であれば開発に加わることは常に歓迎である。[2]原理的には、プレイヤーのCPUにGCCが対応してさえいれば移植可能である。Rockboxの移植版がすでに存在するプレイヤーと共通の部品を持っていれば、開発は非常に容易になる。公開されている仕様書がない部品で作られていたり、ハッシュチェックや暗号化でファームウェアを積極的に保護していれば、移植は難しくなる。

6.1. Archos
-----------

AV300

6.2. Cowon
----------

iAUDIO 7

6.3. Creative
-------------

Zen Vision:M
Zen Vision

6.4. Onda
---------

VX747
VX767
VX747+
VX777

6.5. Samsung
------------

YP-S3

6.6. iriver
-----------

iFP-790

6.7. Meizu
----------

M6SL
M6SP
M3

6.8. Tatung
-----------

Elio TPJ-1022

6.9. Apple
----------

iPod classic

6.10. SanDisk
-------------

Sansa m200 
Sansa c100
Sansa View
Sansa Connect

6.11. Logik
-----------

DAX

6.12. Lyre project
------------------

Lyre proto 1
Mini2440

6.13. ソフトウェア
------------

6.13.1. Google
--------------

Android

6.13.2. Nokia
-------------

N8xx
N900

6.13.3. Pandora
---------------

Pandora

7. ギャラリー
--------

8. 関連項目
-------

iPodLinux

9. 参照
-----

10. 外部リンク
---------

[3]
[4]