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コンテナ)
Advanced Audio Coding(AAC-LC/HEv1/HEv2)(MP4コンテナもしくはRealMediaコンテナ)
MPEG audio layers I-III (MP3/MP2/MP1)
ATRAC3(OpenMGコンテナもしくはRealMediaコンテナ)
Windows Media Audio Professional
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
Gzipped Video Game Music Format
NES Sound Format
Atari SAP
Sound Interface Device
オーディオファイルを再生したり録音したりする能力の傍ら、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)
ステレオでの以下の形式への録音: 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 へのエンコーダ
様々なゲーム(数独, ソリティア, マインスイーパ, テトリス, リバーシ, pong等40種以上)
MIDIプレーヤー。ある程度の処理能力があるプレイヤーではリアルタイムで再生可能。再生には外部の楽器セットファイルが必要であり、Rockboxのページからダウンロードできる。CPUが追いつかなくなると、音飛びが生じる。
電卓(関数電卓機能付)
テキストビューア/エディタ
Rockboxには外部の会社やプラットフォームのサポート不足のために、まだ実装されていない機能がいくつかある。
DRM (故意に未実装)
FAT32以外のファイルシステムの実装 (故意に未実装)
Rockboxはフラットメモリモデル (これが メモリ管理装置なしで様々なプラットホーム上で動かすことを可能にしている。)と シングル プロセスを用いた、単純なカーネルで動いている。
貧弱なスレッド は、"オーディオ・スレッドを優先させる スケジューラ"に制御を返す"協調マルチスレッディング"で動く。つまり、プリエンプション(OSが優先順位の高いタスクに有利になるように、現在のタスクを停止したり、先取りする能力のこと)を行うには割り込みを利用するしかない。OSやプラグインはC言語で書かれていて、繊細なコードを実行することにつけ加え、デバイスやプラットフォーム固有のコードの為にアセンブリ言語が用いられている。この単純で軽いアーキテクチャのおかげで、Rockboxは、1〜64MBまで変動するメモリや、12〜300MHzまで変動するCPUといった、様々な機器で動かすことが可能になっている。Rockboxはまた、マルチコア・システムや非対称型マルチプロセッサ・システムへの限定的なサポートをしている。
Archosデバイスのみ公式にサポートされると宣告されている。以下は少なくとも実質的に動作する(Rockbox wiki 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
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を移植することに興味を持っている人であれば開発に加わることは常に歓迎である。原理的には、プレイヤーのCPUにGCCが対応してさえいれば移植可能である。Rockboxの移植版がすでに存在するプレイヤーと共通の部品を持っていれば、開発は非常に容易になる。公開されている仕様書がない部品で作られていたり、ハッシュチェックや暗号化でファームウェアを積極的に保護していれば、移植は難しくなる。
iAUDIO 7
Zen Vision
VX747+
YP-S3
iFP-790
Elio TPJ-1022
iPod classic
Sansa m200 (v1/v4)
Sansa c100
Sansa View
Sansa Connect
Lyre proto 1