Rockboxは、オリジナルのカーネルを持つさまざまな形式のデジタルオーディオプレーヤー(DAP)のOEMファームウェアの代替となる、無料のオープンソースソフトウェアです。 [ 2 ] [ 3 ]プレーヤーのオペレーティングシステムの代替として、多くの場合、オリジナルのファームウェアを削除することなく、さまざまな拡張機能や機能を追加するためのプラグインアーキテクチャを提供します。拡張機能には、パーソナルデジタルアシスタント(PDA)機能、アプリケーション、ユーティリティ、ゲームなどがあります。Rockboxは、2000年半ばに初めてリリースされたプレーヤーにビデオ再生機能を後付けすることもできます。Rockboxには、視覚障害のあるユーザーが操作するのに適した音声駆動のユーザーインターフェイスが含まれています。[ 4 ] [ 5 ]
Rockboxは、ハードウェア性能が大きく異なる様々なデバイスで動作します。例えば、1ビットのセルベースのディスプレイを備えた初期のArchosプレーヤーから、高解像度カラーディスプレイ、デジタル光オーディオハードウェア、高度な録音機能を備えた最新のプレーヤーまで対応しています。
Rockboxプロジェクトは、スウェーデンの開発者Linus Feltzing、Björn Stenberg、Daniel Stenbergの3人によって2001年後半に設立されました。メーカー提供のユーザーインターフェースとデバイス操作の深刻な制限に対する所有者の不満から、ハードディスクベースの初期のArchosシリーズのMP3プレーヤー/レコーダー(フラッシュのみのモデルOndioを含む)に最初に実装されました。これらのデバイスは、比較的弱いメイン中央処理装置(CPU)を備えているため、音楽再生を専用のハードウェアMP3デコードチップ(MAS)にオフロードします。[ 6 ] Rockboxは再生機能を大幅に変更することはできませんでした。その代わりに、大幅に改善されたユーザーインターフェースを提供し、工場出荷時のファームウェアにはないプラグイン機能を追加しました。RockboxはArchosデバイスのフラッシュメモリに永続的にフラッシュできるため、ファームウェアの置き換えになります。
Rockbox はその後、より高度なデバイス向けにバージョンアップされました。これらのバージョンはソフトウェアでオーディオデコードを実行するため、[ 7 ] Rockbox はオリジナルのファームウェアよりもはるかに多くの音楽フォーマットをサポートできる可能性があり、Archos ポートに既に存在する拡張性と機能強化が追加されています。Rockbox はカスタムブートローダーで起動した後、ハードドライブまたはフラッシュメモリから実行されるため、Rockbox をアップグレードするには、ユーザーはファイルをプレーヤーのドライブにコピーしてデバイスを再起動するだけで済みます。再フラッシュはブートローダーを変更する場合にのみ必要で、一部のプラットフォームでは全く必要ありません。
2004 年後半に始まったこれらの移植版の最初のものは、iriverが製造するColdFire搭載デバイス向けで、ハードドライブプレーヤーのH1xx シリーズ(H110/H120/H140) に焦点を当てていました。約 1 年後、 H3xx シリーズ向けの移植版が動作し、同様の機能を提供するようになりました。[ 6 ] 2005 年後半には、PortalPlayerが販売するシステム オン チップに組み込まれたARM Ltd.の CPU をベースにした Apple の iPod ポータブルプレーヤーへの Rockbox の移植作業が始まりました。2006 年を通して、さまざまな iPod モデル向けの Rockbox 移植版が利用可能になりました。2007 年以降、さまざまな ARM7、ARM9、ARM11シリーズ プロセッサをベースにした新しい Apple および iRiver プレーヤーに加えて、 Sandisk、Toshiba、Olympus、Philipsのプレーヤーなど、多数の追加の ARM ベースのターゲット向けの移植版が利用可能になりました。この期間中、ARM シリーズの各プロセッサ向けにオープンソースのオーディオデコーダを最適化するための広範な作業が行われました。2008 年、MIPS アーキテクチャに基づくプロセッサへの移植が開始されました。2010 年、Rockbox がより複雑なオペレーティングシステム内でアプリケーションとして実行される「ホスト型」アーキテクチャのサポート作業が開始されました。
2012年現在Rockbox の移植はすべて、メーカーの支援をほとんど、あるいは全く受けずにリバースエンジニアリングによって実現されました。フリーソフトウェアである Rockbox の開発者や支持者の多くは、いずれは新しい移植に対するメーカーの公式サポート、あるいは少なくとも Rockbox を新しいデバイスに移植するための非公式な支援が得られることを期待しています。Rockbox に興味を示した企業はごくわずかで、公式にプロジェクトにコードを提供したり、ハードウェアに組み込んだりした企業はありません。Sansa e200v1 の移植は、ハードウェアメーカーの要請により開始された最初の移植であり、メーカーは Rockbox チームにデバイスのサンプルを提供しました。
Rockbox は継続的に開発されており、ソースコードが変更されるたびに新しいGitビルドがリリースされ、十分に成熟したとみなされるターゲットについては 4 か月ごとに安定版がリリースされます。[ 8 ]さらに、サポートされていないターゲットの開発者向けにビルドが提供されることがよくありますが、それらはある程度機能するものの、機能が不完全であったり安定性が低いため、通常は一般ユーザー向けには適していません。[ 9 ] 2025 年現在、最新の安定版ビルドは 4.0 です。[ 10 ]
Rockboxは、2010年以降人気が高まっている、より高性能な汎用デバイス(スマートフォンやタブレットコンピュータなど)ではなく、主にデジタルオーディオプレーヤーを対象としています。 [ 11 ] Rockboxプロジェクトの創設者であるダニエル・ステンバーグは、このプロジェクトがスタンドアロンのRockboxオペレーティングシステムから、 Android、iOS、Sailfish OS、Tizenなどのモバイルオペレーティングシステム上で動作するメディアプレーヤーアプリケーションとしてのRockboxへと進化することを構想しています。
Fosdem 2010 での Rockbox に関する私の講演後のチャットで、Rockbox のコア開発者 2 人 (Zagor と gevaerts) は、Rockbox の将来はアプリケーションとして実行されることになるという一般的な見解に同意しているようでした。上記の既存のシステムの中で、私は Android に焦点を当ててこの作業を開始したいと考えています。Android は最も幅広い企業の支援とオープンソースが組み合わさっており、最も使用されているオープンな電話 OS でもあります。バックボーンは既に所有し使用している移植可能なコードのままにできるはずなので、これらのすべてのプラットフォームで作業することを妨げるものは何もないと思います。さらに、一般的なデスクトップ向けの通常のアプリにもなるかもしれません。[ 12 ]
Rockboxを本格的なオペレーティングシステム上でアプリケーションとして動作させるための移植プロジェクトが、Googleの2010 Summer of Code [ 13 ]に採択され、完了しました。[ 14 ]現在、RockboxはAndroidベースのプレーヤーで動作しますが、Androidへの統合とタッチベースのデバイスで動作するように変換する作業が進行中です。[ 15 ]その後、匿名の中国人開発者が非公式にRockboxをPalmのWebOSに移植しました。[ 16 ]

