Rockbox

Last updated
Rockbox
Rockbox Logo.svg
Rockbox screen.png
Main menu using default theme
Developer The Rockbox Project
Written in C, assembly language
Source model Open source
Initial releaseJune 2, 2002;22 years ago (2002-06-02)
Latest release 3.15 / November 15, 2019;5 years ago (2019-11-15) [1]
Latest preview Daily
Repository
Marketing target Firmware replacement for digital audio players
PlatformsDigital audio players, various
Default
user interface
GUI
License GNU GPLv2 or later
Official website www.rockbox.org

Rockbox is a free and open-source software replacement for the OEM firmware in various forms of digital audio players (DAPs) with an original kernel. [2] [3] 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 (PDA) 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. [4] [5]

Contents

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 (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 central processing units (CPU), and instead offload music playback to dedicated hardware MP3 decoding chips (MAS). [6] 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, [7] 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 (H110/H120/H140). About one year later, a port for the H3xx series became functional, offering similar functions. [6] 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.

As of 2012 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. [8] 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. [9]

As of 2024, there have been no new ports released.

Future

Rockbox is targeted primarily at digital audio players, rather than the much more powerful general-purpose devices (such as smartphones and tablet computers) that have been increasing in popularity since 2010. Some authorities expect the former class of devices to become obsolete in the next few years[ when? ]. [10]

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:

In a chat after my Rockbox talk at Fosdem 2010, two other core Rockbox developers (Zagor and gevaerts) seemed to agree to the general view that a Rockbox future involves it running as an application. Out of the existing systems mentioned above, I'd prefer to start this work focused on Android. It has the widest company backing combined with open source, and it's also the most used open phone OS. I don't think there's anything that will prevent us from working on all those platforms, as the back-bone should be able to remain the same and portable code we already have and use. Heck, it could then also become more of a regular app for common desktops, too. [11]

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 [12] and completed. [13] Currently, Rockbox runs on Android based players, but integration into Android and conversion to work with touch based devices is ongoing. [14] Subsequently, an anonymous Chinese developer unofficially ported Rockbox to Palm's WebOS. [15]

Customization

A custom Rockbox theme: Brushed Metal Wps-brushedmetalh300wps.png
A custom Rockbox theme: Brushed Metal

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. [16] These themes can include backgrounds and other images (such as icons), 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. [17] 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. [18]

Codecs

Rockbox on software decoding platforms (non-Archos) supports playback of twelve lossy codecs (depending on how one counts), five lossless, two uncompressed and twelve miscellaneous formats. [19] 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. [20]

Lossy formats

Lossless formats

Uncompressed formats

Together they include over a dozen different PCM and ADPCM formats.

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. [21]

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 (DRM) 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.

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:

Retired ports

Source: [36]

Stable and functional ports

Source: [37]

Unstable ports

Source: [38]

Architecture

Rockbox uses a simple kernel, [39] with a flat memory model and single process, letting it run on platforms without a memory management unit. 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 plug-ins are written in C, with assembly used for code that is device- and platform-specific, and performance sensitive. 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 support for multicore and asymmetric multiprocessor systems based on ARM, ColdFire, MIPS and SH. Several codecs can be parallelized across 2 CPU cores for increased power efficiency, and the HWCODEC interface allows for dedicated audio decoder DSPs.

Rockbox Utility

An iPod Nano showing a grayscale "Do Not Disconnect" screen from the iPod Mini series with a new screen on the iPod Classic, although it is bundled with the Rockbox package. IPod Nano 1G 4GB On Rockbox & iPod Classic 4G 20GB Do Not Disconnect.jpg
An iPod Nano showing a grayscale "Do Not Disconnect" screen from the iPod Mini series with a new screen on the iPod Classic, although it is bundled with the Rockbox package.

The Rockbox Utility is a free computer application, available for Linux, Mac OS X, and Microsoft Windows, built using Digia Qt platform, that is used to install and manage Rockbox on DAPs. Rockbox Utility provides automatic installation of Rockbox, as well as themes and voice files, directly onto a DAP with minimal user interaction. Rockbox Utility is updated frequently as support for new devices is added.

See also

Related Research Articles

<span class="mw-page-title-main">Vorbis</span> Royalty-free lossy audio encoding format

Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy audio compression, libvorbis. Vorbis is most commonly used in conjunction with the Ogg container format and it is therefore often referred to as Ogg Vorbis.

Monkey's Audio is an algorithm and file format for lossless audio data compression. Lossless data compression does not discard data during the process of encoding, unlike lossy compression methods such as Advanced Audio Coding, MP3, Vorbis, and Opus. Therefore, it may be decompressed to a file that is identical to the source material.

Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. It was designed to be the successor of the MP3 format and generally achieves higher sound quality than MP3 at the same bit rate.

WavPack is a free and open-source lossless audio compression format and application implementing the format. It is unique in the way that it supports hybrid audio compression alongside normal compression which is similar to how FLAC works. It also supports compressing a wide variety of lossless formats, including various variants of PCM and also DSD as used in SACDs, together with its support for surround audio.

<span class="mw-page-title-main">Portable media player</span> Portable device capable of storing and playing digital media

A portable media player (PMP) or digital audio player (DAP) is a portable consumer electronics device capable of storing and playing digital media such as audio, images, and video files. The data is typically stored on a compact disc (CD), Digital Versatile Disc (DVD), Blu-ray Disc (BD), flash memory, microdrive, SD cards or hard disk drive; most earlier PMPs used physical media, but modern players mostly use flash memory. In contrast, analogue portable audio players play music from non-digital media that use analogue media, such as cassette tapes or vinyl records.

Janus was the codename of a version of Windows Media DRM primarily for portable devices, whose marketing name was Windows Media DRM for Portable Devices. It was introduced by Microsoft in 2004 for use on portable media devices which store and access content offline. Napster To Go was the first online music store to require the Janus technology. Supporting Janus often implies that the device also makes use of Media Transfer Protocol (MTP).

iRiver H300 series Series of discontinued portable digital audio players

The iRiver H300 series are a series of portable audio players developed by iRiver, made up of the iRiver H320 and H340 models. They were first announced on September 22, 2004 replacing the H100/iHP-100. Each can play music, transfer pictures directly from digital cameras and UMS-compatible devices, such as flash drives, and display digital images on a colour screen. In the United States, the H320 initially retailed for $329 and the H340 was $429.

iRiver H100 series Series of discontinued portable digital audio players

The iRiver H100 series is a series of discontinued portable digital audio players (DAP) made by iriver and originally released in October 2003. The models in the H100 series differ mainly in hard drive storage capacity. The players were succeeded by the iriver H300 series.

PortalPlayer, Inc., founded in 1999, was a fabless semiconductor company that supplied system-on-a-chip semiconductors, firmware and software for personal media players. The company handled semiconductor design and firmware development, while subcontracting the actual semiconductor manufacturing to merchant foundries.

<span class="mw-page-title-main">Samsung YEPP</span> Brand of electronic devices

Yepp was Samsung Electronics' digital audio player brand until Samsung decided to retire most of their family brands in February 2011. From then on, their MP3 players were simply branded "Samsung" worldwide until they discontinued all of them in late 2013. The brand included a wide range of hard-drive based as well as flash-memory based players. The name is claimed to be an acronym for "young, energetic, passionate person".

The following comparison of portable media players compares general and technical information for important digital playback devices.

<span class="mw-page-title-main">Sansa e200 series</span> SanDisk portable media player

The Sansa e200 series is a portable media player developed by SanDisk and released on January 5, 2006. The device is available in four capacities of Flash memory: 2 GB (e250), 4 GB (e260), 6 GB (e270), and 8 GB (e280). All players have a 1.8-inch, TFT LCD display with a resolution of 176 by 220 pixels. Certain files, if not in a format accepted by the player's original firmware, must first be converted with the Sansa Media Converter Windows software. This will convert images to bitmap format (.bmp) and videos to MJPEG, for v1 models. On v2 players it will convert videos to DivX and simply resize images. It is not possible to simply copy videos to the device, even if they seem to be in the correct format; trying to access them displays an error message.

<span class="mw-page-title-main">SanDisk portable media players</span> Line of portable media players

SanDisk has produced a number of flash memory-based digital audio and portable media players since 2005. The current range of products bears the SanDisk Clip name. SanDisk players were formerly marketed under the Sansa name until 2014.

<span class="mw-page-title-main">Archos Gmini series</span>

The Gmini is a series of portable audio and video players released by Archos in 2004 and 2005.

<span class="mw-page-title-main">Sansa Fuze</span> 2008 portable media player by SanDisk

The Sansa Fuze is a portable media player developed by SanDisk and released on March 8, 2008. The Fuze is available in three different Flash memory capacities: 2 GB, 4 GB, and 8 GB and comes in six different colors: black, blue, pink, red, silver, and white. Storage is expandable via a microSDHC slot with capacity up to 32 GB, and unofficially to 64 GB or more via FAT32 formatted SDXC cards. All models have a 1.9 inch TFT LCD display with a resolution of 220 by 176 pixels and a built-in monaural microphone and FM tuner; recordings of the latter two are saved as PCM WAV files.

<span class="mw-page-title-main">Opus (audio format)</span> Lossy audio coding format

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

<span class="mw-page-title-main">Sansa Fuze+</span>

The Sansa Fuze+ is a portable media player manufactured by SanDisk as part of their Sansa line of MP3 players. The Fuze+ was released on September 1, 2010, and is the direct successor to the Sansa Fuze. The Sansa Fuze+ is available in five colors: Black, Blue, Purple, Red, and White. Internal storage capacities of the player vary by color.

<span class="mw-page-title-main">Samsung YP-R0</span> Digital audio player

The Samsung YP-R0 is a portable media player made by Samsung, leaked on August 10, 2009 and first released end of October 2009 in Russia. It was developed along with the YP-R1 with which it shares several specifications . The R0 is available in three different Flash memory capacities: 4 GB, 8 GB, and 16 GB. It comes in three different colors: black, silver and pink. Storage is expandable via a microSDHC slot with capacity up to 32 GB, and unofficially to 64 GB or more via FAT32 formatted SDXC cards. It features an aluminum case, a 2.6 inch TFT LCD display with a resolution of 240 by 320 pixels, RDS FM tuner, tactile buttons and microUSB connector. Several EQ and sound effects are available through Samsung's DNSe 3.0 sound engine.

<span class="mw-page-title-main">Samsung YP-R1</span>

The Samsung YP-R1 is a portable media player made by Samsung, first leaked on the webshop play.com on June 14, 2009 and then released at the end of September 2009. It was developed along with the YP-R0 with which it shares several specifications . The R1 is available in four different Flash memory capacities: 4 GB, 8 GB, 16 GB and 32 GB. It comes in three different colors: black, silver and pink. It features an aluminum case, a 2.6 inch TFT LCD capacitive touchscreen with a resolution of 240 by 400 pixels, a RDS FM tuner, bluetooth and a proprietary USB connector. Several EQ and sound effects are available through Samsung's DNSe 3.0 sound engine.

References

  1. "ReleaseNotes315". Rockbox. November 15, 2019. Retrieved November 15, 2019.
  2. "RockboxKernel < Main < Wiki".
  3. "Rockbox | Linux Journal".
  4. "BlindFAQ < Main < Wiki". www.rockbox.org. Retrieved 2016-05-14.
  5. Miesenberger, Klaus; Klaus, Joachim; Zagler, Wolfgang; Karshmer, Arthur (2008-07-04). Computers Helping People with Special Needs: 11th International Conference, ICCHP 2008, Linz, Austria, July 9-11, 2008, Proceedings. Springer Science & Business Media. ISBN   9783540705390.
  6. 1 2 "rockbox history". GitHub .
  7. "rockbox software decode".
  8. "buildsys".
  9. "unstable".
  10. Joe Brockmeier (June 16, 2010). "Rockbox 3.6 and Beyond". LWN.net.
  11. Daniel Stenberg (February 15, 2010). "The Rockbox future is an app". Daniel Stenberg's blog.
  12. "RockboxAsAnApplication2010 < Main < Wiki". Rockbox.org. Retrieved March 12, 2011.
  13. Rockbox Contributors. "mail archive". Rockbox. Retrieved March 12, 2011.{{cite web}}: |author= has generic name (help)
  14. "TouchscreenInterface < Main < Wiki". Rockbox.org. Retrieved March 12, 2011.
  15. "万能播放器ROCKBOX for palm pre,新软支持下,绝对不会失望~~ – Palm Pre/+, Pixi/+, webOS – Pre, Pixi, webOS, Treo – Powered by Discuz!". Treo8.com. Retrieved March 12, 2011.
  16. "Customising the User Interface". Rockbox Manual. Retrieved May 22, 2011.
  17. "Database". Rockbox Manual. Retrieved May 22, 2011.
  18. Rockbox Target Status
  19. "Rockbox Supported audio formats". Rockbox Manual.
  20. "Codec performance comparison – Hydrogenaudio Forums". Hydrogenaudio. Retrieved March 12, 2011.
  21. "Other Codecs". Rockbox Manual. Retrieved May 22, 2011.
  22. "Codec Featureset". Rockbox Manual. Retrieved May 22, 2011.
  23. "Crossfade". Rockbox Manual. Retrieved May 22, 2011.
  24. 1 2 3 Software decoding targets only
  25. "Pitch". Rockbox Manual. Retrieved May 22, 2011.
  26. "Rockbox themes" . Retrieved 19 April 2012.
  27. MP3.
  28. "Recording". Rockbox Manual. Retrieved May 22, 2011.
  29. "Some limitations. Details at Rockbox Wiki". Rockbox.org. Retrieved March 12, 2011.
  30. 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.
  31. Rockboy supports original Game Boy and Game Boy Color ROMs.
  32. ZXBox emulates ZX Spectrum 48. The original site of Spectemu Archived 2006-09-29 at the Wayback Machine
  33. "[TESTERS NEEDED] Another World".
  34. The mpegplayer plug-in 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 bit rate. Files must be encoded at native screen resolution. Seeking is now implemented.
  35. FS#8806 - MikMod MOD, S3M, IT, XM player
  36. "WebHome < Main < Wiki". www.rockbox.org. Retrieved 2024-11-30.
  37. "WebHome < Main < Wiki". www.rockbox.org. Retrieved 2024-11-30.
  38. "WebHome < Main < Wiki". www.rockbox.org. Retrieved 2024-11-30.
  39. "About the Rockbox kernel". Rockbox.org. Retrieved March 12, 2011.