Rockbox
Developer | The Rockbox Project |
---|---|
Written in | C,assembly language |
Source model | Open source |
Initial release | June 2, 2002 |
Latest release | 3.15 / November 15, 2019[1] |
Latest preview | Daily |
Repository | |
Marketing target | Firmwarereplacement fordigital audio players |
Platforms | Digital audio players, various |
Default user interface | GUI |
License | GNU GPLv2or later |
Official website | www |
Rockboxis afree and open-source softwarereplacement for the OEMfirmwarein various forms ofdigital audio players(DAPs) with an original kernel.[2][3]It offers an alternative to the player'soperating system,in many cases without removing the original firmware, which provides a plug-in architecture for adding various enhancements and functions. Enhancements includepersonal digital assistant(PDA) functions, applications, utilities, and games. Rockbox can alsoretrofitvideo playback functions on players first released in mid-2000. Rockbox includes a voice-driven user-interface suitable for operation byvisually impairedusers.[4][5]
Rockbox runs on a wide variety of devices with very different hardware abilities: from earlyArchosplayers with 1-bitcharacter cell-based displays, to modern players with high resolution color displays, digital optical audio hardware and advanced recording abilities.
History
[edit]The Rockbox project began in late 2001 and was first implemented on the earlyArchosseries 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 maincentral 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 addedplug-infunctions 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 insoftware,[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 theColdFire-powered devices manufactured byiriver,focusing on theH1xx seriesof hard drive players (H110/H120/H140). About one year later, a port for theH3xx seriesbecame functional, offering similar functions.[6]In late 2005, work began on a port of Rockbox to Apple's iPod portable players based on CPUs fromARM Ltd.incorporated intosystems on a chipsold byPortalPlayer.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 fromSandisk,Toshiba,OlympusandPhilipsin 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 theMIPS architecture.In 2010, work began on supporting "hosted" architectures where Rockbox runs as an application inside of more complexoperating system.
As of 2012[update]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 newGitbuilds 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 2021, there have been no new ports released.
Future
[edit]Rockbox is targeted primarily atdigital audio players,rather than the much more powerful general-purpose devices (such assmartphonesandtablet 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 undermobile operating systems,such asAndroid,iOS,Sailfish OSorTizen:
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 forGoogle's 2010Summer 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 toPalm'sWebOS.[15]
Customization
[edit]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 simplemarkup languagecan 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
[edit]Target status
[edit]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
[edit]Rockbox on software decoding platforms (non-Archos) supports playback of twelvelossycodecs (depending on how one counts), fivelossless,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
[edit]- MPEG audio layers I-III (MP3/MP2/MP1)
- Ogg Vorbis
- MPEG-4 AAC(-LC/HE/HEv2 profiles) (inMP4orRMcontainers)
- Musepack
- AC3(raw orRMcontainer)
- WMA Standard
- WMA Professional
- Speex
- Cook
- ATRAC3
- The lossy portion ofWavPackhybrid files
- Opus
Lossless formats
[edit]Uncompressed formats
[edit]Together they include over a dozen differentPCMandADPCMformats.
Miscellaneous formats
[edit]In addition, there are playback of game audio typesADX,SID,NSF,SAP,SPC,AY,GBS,HES,KSS, SGC,VGM,andVGZ.TheMODtrackerformat, and the YamahaSMAFare 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 adigital rights management(DRM) scheme.
Rockbox features
[edit]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[22]
- Crossfading[23]
- ReplayGain[24]
- 10 band fullyparametric equalizer[24]
- Variable speed decoding with pitch correction[25]
- Crossfeed[24]
- OTF ( "on the fly" ) playlists
- True random shuffle (fresh randomly shuffled list every time)
- CustomUI themes[26]
- Dynamic Playlists (queue files to play next, or in other parts of a dynamic playlist)
- Stereo voice/MIC & FM radio recording to WAV/AIFF/WavPack (lossless) and MP3[27][28](limited model/device/target support)
- Remote control (supporting devices)
- DigitalS/PDIFinput/output (supporting devices)
- Last.fmsupport (even on players lackingRTC)
- Cue sheetsupport
- Album art[29]
- Sleep timer
Plug-ins
[edit]Rockbox developers can createplug-ins,which provide the user with other enhancements that may not be available on variousfirmwaremodules.
Available plug-ins include:
- JPEGviewer (16 bit color/129 shade greyscale)[30]
- RockboyGame Boyemulator (port ofGnuboy)[31]
- ZXBoxZX Spectrumemulator (port of Spectemu)[32]
- Doom(port of thePrBoomengine)
- Duke Nukem 3D,Quake,andWolfenstein 3Drunning atop a version of theSimple DirectMedia Layerruntime
- XWorld,a clone ofAnother World[33]
- WAV to MP3 and Wavpack encoder
- MPEG video player[34]
- PictureFlow, an album art viewer similar to Apple'sCover Flow
- Various games including2048,Sudoku,Solitaire,Chess, Minesweeper, Pong and many others (seehttps:// rockbox.org/wiki/PluginIndexfor an official list of plug-ins)
- Musical Instrument Digital Interface(MIDI) player, real-time on some targets.
- MikMod,used to play multiplemodule fileformats[35]
Architecture
[edit]Rockbox uses a simple kernel,[36]with aflat memory modeland singleprocess,letting it run on platforms without amemory management unit.Thinthreadsruncooperatively,returning control to aschedulerthat prioritizes the audio thread; the only form ofpreemptionis throughinterrupts.The operating system and plug-ins are written inC,withassemblyused 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 andasymmetric multiprocessorsystems based onARM,ColdFire,MIPSandSH.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
[edit]The Rockbox Utility is a free computer application, available forLinux,Mac OS X,andMicrosoft Windows,built using DigiaQtplatform, 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
[edit]References
[edit]- ^"ReleaseNotes315".Rockbox. November 15, 2019.RetrievedNovember 15,2019.
- ^"RockboxKernel < Main < Wiki".
- ^"Rockbox | Linux Journal".
- ^"BlindFAQ < Main < Wiki".rockbox.org.Retrieved2016-05-14.
- ^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.ISBN9783540705390.
- ^ab"rockbox history".GitHub.
- ^"rockbox software decode".
- ^"buildsys".
- ^"unstable".
- ^Joe Brockmeier (June 16, 2010)."Rockbox 3.6 and Beyond".LWN.net.
- ^Daniel Stenberg (February 15, 2010)."The Rockbox future is an app".Daniel Stenberg's blog.
- ^"RockboxAsAnApplication2010 < Main < Wiki".Rockbox.org.RetrievedMarch 12,2011.
- ^Rockbox Contributors."mail archive".Rockbox.RetrievedMarch 12,2011.
{{cite web}}
:|author=
has generic name (help) - ^"TouchscreenInterface < Main < Wiki".Rockbox.org.RetrievedMarch 12,2011.
- ^"Vạn năng máy chiếu ROCKBOX for palm pre, tân mềm duy trì hạ, tuyệt đối sẽ không thất vọng ~~ – Palm Pre/+, Pixi/+, webOS – Pre, Pixi, webOS, Treo – Powered by Discuz!".Treo8.RetrievedMarch 12,2011.
- ^"Customising the User Interface".Rockbox Manual.RetrievedMay 22,2011.
- ^"Database".Rockbox Manual.RetrievedMay 22,2011.
- ^Rockbox Target Status
- ^"Rockbox Supported audio formats".Rockbox Manual.
- ^"Codec performance comparison – Hydrogenaudio Forums".Hydrogenaudio.RetrievedMarch 12,2011.
- ^"Other Codecs".Rockbox Manual.RetrievedMay 22,2011.
- ^"Codec Featureset".Rockbox Manual.RetrievedMay 22,2011.
- ^"Crossfade".Rockbox Manual.RetrievedMay 22,2011.
- ^abcSoftware decoding targets only
- ^"Pitch".Rockbox Manual.RetrievedMay 22,2011.
- ^"Rockbox themes".Retrieved19 April2012.
- ^MP3.
- ^"Recording".Rockbox Manual.RetrievedMay 22,2011.
- ^"Some limitations. Details at Rockbox Wiki".Rockbox.org.RetrievedMarch 12,2011.
- ^129 shade greyscale is achieved on 1 bit and 2 bit (4 shade) greyscale targets due to exploitation of the slow passiveLCDrefresh rate.
- ^Rockboy supports original Game Boy andGame Boy ColorROMs.
- ^ZXBox emulates ZX Spectrum 48. The original site of SpectemuArchived2006-09-29 at theWayback Machine
- ^"[TESTERS NEEDED] Another World".
- ^The mpegplayer plug-in supportsMPEG-1andMPEG-2video streams with MPEG audio (layer II/III) multiplexed into.mpg files with no hard limits onframe rateorbit rate.Files must be encoded atnativescreenresolution.Seeking is now implemented.[1]
- ^FS#8806 - MikMod MOD, S3M, IT, XM player
- ^"About the Rockbox kernel".Rockbox.org.RetrievedMarch 12,2011.
External links
[edit]- Official website
- FLOSS Weekly–43: RockboxTWiT.tv (network)podcast with Paul Louden of Rockbox
- Custom firmware
- Digital audio players
- Embedded operating systems
- Free software projects
- Free software primarily written in assembly language
- Free software programmed in C
- Free media players
- Free and open-source Android software
- IPod software
- Lua (programming language)-scriptable software
- Portable media players