Find a file
Michael Giacomelli 619f2f1093 afr: fix gapless playback with fatigue reduction enabled
afr_configure() returned 1 for every message. For
DSP_PROC_NEW_FORMAT that is PROC_NEW_FORMAT_DEACTIVATED, so the
DSP did not call the stage for the buffer that brought a new
format: the first buffer of each track went out unfiltered, and
the filters started on the second. That is 128 samples of a WAV
file, and the whole first block of a codec with 32-bit
non-interleaved output, 4608 samples of a FLAC file.

A codec sets the format again at the start of every track, so
between gapless tracks this put a short stretch of unfiltered
audio into filtered audio, heard as a click at the join.

Return 0, as the other stages do.

Found with test_codec's DSP checksums on a Sansa Clip+: a model
of the DSP with fatigue reduction left out of each file's first
buffer reproduces the sixteen checksums of two runs, and none of
them with it left in. Listening on the same player, the click
between gapless tracks is gone with this change.

Change-Id: I7a1193fa0a4ee0c983cbcc5c1af201e1678579d0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:12:55 -04:00
android chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
apps test_cyc: AS3525v2 cache and write testing 2026-10-08 09:11:36 -04:00
backdrops ap80max: New hosted port 2026-08-13 17:55:06 -07:00
bootloader rk27xx: boot Rockbox on USB wake when it can write the NAND 2026-10-07 22:20:18 +02:00
docs docs: Fix case of "iPod" in area name and history 2026-10-01 17:32:24 -04:00
firmware YP-CP3: record the FM radio at +12 dB by default 2026-10-08 11:23:23 +02:00
fonts chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
icons chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
lib afr: fix gapless playback with fatigue reduction enabled 2026-10-08 09:12:55 -04:00
manual skin_engine: more tags for the recording screen 2026-10-07 20:12:49 -04:00
packaging 3ds: Port refactor. 2026-09-01 08:39:07 -04:00
tools checkwps: Delete incorrect dependency 2026-10-07 17:34:22 -04:00
uisimulator YP-CP3: simulator 2026-10-02 16:42:34 +02:00
utils hwstub: add stub gdb backend 2026-10-08 08:13:49 -04:00
wps cabbiev2: Don't generate certain entries for monochrome devices 2026-10-05 14:11:34 -04:00
.gitattributes Add a gitattributes file for the migration. 2011-12-01 14:14:59 +00:00
.gitignore misc: Update gitignore to cover a bunch of utils/* binaries 2026-06-17 13:56:29 -04:00
.gitreview misc: Add a .gitreview file for better gerrit integration 2021-06-24 07:22:19 -04:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xJf rockbox.tar.xz

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have mips/m68k/arm-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be generated using the rockboxdev.sh script in the /tools/ folder of the
   source.

   $ which arm-elf-eabi-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fuzeplus
   $ cd build-fuzeplus
   $ ../tools/configure

   $ mkdir build-xduoox3
   $ cd build-xduoox3
   $ ../tools/configure

Questions anyone? Ask on the mailing list or on IRC. We'll be happy to help you!