Rockbox

IDTask Type  descCategoryPrioritySummaryOpenedOpened byLast Edited
7497PatchesApplicationsVery LowAdd a magic string to bootloader version to enable loca...2007-07-28Dave Hooper52008-08-121 Task Description

Simple patch to add RBBLver prefix + suffix to the bootloader version string. rbutil can scan the binary bootloader file to locate this string to determine the bootloader version. download.rockbox.org can now be updated to include bootloader.version files alongside the binaries (e.g. extract the bootloader version from the binary using od -S 6 | grep RBBLver )

7546PatchesApplicationsVery LowRockboy LCD Unifications (+ iPod Greyscale Support)2007-08-06Tom Ross12007-10-192 Task Description

The patch reorganizes Rockboy to use the same method for storing GB frame buffer data on greyscale targets as color targets. As a result, support for greyscale iPods is much easier and has been implemented (inspired by FS #5282).

Some other changes include:
- Enable the menu for iRiver H100
- Ability to “Show Stats” on all targets
- Screen is redrawn all at once on greyscale instead of line by line
- Elimination of fb.mode (all targets use options.scaling for scaling options)
- Elimination of fb.cc on non-color targets
- Minor variable renaming
- Unification of LCD variables (vdest vs frameb)
- Move greyscale LCD code into lcd.c
- ifdef out vid_update() on greyscale and color targets

Since I don’t have an iPod, I’m curious to see how well this works. It should be fine since the patch my work is based on seems to work for people.

I really need iRiver H1X0 users to test this. There are significant changes to the LCD code and I’d like to know if the is any speed change, whether its an improvement or not. I’d guess that it’s slightly faster or the same as SVN but there’s always a chance that it is slower.

7790PatchesApplicationsVery LowVoicebox improvements2007-09-17Daniel Dalton52007-10-042 Task Description

Some improvements for voicebox on windows. Mainly an option to voice file extensions. Not perfect yet. Instead of an option to voice file extensions there are two voice files options in the hta file. Anyone know what is wrong with this?
Thanks

9034PatchesApplicationsVery LowAlphabetically sort the list of plugins shown after 'Op...2008-05-24Alexander Levin72010-06-084 Task Description

I think this is good since now the plugins in the list appear in the order of their occurrence in viewers.config which is rather random.

9114PatchesApplicationsVery LowPause Between Tracks2008-06-24Linus Nielsen Feltzing272014-03-187 Task Description

This patch adds a new playback option, Pause Between Tracks. It pauses the playback automatically after each track, and the user must press Play to play the next.

This is useful for e.g dance classes, sound effects etc.

There is a noticeable lag in the simulator, where it starts the playback of the next song before pausing, but who cares? It seems to work fine on the target anyway.

Try it!

9171PatchesApplicationsVery LowReplace the CUBE in cube with COBRA MK III2008-07-08Dave Hooper42008-07-182 Task Description

Dumb patch but introduces handling for non triangular faces (by triangulating them when rendering). Vertices courtesy of http://mackayj.doosh.net/eliteships.html (in particular I hand-converted http://mackayj.doosh.net/files/vrml/eliteships/cobra3.wrl)

9253PatchesApplicationsVery Lowlogf file output patch.2008-08-08Yoshihisa Uchida122009-03-268 Task Description

It is a patch that can automatically output the result of logf to the
file.

The setting of default doesn’t output the result of the logf to the
file.
Please set and do the following when it is effective.

System > Debug > logf auto file output: select "Yes"
9292PatchesApplicationsVery LowNew game plugin, NBackBox2008-08-17Joseph Garvin162009-05-257 Task Description

It’s still a bit rough around the edges, but I’ve written a new game plugin called NBackBox. It’s an implementation of the dual-n-back exercise, discussed in this Wired article: http://www.wired.com/science/discoveries/news/2008/04/smart_software . In short, it’s a game that improves your brain’s working memory. I’ve tried to keep it as close to how the game was described in the original paper.

Any feedback/bug reports/code suggestions much appreciated :)

Joe

9356PatchesApplicationsVery LowAllow to set the delay before button repeat is activate...2008-09-02Alexander Levin12008-09-031 Task Description

The patch allows to set the delay after which the button repeat event is generated. Since this event is used to detect a long button press, it effectively sets this 'threshold.'

Slow fingered users may often hold the select button too long and (unintentionally) get the context menu. For instance, from the WPS screen. But they actually wanted to go to the file browser.

The patch adds a setting for that delay. Its default value is 30 ticks (=0.3s). The menu entry is in Settings → General Settings → System → Long Button Press Duration.

8006PatchesBattery/ChargingVery LowBeep when charger is removed or connected2007-10-21Daniel Dalton82009-06-108 Task Description

This very small patch simply plays a beep when a charger is removed or plugged in.
I know  FS#7910  voiced this but that was a bit annoying.

The charger stuff will be removed from p7910. I could have added this to it but it isn’t really that related.

8596PatchesBattery/ChargingVery LowCalibrate ipod 5g 64MB (60/80GB) battery discharge2008-02-11Dave Hooper132010-03-305 Task Description

