Rockbox
Rockbox is a free and open-source software replacement for the OEM firmware in various forms of digital audio players with an original kernel. It offers an alternative to the player's operating system, in many cases without removing the original firmware, which provides a plug-in architecture for adding various enhancements and functions. Enhancements include personal digital assistant functions, applications, utilities, and games. Rockbox can also retrofit video playback functions on players first released in mid-2000. Rockbox includes a voice-driven user-interface suitable for operation by visually impaired users.
Rockbox runs on a wide variety of 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 abilities.
History
The Rockbox project began in late 2001 and was first implemented on the early Archos series of hard-disk based MP3 players/recorders, because of owner frustration with severe limitations in the manufacturer-supplied user interface and device operations. These devices have relatively weak main central processing units, and instead offload music playback to dedicated hardware MP3 decoding chips. Rockbox was unable to significantly alter playback abilities. Instead, it offered a greatly improved user interface and added plug-in functions absent in the factory firmware. Rockbox can be permanently flashed into flash memory on the Archos devices, making it a 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, and adding the extensibility and increased functions already present in the Archos ports. Rockbox is run from the hard drive or flash memory after being started with a custom boot loader, so to upgrade Rockbox, users need only copy the files onto the player's drive and restart the device. Reflashing is only needed when changing the boot loader, and on some platforms is not needed 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. About one year later, a port for the H3xx series became functional, offering similar functions. In late 2005, work began on a port of Rockbox to Apple's iPod portable players based on CPUs from ARM Ltd. incorporated into systems on a chip sold by PortalPlayer. Throughout 2006, Rockbox ports were made available for a variety of iPod models. Beginning in 2007, ports became available for a large number of additional ARM based targets, including players from Sandisk, Toshiba, Olympus and Philips in addition to newer Apple and iRiver players based on a variety of ARM7, ARM9 and ARM11 series processors. During this time, extensive work was conducted optimizing open source audio decoders for each of the ARM series processors. In 2008, porting began to processors based on the MIPS architecture. In 2010, work began on supporting "hosted" architectures where Rockbox runs as an application inside of more complex operating system.
all Rockbox ports have been accomplished by reverse engineering with little or no manufacturer assistance. 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. 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 e200v1 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 Git 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.
Future
Rockbox is targeted primarily at digital audio players, rather than the much more powerful general-purpose devices that have been increasing in popularity since 2010. Some authorities expect the former class of devices to become obsolete in the next few years.Daniel Stenberg, a founder of the Rockbox project, envisions the project evolving away from a standalone Rockbox operating system to Rockbox as a media player application that runs under mobile operating systems, such as Android, iOS, Sailfish OS or Tizen:
A project to port Rockbox to run as an application under a full-fledged operating system was accepted for Google's 2010 Summer of Code and completed. Currently, Rockbox runs on Android based players, but integration into Android and conversion to work with touch based devices is ongoing. Subsequently, an anonymous Chinese developer unofficially ported Rockbox to Palm's WebOS.
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 playback screens. These themes can include backgrounds and other images, plus various formats for file names, ID3 tags, album art, file progress, and time and system information.Rockbox has essentially been a file-tree based player, to which folders could be dragged and dropped and then navigated by folder structure. However, more recent versions have included a complementary database feature which allows the player to compile information from the files' ID3 tags. The user can then navigate the files regardless of file structure.
Features
Target status
Rockbox has many features additional to those supported by the original operating firmware, but in many cases there are limitations. On platforms classified as "stable" and supported, the device can be used as a digital music player, but even on some such platforms Rockbox does not support charging or USB; the player must be dual-booted into the original firmware to be charged or to transfer files. Some platforms are classified as "unstable", but supported; those deemed "unusable" are not supported, and their use is not recommended. Some porting projects are in a pre-development hunting and gathering stage, with no code written.Codecs
Rockbox on software decoding platforms supports playback of twelve lossy codecs, five lossless, two uncompressed and twelve miscellaneous formats. This makes a conservative total of 30 supported audio formats, although a few of them do not operate in realtime on all platforms. Extensive work has gone into optimizing each codec, with FLAC, Ogg Vorbis, WMA, APE, TTA, MPC, Wavpack, ATRAC3, Cook and WMA Pro among the fastest known integer implementations for those formats.Lossy formats
- MPEG audio layers I-III
- Ogg Vorbis
- MPEG-4 AAC
- Musepack
- AC3
- WMA Standard
- WMA Professional
- Speex
- Cook
- ATRAC3
- The lossy portion of WavPack hybrid files
- Opus
Lossless formats
- FLAC
- ALAC
- WavPack
- Shorten
- Monkey's Audio
- TTA
Uncompressed formats
- WAV
- AIFF
Miscellaneous formats
In addition, there are playback of game audio types ADX, SID, NSF, SAP, SPC, AY, GBS, HES, KSS, SGC, VGM, and VGZ. The MOD tracker format, and the Yamaha SMAF are also now supported.Some profiles in Monkey's Audio are not real time on all targets due to very high CPU needs. Also, Rockbox will not play files with a digital rights management scheme.
Rockbox features
Beside the ability of playing and recording audio files, Rockbox offers many playback enhancements that other firmware packages may not have implemented yet. Listed below are a handful of these features.- Gapless playback
- Crossfading
- ReplayGain
- 10 band fully parametric equalizer
- Variable speed decoding with pitch correction
- Crossfeed
- OTF playlists
- True random shuffle
- Custom UI themes
- Dynamic Playlists
- Stereo voice/MIC & FM radio recording to WAV/AIFF/WavPack and MP3
- Remote control
- Digital S/PDIF input/output
- Last.fm support
- Cue sheet support
- Album art
- Sleep timer
Plug-ins
Available plug-ins include:
- JPEG viewer
- Rockboy Game Boy emulator
- ZXBox ZX Spectrum emulator
- Doom
- Duke Nukem 3D, Quake, and Wolfenstein 3D running atop a version of the Simple DirectMedia Layer runtime
- XWorld, a clone of Another World
- WAV to MP3 and Wavpack encoder
- MPEG video player
- PictureFlow, an album art viewer similar to Apple's Cover Flow
- Various games including 2048, sudoku, solitaire, chess, minesweeper, pong and many others
- Musical Instrument Digital Interface player, real-time on some targets.
- MikMod, used to play multiple module file formats
Architecture