Rockbox
is a free software replacement for the firmware held on various forms of digital audio players (DAPs). Rockbox offers an alternative to the host device's operating system firmware (in many cases without removing the original firmware) which provides a plug-in architecture for adding various enhancements and functionality to DAPs which are not present in the original OS. Enhancements include PDA functionality, applications, utilities, and games. Rockbox can also retrofit video playback functionality onto DAPs first released in mid-2000. Rockbox also includes a voice-driven user-interface suitable for operation by blind and visually impaired users.
Rockbox runs on a wide variety of portable audio devices with very different hardware abilities: from early Archos players with 1-bit character cell-based displays to modern players with high resolution color displays, digital optical audio hardware and advanced recording capabilities.
Released under the GNU General Public License, Rockbox is free software.
|
ROCKBOX TICKETS
|
Development
The Rockbox project began in late 2001 and was first implemented on the early
Archos series of hard-disk based
MP3 players and player/recorders, including the flash-only model Ondio, because of owner frustration with severe limitations in the manufacturer-supplied user interface and device operations. These devices have relatively weak main
CPUs and instead offload music playback to dedicated hardware MP3 decoding chips (called the MAS). Rockbox, therefore, was unable to significantly alter playback capabilities. Instead, it offered a greatly improved user interface and added
plugin functionality not present in the factory firmware. Rockbox is capable of being permanently flashed into flash memory on the Archos devices, making it a literal firmware replacement.
Versions of Rockbox have since been produced for more sophisticated devices. These perform audio decoding in
software, allowing Rockbox to potentially support many more music formats than the original firmware as well as bringing the extensibility and increased functionality already present in the Archos ports. Rockbox is run from the hard disk on these devices, after being started with a custom bootloader, so to upgrade Rockbox users need only copy the files onto the player's drive and restart the device. Reflashing is only necessary when changing the bootloader, and on some platforms, is not required at all.
The first of these ports, beginning in late 2004, was for the
ColdFire-powered devices manufactured by
iriver, focusing on the
H1xx series of hard drive players (H110/H120/H140). Approximately one year later a port for the
H3xx series became functional, offering similar functionality.
In late 2005, work began on a port of Rockbox to Apple iPod portable players. Throughout 2006, Rockbox ports were made available for a variety of iPod models (
iPod photo,
iPod nano,
iPod 4g,
iPod mini, and
iPod Video), as well as the
Cowon iAUDIO X5 series. As of February 2007, usable ports are also available for the iriver H10 and
Toshiba Gigabeat F & X series. As of March 5th, 2007, a new port for the
Cowon iAUDIO M5 became functional. On March 11th, 2007, the
SanDisk Sansa e200 series became the next addition to the Rockbox lineup. On May 23rd, 2007, support for the iPod video 80 GB model was added, completing the iPod video lineup. On July 27, 2007, initial support was added for the iPod 1G and 2G. On September 23, 2007, the Sansa c200 series was welcomed into the lineup. On March 18th, 2008, the Olympus
m:robe 100 became the first new port of 2008, and the
iAUDIO M3 joined the lineup days later. Rockbox now includes video-support for
MPEG playback through the included work-in-progress mpegplayer plugin.
To date, all Rockbox ports have been accomplished by reverse engineering with little or no manufacturer assistance. However, as free software, many Rockbox developers and supporters hope to eventually see official manufacturer support for new ports, or at least unofficial assistance in porting Rockbox to new devices. To date, only a few companies have expressed interest in Rockbox, and none have officially contributed code to the project or included it with their hardware. The Sansa port is the first to be started at the request of the hardware manufacturer who gave the Rockbox team samples of their devices.
Rockbox is continuously developed, with new
SVN builds being released after every source change, and stable releases every 4 months for targets deemed sufficiently mature. Additionally builds are often available to developers of unsupported targets, which while somewhat functional are typically not ready for general users due to incomplete features or poor stability.
Customization
Subject to the limitations of each particular platform, the appearance of Rockbox can be customised in various ways. Fonts and foreground and background colours can be added and selected, while a simple
markup language can be used to create themes for the menu and while-playing screens. These themes can include background and other images (such as icons), plus various formats for filenames, ID3 tags, Album art, file progress, time and system information.
Rockbox has been essentially a file-tree based player, to which folders could be dragged and dropped, then navigated by folder structure. More recent versions, however, have included a database feature which allows the player to compile information from the files'
ID3 tags. The user can then navigate the files using this database regardless of file structure.
Features
Codecs
Rockbox on software decoding platforms (non-Archos) supports playback (depending on how you count them) of ten
lossy codecs, five
lossless, two uncompressed and six miscellaneous formats. This makes a conservative total of 23 supported audio formats, although a few of them do not operate in realtime on all platforms.
MPEG audio layers I-III (
MP3/
MP2/
MP1),
Ogg Vorbis,
MPEG-4 AAC (in
MP4 or
RM containers),
Musepack,
AC3,
WMA,
Speex,
Cook,
ATRAC3 and the lossy portion of
WavPack hybrid files are supported lossy formats. Lossless formats include
FLAC,
WavPack,
Shorten,
Apple Lossless and
Monkey's Audio. Rockbox plays Intel-style
WAV and Apple
AIFF uncompressed audio. In addition, there are playback of game audio types
ADX,
SID,
NSF,
SAP and
SPC. The
MOD tracker format is also now supported.
[1]
Note that some profiles in Monkey's Audio are not real time on all targets due to extremely high CPU requirements. Also note that any file with
DRM scheme will not play in Rockbox.
Rockbox features
Beside the ability of playing and recording audio files, Rockbox offers many playback enhancements that other firmwares may not have implemented yet. Listed below are a handful of these features.
- Gapless playback
- Crossfading
- Replay Gain [2]
- 5 band fully parametric equalizer
- Variable speed decoding with pitch correction
- Crossfeed
- OTF ("on the fly") playlists
- True random shuffle (fresh randomly shuffled list every time)
- Custom UI themes
- Dynamic Playlists (queue files to play next, or in other parts of a dynamic playlist)
- Stereo recording to WAV/AIFF/WavPack (lossless) and MP3 [3] (supporting devices)
- FM radio, including FM recording (supporting devices)
- Remote control (supporting devices)
- Digital SPDIF input/output (supporting devices)
- Last.fm support (even on players lacking RTC)
- Cue sheet support
- Changeable selector bar
- Album art [4]
- Sleep timer
Plug-ins
Rockbox developers can create
plug-ins, which provide the user with other enhancements that may not be available on various
firmware modules.
Available plug-ins include:
- JPEG viewer (16 bit color/129 shade greyscale) [5]
- Rockboy Game Boy emulator (port of Gnuboy) [6]
- ZXBox ZX Spectrum emulator (port of Spectemu) [7]
- Doom
(port of the PrBoom engine)
- WAV to MP3 encoder
- WAV to WavPack encoder
- MPEG video player [8]
- PictureFlow, an album art viewer similar to Apple's Cover Flow
- Various games including sudoku, solitaire, minesweeper, pong and many others (see http://www.rockbox.org/twiki/bin/view/Main/PluginIndex for an official list of plugins)
- MIDI player, realtime on some targets. Requires external instrument set, available on Rockbox page.
Unimplemented features
Rockbox development is always ongoing. However, either due to the lack of support from external
companies or
platform drawbacks, Rockbox has a few features which are not yet implemented.
- Firewire
- Digital rights management (or Digital Restrictions Management) (intentionally unimplemented)
- USB host capability ("USB On-The-Go")
Architecture
Rockbox uses a simple kernel,
[9] with a
flat memory model (allowing it to run on platforms without a
memory management unit) and single
process. Thin
threads run
cooperatively, returning control to a
scheduler that prioritizes the audio thread; the only form of
preemption is through
interrupts. The operating system and plugins are written in
C, with
assembler used for device- and platform-specific code, in addition to performance sensitive code. The simple and lightweight architecture allows Rockbox to run on a variety of targets, with memory ranging from 1 to 64 MB, and CPU speeds ranging 12 to 532 MHz. Rockbox also provides limited support for multicore and
asymmetric multiprocessor systems based on
ARM,
Coldfire,
MIPS and
SH.
Supported devices
The following should be considered to be a list of devices that at least substantially work (listed as "Supported" or "Usable" on the Rockbox wiki Device Chart). See the for details.
Archos
- Archos Jukebox series:
- * Jukebox 6000
- * Jukebox Player/Studio
- * Jukebox Recorder
- FM Recorder
- Recorder v2
- Ondio FM
- Ondio SP
iriver
- H10 series (H10 5, 6, and 20 GB)
- H100 series (H100/H110/H115/H120/H140, aka iHP-100/110/115/120/140)
- H300 series (H320/H340)
Cowon iAUDIO
- X5 and X5L
- X5V
- M5 and M5L
- M3 and M3L
Apple
- iPod 1st generation
- iPod 2nd generation
- iPod 3rd generation
- iPod 4th generation (Grayscale)
- iPod 4th generation (Color/Photo)
- iPod 5th and 5.5 generation (Video)
- iPod mini 1st generation
- iPod mini 2nd generation
- iPod nano 1st generation
Toshiba
- Gigabeat F series (F10/F11/F20/F21/F30/F31/F40/F41/F60)
- Gigabeat X series
- Gigabeat S series (Standard build works, requires a couple of external steps.)
SanDisk
- Sansa e200 series
- Sansa e200r series
- Sansa c200 series
High density microSDHC memory cards can be read by Rockbox in the e200 series.
The current versions of the Sansa ("v2"), including the e200v2, c200v2, m200v4 and Clip are not yet supported and are under development. However, as of July 2009 a test build of the Rockbox firmware has been known to successfully run on the Sansa Fuze.
Olympus
See also
References
- As of revision 17595 (12:19, 21 May 2008 (UTC))
- Software decoding targets only
- MP3, WavPack and AIFF are available on non-Archos devices. Multiple sample rates and bitrates available (hardware-dependent).
- Some limitations. Details at Rockbox Wiki [1]
- 129 shade greyscale is achieved on 1 bit and 2 bit (4 shade) greyscale targets due to exploitation of the slow passive LCD refresh rate.
- Rockboy supports original Game Boy and Game Boy Color ROMs.
- ZXBox emulates ZX Spectrum 48. The original site of Spectemu. [1]
- The mpegplayer plugin supports MPEG-1 and MPEG-2 video streams with MPEG audio (layer II/III) multiplexed into .mpg files with no hard limits on frame rate or bitrate. Files must be encoded at native screen resolution. Seeking is now implemented. [1]
- About the Rockbox kernel