Adds runtime calibrated from (numerous) battery_bench runs on ipod 5g 64mb (60gb)

9295PatchesBattery/ChargingVery LowCharger detection for iPod 2G (and 1G?)2008-08-18Mark Fawcus2008-08-181 Task Description

This patch adds detection of the charger connection. Not tested on a 1G, but should work if the ipodlinux GPIO documentation is correct.

NOTE: 'Charging' is not detected, just the presence of external power. See http://forums.rockbox.org/index.php?topic=18196.0 for forum topic.

10198PatchesBattery/ChargingVery LowUSB charge only setting2009-05-11Jonathan Gordon152013-09-074 Task Description

this patch adds a setting to choose what to do on a usb connection. default is to connect. options are charge only or connect..

holding *any* button will swap the outcome…

it works, but not perfectly… and the manual patch needs to be checked

10890PatchesBattery/ChargingVery LowDynamic runtime estimation (iPod Video, iPod nano 2G)2010-01-03Andree Buschmann142011-03-075 Task Description

This patch is a proof-of-concept for an adaptive runtime estimation.

Reason to implement such behaviour is that different user settings and user behaviour have large impact to the power consumption and – as a result – to the runtime. E.g. disabling LCD will save lots of power, but some users do not want to disable the LCD to keep readability in daylight.
This patch therefor adapts the estimation of runcurrent() based upon real measurements of the current consumption. The algorithm starts with a default (CURRENT_NORMAL which is defined in the config-file of each player) and uses a weighting scheme with a large time constant to adapt the estimation of the current consumption. The time constant is 1024, which should equal ~20 minutes as the runcurrent()-function is called once per second. With a smaller time constant the runtime estimation is “pumping” too much when the HDD is active.

This first version is just a hard coded experimental solution. Nevertheless something like an actual_current()-function can be implemented for each player in its own powermgmt-file. Players with capability to read the current will return this measured real current, all others still return the fixed default CURRENT_NORMAL.

11765PatchesBattery/ChargingVery LowImprove Battery Life on AMSv1 Sansa players2010-11-19Fred Bauer292017-09-096 Task Description

This patch modifies the CPU and peripheral bus clocks to hopefully gain some battery life. With this patch the CPU frequency can be either 31 or 186Mhz and the pclk is boosted from 31 to 62 Mhz while the CPU is boosted. The power draw of the CPU is proportional to the clock frequency and setting the frequency at or below what is required for playback keeps the power usage to a minimum because boosting to a frequency below 200Mhz is inexpensive. (Keeping the boosted CPU frequency below 200Mhz eliminates the need to wait for a voltage rise.)

I would appreciate feedback on battery life if anyone has the patience to run a battery bench.

12522PatchesBattery/ChargingVery LowiPod Classic/6G: charger detection2012-01-08Cástor Muñoz142014-02-091 Task Description

External/USB adapters are not correctly detected on my Classic 80Gb, this patch detects it so car mode functionality now works, also the iPod is powered-up when USB cable is inserted.

The function power_input_status() returns USB charger when both external and USB chargers are present. It is possible to detect the external adapter when USB cable is plugged but it is necesary to poll the PMU (not IRQ safe), and i think this information is not currently used at all.


9202PatchesBootloaderVery Lowiriver H300 bootloader power/usb fixes2008-07-16Matthew Haun22008-12-092 Task Description

This patch changes the iriver H300 series bootloader's power and usb handling. When a USB or Power plug are inserted into the H300, it will now boot as normal, not stop in the bootloader usb/charging modes. This was mainly for use in my car, but is also helpful for people with charging cradles for their computers.

Forum thread can be found here http://forums.rockbox.org/index.php?topic=17202.0

11510PatchesBootloaderVery LowOnda VX 7X7 series Bootload cannot used through buttons2010-07-31PurlingNayuki12010-08-081 Task Description

So, when you compile and run the bootloader on VX767/VX757 or any other buttons-only model, it can only boot to the Rockbox or the OF. It cannot use USB mode or reset RB configuration.

Here is a patch.

