mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-09 23:53:28 -04:00
Very low bitrate WMA files send their spectral envelope as LSP coefficients. The curve computed from them squares two products whose value can reach about a million, in 16.16 fixed point. Where the envelope should be lowest the squares overflowed, and those points came out near the curve's maximum instead: bands at the top of the spectrum up to 17 dB too loud, and everything else a few dB low, as levels are taken relative to the maximum. Sum the squares in 64 bits, and let pow_m1_4() take a value above the 16.16 range. Checked with perfsim (Sansa e200v1 build). The curve is within 0.2 dB of ffmpeg's formula at all 57600 points of 80 blocks traced from two files. Against ffmpeg's decode, as the mean difference in band levels over the whole file, with the noise coding fix applied before and after: StutteringFile (22 kHz mono, 20 kbps) 1.6 dB -> 0.3 dB shoujicomcn2117164 (same) 0.2 dB -> 0.1 dB terra8k (11 kHz mono, 8 kbps) 0.3 dB -> 0.0 dB Only the five files that use LSP exponents change; the other 23 are byte-identical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| android | ||
| apps | ||
| backdrops | ||
| bootloader | ||
| docs | ||
| firmware | ||
| fonts | ||
| icons | ||
| lib | ||
| manual | ||
| packaging | ||
| tools | ||
| uisimulator | ||
| utils | ||
| wps | ||
| .gitattributes | ||
| .gitignore | ||
| .gitreview | ||
__________ __ ___.
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!