Rockbox

Rockboxは、デジタルオーディオプレーヤーに搭載されたファームウェアを置き換えるフリーソフトであり、拡張性の乏しいプレーヤーに様々な機能を追加するためのプラグイン機能を（多くの場合、元のファームウェアを取り除かないで）提供する。オープンソースのファームウェアであり、誰でも開発、配布が自由である。拡張機能にはPDA機能、アプリケーション、ユーティリティ、ゲームなどがある。また、2000年中頃にリリースされたプレーヤーにもビデオの再生機能を加える。また、視覚障害をもつユーザのための声で操作できるユーザインタフェースも用意されている。 Rockboxはハードウェア能力が非常に異なっている様々なポータブルオーディオデバイス上で動くものであるため、1ビットのキャラクタセルベースのディスプレイをもつ早期のArchosプレーヤーから、近代的な高画質のディスプレイ/デジタルの光学オーディオ機器/高度な録音能力をもっているプレーヤーまで対応している。多くの場合、フラッシュメモリから実行されるよりも、ハードディスクからRockboxか標準のファームウェアのどちらかから読み込み可能なサポートされているデバイスのフラッシュに最小限のブートローダーがインストールされる。また、一部の機器ではフラッシュメモリへのインストールもできる。 Rockboxプロジェクトは2001年の後半に、初期のArchosシリーズのハードディスク内蔵型MP3プレイヤーと、フラッシュメモリ型のOndioを含んだ録音機能つきモデルを対象に行われた。Rockbox開発は、ユーザーインターフェイスやデバイスの取り扱い方法に不満をもったことにより開発された。これらの機器の処理能力は限られており、音楽再生はMP3デコードチップ（MAS）で行っていたため、Rockboxは音楽の再生品質を変えることはできなかったが、その代わり、Rockboxは改良されたユーザーインターフェイスを提供し、工場出荷時のファームウェアに無い機能をプラグインで導入可能にした。Rockboxは製品に搭載されたフラッシュメモリの起動領域を書き換え、元のファームウェアとそっくりそのまま入れ替えてしまうことができた。 Rockboxにはより新しい製品に対応したバージョンも用意されている。こちらではソフトウェアデコードにより演奏しており、既にArchos版で実装している機能に加えて、オリジナルのファームウェアが対応しないオーディオフォーマットの演奏が潜在的に可能となっている。専用のブートローダーで製品が起動後、Rockboxはハードディスクから立ち上がる。つまり、Rockboxをアップグレードするのにユーザーが必要なことは、ハードディスクにファイルをコピーして再起動することだけである。ブートローダーの差し替えのためにはファームウェアの書き換えが必要になるが、製品によっては差し替え不要である。 2004年の後半に始まった初めてのこれらの移植はiriverが製造したモトローラー製のColdFireプロセッサーを使ったデバイス、つまりハードディスク・プレイヤーであるiriver H100 シリーズ(H110/H120/H140)だった。およそ1年後に、iriver H300 シリーズへの移植は機能的になり、同じような機能を提供するようになった。 2005年後半に、Apple製のiPodにRockboxの移植が始まった。 2006年の1年間は、Cowon iAUDIO X5シリーズと同様に、Rockboxを様々なiPod(iPod photo, iPod nano, iPod第4世代, iPod mini, iPod第5世代)で利用可能にした。 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ビルドがリリースされている。 Rockboxのインターフェイスは特有のプラットフォームごとの制限に左右されるが、様々な方法でカスタマイズ出来る。フォントや表面と背景の色は追加したり選ぶことが出来る。その一方、メニューや再生中の画面のテーマを作るのには簡単なマークアップ言語が使われている。これらのテーマとして、背景や他の画像（アイコンのような物とか）があげられ、加えて、様々な拡張子、ID3タグ、ファイルの進捗状況、時間やシステムの情報があげられる。2007年11月11日の時点で、アルバムアートの表示が正式にサポートされた。2011年2月27日にはmp3のID3(v2)タグに埋め込まれたJPEGが正式にサポートされた。Rockboxは原則的にファイルツリーが基本のプレイヤーであり、そしてフォルダ構造による操作が出来る。（フォルダはプレイヤーにドラッグ・アンド・ドロップすることができる。）プレーヤー内で切り取り・貼り付けや削除をすることもできる。また、最近のバージョンには、プレイヤーにファイルのID3タグからの情報を集めることを可能にしたデーターベース機能がある。ユーザーはその結果ファイル構造に関係なく、このデーターベースを用いることでファイルを操作することが出来る。 ソフトウェアでデコードするプラットフォーム（Archos以外）では13つの非可逆コーデックと6つのロスレスコーデックと4つの非圧縮コーデックと14つのチップチューンフォーマットの再生をサポートしている。また、DRM機構のファイルはRockboxにおいて再生できない。Rockboxはオープンソースのプロジェクトなので、この機能は意図的に決して実装されることはない。 AC3(rawもしくはRealMediaコンテナ) ADX Advanced Audio Coding(AAC-LC/HEv1/HEv2)(MP4コンテナもしくはRealMediaコンテナ) MPEG audio layers I-III (MP3/MP2/MP1) Musepack Ogg Vorbis ATRAC3(OpenMGコンテナもしくはRealMediaコンテナ) Cook Codec Speex Dialogic telephony type Windows Media Audio Windows Media Audio Professional Opus FLAC WavPack Shorten Apple Lossless Monkey's Audio TTA PCM WAV AIFF Sunオーディオファイル Wave64 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 オーディオファイルを再生したり録音したりする能力の傍ら、Rockboxは他のファームウェアが実装していない再生機能を提供している。 以下に掲載されているのはこれらの機能の一部である。 ギャップレス再生 (全ての非圧縮、可逆コーデックとVorbis、Speex、Opus、Musepack、MP3(LAME方式およびiTunes方式)、AAC(iTunes方式およびNero Digital方式)に対応) リプレイゲイン 5バンド・パラメトリックイコライザ クロスフィード OTF ("on the fly") プレイリスト True randomシャッフル (fresh randomly shuffled list every time) カスタムUIテーマ ステレオでの以下の形式への録音: WAV/AIFF/WavPack （ロスレス）/MP3 (デバイスのサポート) FMラジオとその録音 （デバイスのサポート） 遠隔操作 （デバイスのサポート） Digital SPDIFの入出力 （デバイスのサポート） Last.fmの対応 (ただし、内部時計が無ければ対応しない) Cue sheetの対応 メニュー選択のバーの色と外観は変更可能 アルバムアート（MP3ID3v2の埋め込みタグ対応） マルチフォントのサポート 歌詞を音声にあわせて表示 Rockbox は、音楽を聞く以外の機能として、プラグインという形で様々なアプリケーションが Rockbox の開発者によって作成されている。その一例として、以下のものがある。（完全なプラグインのリストは プラグインのリスト を参照のこと） JPEG、PNG、BMPビューア Rockboy GameBoy エミュレータ （Gnuboyのポート） ZXBox ZX Spectrum エミュレータ （Spectemuのポート） Doom （PrBoomエンジンのポート） WAV から MP3 へのエンコーダ WAV から WavPack へのエンコーダ MPEGビデオプレーヤー 様々なゲーム（数独, ソリティア, マインスイーパ, テトリス, リバーシ, pong等40種以上） MIDIプレーヤー。ある程度の処理能力があるプレイヤーではリアルタイムで再生可能。再生には外部の楽器セットファイルが必要であり、Rockboxのページからダウンロードできる。CPUが追いつかなくなると、音飛びが生じる。 電卓（関数電卓機能付） カレンダー ペイント メトロノーム テキストビューア/エディタ ストップウォッチ Rockboxには外部の会社やプラットフォームのサポート不足のために、まだ実装されていない機能がいくつかある。 FireWire DRM (故意に未実装) FAT32以外のファイルシステムの実装 (故意に未実装) Rockboxはフラットメモリモデル （これが メモリ管理装置なしで様々なプラットホーム上で動かすことを可能にしている。）と シングル プロセスを用いた、単純なカーネルで動いている。 貧弱なスレッド は、"オーディオ・スレッドを優先させる スケジューラ"に制御を返す"協調マルチスレッディング"で動く。つまり、プリエンプション（OSが優先順位の高いタスクに有利になるように、現在のタスクを停止したり、先取りする能力のこと）を行うには割り込みを利用するしかない。OSやプラグインはC言語で書かれていて、繊細なコードを実行することにつけ加え、デバイスやプラットフォーム固有のコードの為にアセンブリ言語が用いられている。この単純で軽いアーキテクチャのおかげで、Rockboxは、1〜64MBまで変動するメモリや、12〜300MHzまで変動するCPUといった、様々な機器で動かすことが可能になっている。Rockboxはまた、マルチコア・システムや非対称型マルチプロセッサ・システムへの限定的なサポートをしている。 Archosデバイスのみ公式にサポートされると宣告されている。以下は少なくとも実質的に動作する(Rockbox wiki Device Chartで「サポートされる」か「使用可能である」として、記載されている)デバイスのリストであると考えるべきである。詳細に関してはRockbox Device Chartを参照。 Archos Jukebox シリーズ Jukebox 6000 Jukebox Player/Studio Jukebox Recorder FM Recorder Recorder v2 Ondio FM Ondio SP iAUDIO M3、M3L iAUDIO M5、M5L iAUDIO X5、X5L iAUDIO X5V iPod 第1世代 iPod 第2世代 iPod 第3世代 iPod 第4世代 (グレイスケール)※ロット(搭載CPUのリビジョン?)によって公式ビルドではunstableなものがある模様。 iPod 第4世代 (Color/Photo) iPod 第5世代/第5.5世代 (Video) iPod mini 第1世代 iPod mini 第2世代 iPod nano 第1世代 iriver H10 (H10 5/6/20GB) iriver H100 (H100/H110/H115/H120/H140, aka iHP-100/110/115/120/140) iriver H300 (H320/H340) MPIO HD300 Vibe 500 Sansa e200 シリーズ (v1/v2) Sansa e200r シリーズ Sansa c200 シリーズ (v1/v2) Sansa Fuze シリーズ (v1/v2) Sansa Clip シリーズ (v1/v2/Clip+) Sansa Clip Zip Gigabeat Fシリーズ (F10/F11/F20/F21/F30/F31/F40/F41/F60) Gigabeat Xシリーズ iPod nano 第2世代 COWON D2 MA9 HM-60x HM-801 MPIO HD200 M:Robe 100 M:Robe 500 PhilipsGoGear HDD16x0 GoGear HDD63x0 GoGear SA9x00 YH-820/YH-920/YH-925 YP-R0 Sansa Fuze+ Gigabeat Sシリーズ Rockboxは様々なデジタルオーディオプレーヤーを使う人たちによって開発されている。自分たちが使っているプレイヤーへRockboxを移植することに興味を持っている人であれば開発に加わることは常に歓迎である。[5]原理的には、プレイヤーのCPUにGCCが対応してさえいれば移植可能である。Rockboxの移植版がすでに存在するプレイヤーと共通の部品を持っていれば、開発は非常に容易になる。公開されている仕様書がない部品で作られていたり、ハッシュチェックや暗号化でファームウェアを積極的に保護していれば、移植は難しくなる。 AV300 iAUDIO 7 Zen Vision:M Zen Vision VX747 VX767 VX747+ VX777 YP-S3 iFP-790 M6SL M6SP M3 Elio TPJ-1022 iPod classic Sansa m200 (v1/v4) Sansa c100 Sansa View Sansa Connect DAX Lyre proto 1 Mini2440 Android N8xx N900 Pandora iriver H120/iPod 4G, LlamaBetaテーマ iPod Video, Mintyテーマ iPod Video, iPodVisionテーマ iAudio X5, zenX5テーマ iPod Nano, Black Glass MGrテーマ iPod Nano, Tangoテーマ iriver H320/iPod Photo, DGTテーマ Archos Jukebox Recorder/FM Recorder/Ondio, WPS by Jens Arnold Toshiba Gigabeat, beatMP WPS by Kirill Lanchev iPodLinux