7650PatchesBuild environmentVery LowScript to aid in building voices (especially helpful fo...2007-08-24Jonas Häggqvist12007-08-281 Task Description

If you’re willing to produce a Human voice file (spoken by you or someone you know), this script will be particularly helpful. It expects you to put it in a directory with a subdirectory containing .wav files for all voice strings, named by the contents of the string (this will be problematic on FAT/NTFS, but could be fixed).

When run, it will check to see if all needed strings are available, and if they are, it will generate a voice-file for all targets. If they aren’t, it will print out a list of strings missing (to be recorded and put in the subdirectory). This list will also be put in the file “missingstrings.txt”, one on each line.

This might be suitable for inclusion in tools/

Edit: Script deleted. Will upload again soonish.

8589PatchesBuild environmentVery LowAllow to choose Loquendo and ViaVoice TTS2008-02-11Chelo Sacristán72008-08-072 Task Description

It would be useful to change the configure and voice.pl files in order to allow the user to choose also the Loquendo and ViaVoice TTS

9112PatchesBuild environmentVery LowAutomatically set correct cross compiler path based on ...2008-06-23William Poetra Yoga Hadisoeseno52009-05-103 Task Description

This is an attempt to automate the setting of $PATH in tools/rockboxdev.sh, tools/configure and the generated Makefile.

The directory prefix of the cross compilers is stored in ~/.config/rockbox.org/RockboxCompilerPrefix. As the default path (in tools/rockboxdev.sh) is /usr/local, if that file is empty, then $PATH won’t be modified. Otherwise, the value stored inside that file will be read, the target platform type appended, and lastly /bin appended. The resulting string will be appended to $PATH.

This patch doesn’t break existing configuration. But it’s most probably incomplete, so please provide feedback on which files need to be modified as well.

9513PatchesBuild environmentVery LowSmarter release scripts2008-10-29Jonas Häggqvist12008-10-291 Task Description

This patch modifies bins.pl, manuals.pl and voices.pl to be smarter, just like the new w32sims.pl, adding a -r commandline switch, allowing the same script to be used for building both daily and release versions.

9779PatchesBuild environmentVery Lowrework of assert2009-01-11Yoshihisa Uchida12010-02-172 Task Description

Building Rockbox fails if assert() (in firmware/include/assert.h) is used.

Then, I reworked assert.h.

changes:
When assert() failed, the correction that displayed the file name, the number of lines, and the condition of failing was done.
Moreover, when the log was enabled, the log was output to the file.

Please select the following to make assert() enabled when you make Rockbox.

1) Run tools/configure

2) Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, …

    Select "A"

3) (D)EBUG, (L)ogf, (A)ssert, (S)imulator, (P)rofile, (V)oice

   Select "A"

4) make

10021PatchesBuild environmentVery LowPatch to build Rockbox firmware by using MinGW. 2009-03-13Yoshihisa Uchida72010-01-286 Task Description

The Rockbox firmware and cross compilers build by using MinGW.

It is necessary to use MSYS’s make (MinGW’s make (mingw32-make) does not used.).

The cross_compilers.zip is a patch file necessary to make cross compilers using by rockboxdev.sh.

I confirmed the Rockbox firmware, codecs and plugins was built by using the compiler on MinGW.
But I can not confirm whether the Rockbox executes excluding iPod video.

Could you confirm operation to various players?


10511PatchesBuild environmentVery LowFixed multiple-language feature in tools/configure2009-08-11Rosso Maltese22020-07-142 Task Description

The patch fix the multiple-language feature, maintaining the same behaviour in interactive and batch mode and with “make reconf”. Now it’s possible to build more than one voice language at once, specifying different engine and option set for each one.
So, running “make voice”, all the selected languages will be built.

To help the comprehension, here it is a batch mode sample:

../tools/configure –target=ipodvideo –ram=64 –type=av –language=italiano,espanol –tts=f,e –voice=lp_diphone –ttsopts=, –encopts=’-q 10 -c 10,-q 5 -c 5’

This is like to run:

../tools/configure –target=ipodvideo –ram=64 –type=av –language=italiano –tts=f –voice=lp_diphone –ttsopts=’ ' –encopts=’-q 10 -c 10’

../tools/configure –target=ipodvideo –ram=64 –type=av –language=espanol –tts=e –voice=lp_diphone –ttsopts=’ ' –encopts=’-q 5 -c 5’

In the first case, I set the language to italian, using festival with voice lp_diphone (female), no further festival options and some manual encoder options.
In the second case, I set the language to spanish, using espeak. Even if I set the voice, the value is ignored, since the selected TTS engine doesn’t use it.

I also added some cosmetics, like some very circumstantial indentation, blank check in rootdir too, simpler numbered menu generation, some terser command pipes.

The patch is applied to r22250.

I don’t know if it’s a really wanted feature, but the word FIXME in the script hurt me! :-)

10571PatchesBuild environmentVery LowAutomatic screenshot generation (for the manual)2009-08-30Jonas Häggqvist22009-11-066 Task Description

These two scripts will, if you run them appropriately generate a few screenshots in an automatic fashion. Execute it like this, from inside a simulator: ./genscreenshots e200.xte /path/to/output

There are a few pitfalls:
* The simulator window MUST gain focus when it is run. If this doesn’t happen, everything breaks. Horribly.
* The method is rather timing sensitive. I had to put a pause of 250ms between each keypress to make sure they registred (too fast, and the sim/SDL would discard them). 250ms may not be the right amount for your computer.
* Rockbox itself is also timing sensitive. If you “push” a button at the wrong time, it may not register, so use plenty of sleeps to make sure things are settled.

Edit: Oops, the first version had a hardcoded filename. Hopefully of such things.

10071PatchesCodecsVery LowTrying out Tremolo optimisations for tremor on ARM2009-03-29Dave Hooper42009-03-296 Task Description