各プラットフォームの制限はあるものの、Rockbox の外観はさまざまな方法でカスタマイズできます。フォントや前景色、背景色を追加して選択できるほか、シンプルなマークアップ言語を使用してメニュー画面や再生画面のテーマを作成できます。[ 17 ]これらのテーマには、背景やその他の画像 (アイコンなど) に加え、ファイル名、ID3 タグ、アルバム アート、ファイルの進行状況、時間やシステム情報などのさまざまな形式を含めることができます。
Rockboxは基本的にファイルツリーベースのプレーヤーであり、フォルダーをドラッグアンドドロップしてフォルダー構造でナビゲートすることができました。しかし、最近のバージョンでは、プレーヤーがファイルのID3タグから情報を収集できる補完的なデータベース機能が追加されました。[ 18 ]これにより、ユーザーはファイル構造に関係なくファイルをナビゲートできます。
Rockboxには、オリジナルのオペレーティングファームウェアでサポートされている機能以外にも多くの機能がありますが、多くの場合、制限があります。「安定」と分類されサポートされているプラットフォームでは、デバイスをデジタル音楽プレーヤーとして使用できますが、そのようなプラットフォームでもRockboxは充電やUSBをサポートしていません。プレーヤーを充電したりファイルを転送したりするには、オリジナルのファームウェアにデュアルブートする必要があります。一部のプラットフォームは「不安定」と分類されていますが、サポートされています。「使用不可」とみなされるプラットフォームはサポートされておらず、使用は推奨されません。一部の移植プロジェクトは、コードが書かれていない開発前の収集段階にあります。[ 19 ]
Rockbox は、ソフトウェア デコード プラットフォーム (Archos 以外) 上で、12 種類のロッシーコーデック (数え方による)、5 種類のロスレス、2 種類の非圧縮、および 12 種類のその他のフォーマットの再生をサポートしています。[ 20 ]これにより、サポートされているオーディオ フォーマットの総数は控えめに見積もっても 30 種類になりますが、そのうちのいくつかはすべてのプラットフォームでリアルタイムに動作するわけではありません。各コーデックの最適化には多大な労力が費やされており、FLAC、Ogg Vorbis、WMA、APE、TTA、MPC、Wavpack、ATRAC3、Cook、WMA Pro は、これらのフォーマットで知られている最速の整数実装の一部です。[ 21 ]
さらに、ADX、SID、NSF、SAP、SPC、AY、GBS、HES、KSS、SGC、VGM、VGZといったゲームオーディオ形式の再生にも対応しています。MODトラッカーフォーマットやヤマハSMAFもサポートされるようになりました。[ 22 ]
Monkey's Audioの一部のプロファイルは、CPU負荷が非常に高いため、すべてのターゲットでリアルタイム再生に対応していません。また、Rockboxはデジタル著作権管理(DRM)方式のファイルを再生できません。
Rockboxは、オーディオファイルの再生と録音機能に加え、他のファームウェアパッケージにはまだ実装されていない多くの再生機能強化を提供します。以下に、それらの機能の一部をご紹介します。
Rockboxの開発者はプラグインを作成することができ、これにより、さまざまなファームウェアモジュールでは利用できないその他の拡張機能をユーザーに提供できます。
利用可能なプラグインは以下のとおりです。
出典:[ 37 ]
出典: [ 38 ]
出典: [ 39 ]
Rockbox は、シンプルなカーネル[ 40 ]とフラットなメモリ モデル、および単一のプロセスを使用しており、メモリ管理ユニットのないプラットフォームでも実行できます。 細いスレッドは協調して実行され、オーディオ スレッドを優先するスケジューラに制御を戻します。プリエンプションの唯一の形式は割り込みによるものです。 オペレーティングシステムとプラグインはCで記述されており、デバイスおよびプラットフォーム固有でパフォーマンスに影響されるコードにはアセンブリが使用されます。 シンプルで軽量なアーキテクチャにより、Rockbox はさまざまなターゲットで実行できます。 Rockbox は、ARM、ColdFire、MIPS、およびSHに基づくマルチコアおよび非対称マルチプロセッサシステムもサポートしています。 電力効率を高めるために、いくつかのコーデックを 2 つの CPU コアに並列化できます。また、現在は削除されている[ 41 ] HWCODEC インターフェイスにより、専用のオーディオ デコーダ DSP が可能でした。

Rockbox Utilityは、Linux、Mac OS X、Microsoft Windowsに対応した無料のコンピュータアプリケーションで、Digia Qtプラットフォームを使用して開発されており、DAPへのRockboxのインストールと管理に使用されます。Rockbox Utilityは、Rockbox本体、テーマ、音声ファイルを、ユーザーの操作を最小限に抑えながら、DAPに直接自動的にインストールします。Rockbox Utilityは、新しいデバイスのサポートが追加されるたびに頻繁にアップデートされます。
{{cite web}}:|author=一般的な名前を持っています (ヘルプ)