This first patch is a merge of Tremolo’s bitwise.c and bitwiseARM.s code into rockbox libtremor. As a naive version of the merge, I have taken out the previous rockbox optimisations to huffman decode (originally implemented in  FS#6848 ). Versus svn, decoding speed is worse with this patch. However something that incorporates both  FS#6848  and the Tremolo bitwise optimisations for little-endian ARM may well turn out better. This patch is seriously not committable, the arch-specific stuff is not done cleanly in the headers or the makefile

11702PatchesCodecsVery Lowmpc filterbank synthesis optimization2010-10-25Andree Buschmann202010-11-109 Task Description

This patch resorts the v-array within mpc’s synthesis filter. Through this data is placed more locally for the performance critical function mpc_decoder_windowing_D() and allows ldm-usage in the asm’ed parts.

This first patch does work for simulation but not for ARM or CF builds. An update with more optimized ARM asm will follow, CF asm needs to be corrected by someone with knowledge on CF assembly.

The output is binary identical.

11759PatchesCodecsVery LowRearrange libmad synthesis memory acceses for arm2010-11-15MichaelGiacomelli132011-04-0813 Task Description

Work in progress patch. Currently decodes audio but with some glitches. Has a small mountain of debug code included.

The basic idea is to rearrange the D filter coefficients in the synthesis filter so that pairs of them are used sequentially. This is not easy because the taps need to be loaded in the seemingly random order needed by the audio samples. However, this rearrangement seems to be possible:

0 1 2 3 4 5 6 7 (original sequence)
0 2 1 3 4 6 5 7 (new sequence)

The complication is that the code assumes that it can start a new filter at any offset, even odd ones, which means each and every filter needs to be rewritten 4 times, one for each of the 4 possible alignments. This patch does that.

Once I'm certain that it works, I intend to convert the D coefficients to packed 16 bit values, then use packed 16 bit multiply instructions on ARMv5E+. This should lead to a small speed up on armv4 (just because ldm instructions can be used instead of ldr) and a very large speed up on arm9E and arm11 (because packed multiplies are tremendously faster and much easier to pipeline).

11891PatchesCodecsVery LowAdd mp3 gap skipping support to improve gapless playbac...2011-01-18Andrew Tefft292011-09-021 Task Description

As we know, rockbox will use the information provided by "good" mp3 encoders (e.g. LAME) to ignore the extra padding that occurs at the beginning and end of each mp3 file, so that true gapless playback can occur. Unfortunately we do not always have the luxury of encoding our mp3 files in this way but we might still want true gapless playback. This patch compensates for the use of "dumb" mp3 encoders that do not record the necessary information for this feature.

In cases where it does not detect the proper header information to trim off the extra padding, it will optionally skip up to a full frame of silence (or near silence) at the beginning and end of each track (if the trimming is already specified, this patch does not do any additional trimming).

This can potentially eliminate up to a frame of "real" silence at the beginning or end of a track, but in terms of audibility, that would be completely unnoticeable (and it would only happen on these badly-encoded tracks), while the extra silence is an audible annoyance.

I have added an option to the Playback Settings menu so that the user can disable it if desired.

11978PatchesCodecsVery LowNew Atari SC68/SNDH codec based on the SC68 library by ...2011-03-01Mauricio Garrido162011-06-107 Task Description

Hi, this is a new codec based on the SC68 library
by Benjamin Gerard (sc68.atari.org).

Revision: 29484
Tested on: Sansa Fuze v2

Features:

  1. 44 Khz Stereo sound.
  2. Supports sc68 and sndh files.
  3. Support for multi track and single track files.
  4. Metadata parsing.
  5. Fade out support.

** This codec needs the sc68 Replay folder to work, just put it in the root of
your player. you can find one here: http://aminet.net/package.php?package=mus/play/sc68.lha

Notes:

1.  This is a beta codec, some (big) songs may cause rockbox to crash.
2.  When compiling the sc68 library i had a lot of dependencies errors with
     missing includes.  It is compiling fine now on the vmware image, but not in cygwin.
     I still have to find the problem with that.
3.  Some songs doesn't work, specially some big sndh files.  I'm still working on it.
4.  Seek support is broken, i'm working on it.

Please feel free to make any comment or suggestion.

12176PatchesCodecsVery LowNew Chiptune codec pack based on Game_Music_Emu library...2011-07-01Mauricio Garrido1422013-04-1037 Task Description

Hi, this is a codec pack containing all codecs based on blargg's
Game_Music_Emu library.

I have ported all code to C to work in ROCKbox, and i have replaced the
MAME versions of some emulators with others compatible with the GPL license.
It was a lot of work but i did it because i really love chiptune music and having the
possibility to listen to a lot of classic video game system's music in a small player
is really great ;).

Original Game_Music_Emu library here: http://slack.net/~ant/libs/audio.html

Tested on: Sansa Fuze v2
Created from revision: 30084

The following formats are contained in the pack:

- AY (ZX Spectrum, Amstrad CPC)
- GBS (Nintendo Game Boy)
- HES (NEC TurboGrafx-16, PC Engine)
- KSS (MSX Home Computer, other z80 systems)
- NSF, NSFE (Nintendo NES, Famicom)
- SGC (Sega Master System, Game Gear, Coleco Vision)
- VGM, VGZ (Sega Master System, Mark III, Sega Genesis, Mega Driver, BBC Micro)

Additional features:

- 44100 Khz, stereo playback.
- Support all sound chips in NSF/NSFE formats.
- Support MSX-AUDIO and MSX-MUSIC in KSS format .
- Support ADPCM samples in HES format.
- Support for extended m3u playlists created specially for

some chiptune formats.

Known issuses:

- Some (or all) codecs might not work in some targets, specially

if they have an small iram size, or if the codec is too cpu intensive, 
like VGM and KSS.

- Subsong change is not working properly, specially when it happens

automatically.

- Most vgz tracks will be truncated due to the small amount of free

memory available to uncompress them.

- Some SCC+ soundtracks might not work correctly.

** There might be several bugs and issues to be found yet, so please feel free to

  report them here or to my mail address.

Special thanks to:

- Shay Green (blargg) the original author of the great Game_Music_Emu

library.

- Chris Moeller (kode54) who made some nice improvements to the library.
- Mitsutaka Okazaki, author of the YM2413 emulator.
- The OpenMSX team for the YM8950 emulator.
- Stéphane Dallongeville for the YM2612 emulator.
- Joshua Chang, Haiku Konaru and everyone else who has helped me to

test the codecs.
12189PatchesCodecsVery LowSimplify the codec API and don't always loop MODs.2011-07-11Sean Bartell72011-08-313 Task Description

This patch makes some changes to codec_api to help remove dependencies for my project.

The unused strcasestr callback is removed.

The global_settings pointer was being used by several codecs to check whether REPEAT_ONE mode is on; this has been replaced with a callback "should_loop()".

The MOD codec has been modified not to restart the file when it reaches the end. This does not affect MOD files that use "position jump" to loop part of the song. Ideally the MOD codec would only follow such loops if should_loop() returns 1, but detecting loops is nontrivial.

12240PatchesCodecsVery Lowrbcodec refactoring part 12011-08-22Sean Bartell32011-08-286 Task Description

Continuing from  FS#12204 , these patches remove some of the dependencies librbcodec has on the rest of Rockbox.

0001: puts equalizer settings in the parameters of dsp_set_eq_coefs, removing the need to access global_settings from dsp.c

0002: makes dsp_process yield each iteration instead of once each tick, which is tricky to do portably. If this is undesirable, I can work around it.

0003: moves some replaygain stuff around so dsp.c doesn't have to access global_settings.

0004: instead of dsp.c and tdspeed.c allocating buffers, buffers are allocated elsewhere and passed to dsp_timestretch_enable(). The necessary buffer size is determined by calling dsp_timestretch_get_buffer_size().

0005: replace get_audio_base_data_type() with audio_format_is_atomic(), removing a dependency on TYPE_PACKET_*.

0006: move autoresumable() to playback.c, removing another dependency on global_settings.

12242PatchesCodecsVery Lowrbcodec refactoring part 22011-08-22Sean Bartell2011-08-227 Task Description

Continuing from FS#12240, these patches remove most of the rest of the dependencies librbcodec has on the rest of Rockbox.

12435PatchesCodecsVery LowZX Spectrum .tap codec2011-12-09George Manolaros182012-01-088 Task Description

This patch adds a new codec that playbacks ZX Spectrum .tap files. Created against trunk (revision 31187)

10280PatchesConfigurationVery LowInitial work on the Samsung YP-P2 port2009-06-05Alain Trinh82010-08-196 Task Description

Hello, here's my current contribution to the Rockbox project: initial work on a port to the Samsung YP-P2. Right now, it's mostly just copied from the Cowon D2 port, but with some changes to reflect the P2's different LCD.

The LCD shows the picture undistorted, but it seems that the G channel is too strong. Perhaps this is due to the LCD being set to rgb666 mode, so it expects 6 bits from R and B, while Rockbox only gives 5 bits? I tried setting the LCD to rgb565 mode, but that only distorted the colors even more. In any case, suggestion for a fix would be great.

11101PatchesConfigurationVery Lowuser selectable USB cable bevaviour2010-03-14Oron Lavi102010-03-293 Task Description

Added new menu item under Settings.General.System, to select whether USB cable connection enters charging mode by default, or data transfer mode.

By default, the option is set to "No". Meaning, in order to have RB enter charging mode, a specific button should be pressed by the user.

If the option is set to "Yes", USB connection causes RB to enter charging mode, unless the specified button is pressed, causing RB to switch into data xfer mode.

12027PatchesConfigurationVery LowAdd the Zipit Z2 as an build target.2011-03-24Don Heyse62011-06-057 Task Description

Here’s a patch to version r29143M-110324 that adds the Zipit Z2 as a build target. It requires one new file (also attached) firmware/target/hosted/zipit/powermgmt-zipit-z2.c to monitor the battery.

This is mostly a generic SDL app with a few tweaks for the Zipit buttons and battery monitoring. The patch also includes a few small bug fixes for SDL app builds. I had to fix the labels in the asm section of lcd-16bit.c. There were some missing parenthesis on an #ifdef in button-application.c. And the apps/SOURCES file needs an #ifdef to handle an SDL app build without touchscreen support.

12568PatchesConfigurationVery LowiPod Classic - limit volume to +6db2012-01-29Albert Barca122012-02-134 Task Description

The iPod Classic Cirrus CS42L55 DAC+amp chip is specified to output audio up to +12dB versus the reference level (0.775V RMS) and the current Rockbox driver implements this accordingly (note that the OF limits the amplification to a lower level).

However, any amplification above +3dB applied to a 0dB signal results in serious clipping errors, the sound being distorted (oscilloscope measurements attached). This is not a surprise, given that +12dB translates in over 8V peak-to-peak output, way above what the iPod is capable of with its 3.7V battery.

Distortions aside, +12dB can be overkill for most of the earphones (depending on the sensitivity) and not a very pleasant experience. If you put the iPod in your pocket and forget to lock it you may experience this frequently.

In practice not all tracks have peaks reaching the 0dB level (actually nowadays this is quite common given the "loudness war"). To provide some room for additional amplification when needed, I found the +6dB limit to be a good compromise.

13193PatchesConfigurationVery LowAdd option to disable settings reset on startup2020-04-01Stefan Ott12020-04-032 Task Description

I would like to run my iPod with its keypad locked all the time, thus I wrote a little patch to an option to disable the settings reset during startup regardless of the hold button's position.

You will find the patch attached to this message. I'm not entirely convinced by the name of the new option (or my wording in general) so if you have a better idea, feel free to rename things.

7984PatchesDatabaseVery LowTalk clip support for Database2007-10-17Jonas Häggqvist42007-10-213 Task Description

Before you get carried away, this is the script that will build talk clips in /.rockbox/talkclips/* for all tags and labels (reading tagnavi.config as well as the database_[0-9]*.tcd files).

The idea is that the database code will then look here for talk clips.

In the long term, the same method could be used for the file browser if desired.

Hopefully someone will help me out with the database code side of things, as I don’t think I’m up to that challenge.

8295PatchesDatabaseVery Lowdatabase integration of pictureflow2007-12-10Robert Kukla32009-03-073 Task Description

This is the first step of being able to use the pictureflow plugin from a database search. The database now indexes the path to the coverimage for each audio file. In the database browser you can select “Cover by...” genre, artist, composer, year or all and will be presented with a list of cover image paths. (Imagine a call to the pictureflow plugin at this stage, so instead of a list of boring paths you get nice and shiny images). After selecting a path it will display the list of files that would be queued when a cover image is picked in the plugin.

Next step is to work out how to safely call the plugin without losing the context and utilise the return value from it to queue the files.

Issues so far are:

- the preferred size of 100×100 is hardcoded (this should be configurable or at least be consistent with the value in the pictureflow
the db update for covers has the same restrictions as the other tags, i.e. it will only detect changed cover art on
the coverflow plugin needs to work while music is playing (or stop playback if needs
since there is no guaranteed relation between album name and image file, the album name can’t be displayed

9538PatchesDatabaseVery Lowtagnavi search condition opperator supports for non lat...2008-11-09Yoshihisa Uchida42009-07-104 Task Description

The search condition of tagnavi (eg. =, >, ^,…) doesn't return a correct search result to characters other than the Latin alphabet.

For example;
1) artist ^ "A"

    Neither "Ándre" nor "ándre" appear to the search result. 

2) artist = "Ándre"

    Neither "Andre" nor "andre" appear to the search result. 

My patch file solves such a problem.

Because it doesn't test enough.
There is still a possibility that the search result is not correct
according to the character used.
Please report.

About performance

The search time is slow than before. 
I will improve this in the future. 

About patch
  Please execute make zip (or make fullzip) after applying
the patch to the source file.



  There is uni.mt(or unimini.mt) in .rockbox/codepages folder
when rockbox.zip is unziped, and copy this file onto your player's
.rockbox/coepages.
(The search result doesn't correct if there is no uni.mt(or unimini.mt)).

About search result
1) It is considered that the character that is the difference
   of the uppercase, titlecase and the lowercase is the same.

   eg. A = a, Ω = ω

2) It is considered that the character with the pronunciation sign
(accent, umlaut, etc.) is the same as the character to which these are not attached.

   eg. A = Á

3) The combination character is considered to be a character that divides into each character.
  eg. Œ = O E

4) Only Japanese: the Hiragana, the halfwidth Katakana are considered to be the same character as the fullwidth Katakana.

eg. あ = ア, ア = ア
9613PatchesDatabaseVery LowAllow formatting of track names for the default <All Tr...2008-12-08Justin Gan152013-08-1714 Task Description

By default, whenever you choose the <All Tracks> option from the database menu, the list of results returned defaults to the standard track name format, i.e. “%02d. %s” tracknum title. What I wanted was to be able to define the format that gets applied to the <All Tracks> option, dependent on the current menu level. So for example, if I had browsed to genre→artist→<All Tracks> it would return the list of all tracks for all artists for the given genre and I wanted the track names to be formated with:

       	"%s %s %02d. %s" artist album tracknum title

and then sorted into order, since I already know what genre the tracks are for.

Similarly, if I simply browsed to genre→artist→album→<All Tracks>, it would return the list of all tracks for the selected genre and artist, but I want the track names to be formated with:

"%s %02d. %s" album tracknum title

so when it’s sorted, I get the tracks grouped only by album and tracknumber, since I already know what artist the tracks are for.

This patch attempts to address this issue by allowing users to define custom <All Tracks> formats in the tagnavi_custom.config file. Thus, sort order can be controlled by how you format the track names, just as it works in base Rockbox.

The premise behind the code is that if the <All Tracks> menu option is chosen, Rockbox will look for formats with a certain naming convention defined by concatenating the tag names of the parent menu levels with “.” characters and finally appending an “.All” identifier. So in the first example above where we had browsed to genre→artist→<All Tracks>, Rockbox will look for all formats called:

"genre.artist.All"

and then cycle through them to see if the appropriate clauses defined on the format are met. Similarly, for the second example where we had browsed to genre→artist→album→<All Tracks>, Rockbox will look for the format called:

"genre.artist.album.All"

As in base Rockbox, it will cycle through all applicable formats and apply the first format it comes across that meets all the clauses defined on the format. One minor change I had to make to get the relevant tags loaded for the search results was to add the tags defined in the clauses of all matching format names to the tagcache search, but not add the clauses themselves.

So now, in the tagnavi_custom.config file to illustrate the first example, I have defined 4 formats called “genre.artist.All” to format the final display name based on whether the artist/album tags are actually defined on the mp3’s in the database.

%format “genre.artist.All” “%s - %s - %02d. %s” artist album tracknum title ? artist !~ “<Untagged>” album !~ “<Untagged>” tracknum > “0” %format “genre.artist.All” “%s - %02d. %s” album tracknum title ? album !~ “<Untagged>” tracknum > “0” %format “genre.artist.All” “%s - %02d. %s” artist tracknum title ? artist !~ “<Untagged>” tracknum > “0” %format “genre.artist.All” “%02d. %s” tracknum title ? tracknum > “0”

The downside of this approach is that in order to have this style of functionality for every <All Tracks> menu option, I defined a lot of formats. As such, I had to increase the maximum number of formats from 32 to 96 in order to cope with my formatting schemes. I also increased the maximum number of tag filters from 4 to 8. Now this obviously increases the amount of memory allocated for formats, which will have an impact on available audio buffer size. The attached tagnavi_custom.config file shows the various “All” formats I’ve added and it’s pretty comprehensive in the way it handles missing tags, so technically, if your music library is properly tagged, you should never need all of the formats so you could easily reduce the maximum number of formats.

My principal concern with this patch is in terms of the memory usage of increasing the maximum number of formats and number of tag filters allowed. I’m not aware of a memory profiler for cygwin, but then I hadn’t used cygwin before playing with Rockbox - so any pointers would be helpful.

The second piece of functionality I wanted was in the handling of the “strip” functionality. Base Rockbox has an all or nothing approach; if the global format found for the list of tracks contains a strip modifier, then it applies the strip to ALL track names, even if the subsequent formatting of the track does not contain a strip modifier. I wanted Rockbox to only strip tracknames if a strip modifier was defined on the format that is applied to the track. This patch fixes this problem.

This works fine on my Sansa e280 with a full 8Gb drive and a full 2Gb micro-SD card. It’s formatted close to 1000 tracks with no noticeable difference in processing time, and I’ve not come across any out of memory errors on my e280, but I haven’t tested it on any other mp3 player so I would recommend you test this first using the appropriate simulator.

Note that this patch incorporates the year album patch  FS#8051  as the code is all tied up in the same files.

11927PatchesDatabaseVery LowQueue overflow during database initialisation2011-02-11Steve Bavin82011-04-142 Task Description

While the database initialisation is running, the tagcache queue can overflow due to system broadcast messages. This can be seen by running a simulator (it will crash with KERNEL_ASSERT after a while) or on a target by enabling KERNEL_OBJECT_CHECKS, then initialising the database and repeatedly connecting/disconnecting a charger.

The same problem may well happen with other queues (dircache, for example).

12054PatchesDatabaseVery LowHighlight each album's last-played track in database vi...2011-04-07sideral72011-08-093 Task Description

The attached proof-of-concept patch highlights (places the cursor at) each album's last-played track in database views. The intention is to allow easy resuming of multi-track audiobooks or podcasts where they were last left off. This works best when autoresume has also been enabled.

The patch relies on runtime statistics gathering being enabled (and the DB needs to be enables as well, of course).

The current patch has some caveats that I plan to address in future revisions:

Right now, it's unconditionally enabled for all database-based track views. We might consider allowing to turn this off for regular music albums.

When the last-played track has been completed (played through to its end), we should actually highlight the next track (or the first track if the last-played track was the final track of the album). [EDIT: fixed – see latest patch in comments section]

It would be great if a similar feature was available for the file browser. I'd find it acceptable if that would require the DB as well (as that's the place where the last-played info is stored). It could benefit from an add-to-DB-as-files-are-played feature (aka FS#12073).

Comments?

[EDIT: Clarified summary. Fixed a rather severe bug in the patch to make it actually work. :) ]
[ EDIT 2: Linked to FS#12073. Addressed one caveat. ]

12073PatchesDatabaseVery LowDynamically add files to database as they are played2011-04-18sideral32011-04-192 Task Description

These experimental patches dynamically add new tracks to the database when they are played. This allows users who (for various reasons [1]) prefer to not fully initialize the database to take advantage of database-based features such as autoresume (remember a resume position for each file), runtime statistics, or track ratings.

The current patch set is only a prototype. It's still somewhat inefficient because it does a full database commit and reload for each new track that is played.

The actual database-extension patch (patch 0002) works by refactoring tagcache_build to create a new interface, tagcache_add_file, that adds a single file to the database. This new function runs in the database thread and takes a dircache_entry pointer, which is provided by way of a Q_UPDATE event. The audio thread generates this event in tagtree_buffer_event when the initial DB lookup fails, and later checks the database again in tagtree_track_finish_event. If the DB commit and reload have succeeded in the meantime, this second lookup will succeed and the runtime information the user is interested in (stats, resume info) can be stored in the DB.

Patch 0001 changes the DB commit's buffer-allocation preference from using the dircache buffer to using the RAM DB's buffer. (This used to be the preference until r10003 reversed it, supposedly because the dircache buffer typically is bigger. I don't know yet how valid this argument is today.) This reversal avoids needlessly flushing and refilling the dircache and makes the Q_UPDATE event-passing mechanism more robust (because in-flight update events contain dircache_entry pointers, which would have to be invalidated when the dircache is flushed – which is not done yet).

Current limitations/caveats:
* Requires dircache and Load-DB-to-RAM enabled (and only works on targets that include these features)
* tagcache_add_file does not respect any database.[un]ignore files in the directory hierarchy above the added new file.
* DB needs to be initialized to begin with. There's no UI function for a basic DB initialization (without scanning and adding all files) yet.
* Not very thoroughly tested (mostly in simulator, with small file sets)

Possible improvements:
* Delay committing DB changes if more track-add events are in the tagcache queue
* Incremental commit: Could be optimized for add-one-track case
* Incremental load_tagcache: Avoid flushing and reloading full database
* Add function to initialize an empty DB

Comments welcome!

Footnote:
[1] Reasons for not using the database, or not keeping it up to date, include: metadata parser instability; prefer not keep tags up to date; prefer file browser over database browser

12149PatchesDatabaseVery LowRead Lyricist/Text writer from mp3 id3 tag for display ...2011-06-05Kaname Madoka22011-07-031 Task Description

This patch allows for the display id3 (v2.2-v2.4) tag
of Lyricist/Text writer in the wps, database, track info.

To display in wps, use "%iw" tag.

Example:


# Disable Status Bar
%wd
# Title
%s%al%?it<%it|%fn>
# Artist
%s%al%?ia<%ia|%?d(2)<%d(2)|%(root%)» # Album
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)» %?iy<%(%iy%)|>
# Songwriter
%s%al%?iw<writer %iw|>
# Composer
%s%al%?ic<composer %ic|>
# Comment
%s%al%?iC<%iC|>
# Time PlayNumber
%al[%pc/%pt] %ar%(%pp/%pe%)
#%s%ac%Sx(Next:) %?It<%It|%Fn>


Tested on sansa c200 v1.
Target source code revision is #29961.

The following files were changed:
apps/screens.c
apps/metadata/id3tags.c
apps/metadata/metadata_common.c
apps/lang/japanese.lang
apps/lang/english.lang
apps/gui/skin_engine/wps_debug.c
apps/gui/skin_engine/skin_tokens.c
apps/metadata.c
apps/metadata.h
apps/tagcache.c
apps/tagcache.h
apps/tagnavi.config
apps/tagtree.c
lib/skin_parser/tag_table.c
lib/skin_parser/tag_table.h

Currently, only English and Japanese languages are supported.

I am not good at English.
Please point it out if there are a problem.

12330PatchesDatabaseVery LowAdd a nice UI to configure database search directories2011-10-12Jonathan Gordon2011-10-121 Task Description

This patch does all the UI work needed to add a very nice folder chooser. It saves and loads the search directories from /.rockbox/database.txt.

This is only the UI change, someone else needs to figure out how to make it actually work.

The system changes to searching the entire tree below folders (so no more ignoring some folders and then looking for uningored folders.

this also uses a half done patch to make lists handle indenting, not done for the skin list but if this is actually wanted that can be easily added

Showing tasks 1 - 50 of 669 Page 1 of 141 - 2 - 3 - 4 - 5 - Last >>

Available keyboard shortcuts

Tasklist

Task Details

Task Editing