After a few recent failed patch and build attempts, I bring you my latest patched Rockbox build based on yesterdays SVN Revision 18026. I had severe stability issues (crashes, playlists corrupted on shutdown) with my previous build, which seem to have vanished with this one as I can say from my todays tests. As usual you get USB MSC support along with Sansa specific and eyecandy patches.

Build Log

**
gui/viewport.c: In function ‘viewport_parse_viewport’:
gui/viewport.c:129: error: ‘struct screen’ has no member named ‘width’
gui/viewport.c:130: error: ‘struct screen’ has no member named ‘width’
gui/viewport.c:131: error: ‘struct screen’ has no member named ‘height’
gui/viewport.c:132: error: ‘struct screen’ has no member named ‘height’
make[1]: *** [/home/scheff/src/rockbox-18026/build/apps/gui/viewport.o] Error 1
make: *** [build] Fehler 2
** fix according to tracker comment:

This build is based on revision 17238. I made it to keep up with the latest codebase and patches and to try a few new patches too. Unfortunately two of those new patches don’t seem to work, more exactly doom and pictureflow plugins will crash in this build. Additionally the Instrument Tuner Plugin I wanted to include didn’t make it into the build. I also made 3 new fonts in sizes 8 to 13 px out of the new Windows Vista TTFs.

So this is my latest build based on revision 17055. With my previous build I had a few crashes (black screen, still powered on until battery drain) and “data abort”. Also had the “normal” duplicates in database after updating to my last build. Now the View Ports Custom List Patch is included (again?). I also simply removed two less important patches, one being the cause for wrong parameter count in function ‘is_backlight_on’ when I tried to build with those.

Update

Darn! I forgot to enable USB in the Makefile. Sorry for this inconvinience. Downloads are now with USB enabled.

News

new(?) game pegbox

many default themes now using new stripped bitmaps (included in “full zip”)

Just another patched Rockbox based on this evening’s SVN Revision 16892. The svn commit r16817 fixes loading the OF, which prevents the system freeze I got when plugging in USB in OF using my previous patched bootloader build! Album Art maximum dimensions are now again restricted to the display width. I don’t think anything else important has changed since my last build.

My latest patched Rockbox build based on yesterday’s Revision 16718. As before it includes USB Mass Storage (High Speed), USB Serial, smooth resized Album Art, Viewports patches and Fast Charge. I also built a patched bootloader, which replaces the whole Sandisk bootloader decreasing the boot time to about 3 seconds (more than 10 seconds before)!

I made this build to try the new bootloader and to see if the increased boost ratio I believe to get with the recent builds would drop.
The bootloader is working very fine! But you should be careful to take this step and be sure to read the patch tracker page. To apply the bootloader attach your Sansa to USB, be sure to unmount it, and use Sansapatcher (x86 binaries for Linux and Windows) like this: ./sansapatcher -bl bootloader.bin
High boost ratio seems to persist; though I’m not sure if it really increased. Maybe the higher boost is because of using the multiband equalizer now, instead of just the bass/treble settings like before or I simply don’t remember correctly. Should compare the boost behaviour with an unpatched build..
There haven’t been very grave changes in the codebase as far as I can see. There have been fixes to USB Storage, microSD hot-swapping, charging strategy, WPS tags. Additionally some DSP routines rewritten in ARM assembler.

I’m using Firefly Media Server on a Linksys NSLU2 running Debian Etch to stream my whole music collection to my Pinnacle SoundBridge HomeMusic. Many files in my collection are in Ogg Vorbis format and a few in Musepack too, which unfortunately aren’t natively supported by the SoundBridge. Luckily Firefly can transcode audio files on the fly e.g. using the ssc plug-in and any console application via shell scripts. But the problem with the Debian packages is that they don’t take into account the missing floating point unit (FPU) of the NSLU2 hardware, and that makes oggdec/ogg123 and mpc123 take ages – way below real-time – to transcode. Fixed point versions of the transcoders aren’t available in the Debian Etch package repositories even the sourcecode already exists, so I had to build them myself.
I first searched the Debian packages for fixed point versions.
I found the libvorbisidec package, which is the fixed point version of libvorbis also going by the name Tremor. The vorbis-tools is only available as normal floating-point version linked to libvorbisdec. For Musepack there are (floating-point) packages libmpcdec3 for the library and mpc123 for the application.
In the Firefly forums I found patches for vorbis-tools (providing the ogg123 and oggdec transcoders), so that I could build Tremor versions of the transcoder apps.
In the Musepack sources there’s already a define variable to build with fixed point math only. So I would just have to enable that and rebuild the library and transcoder.

To make a long story short, here are the Debian Etch ARM binary packages for fixed-point Ogg Vorbis and Musepack:

Patch and build vorbis-tools

This one was trickier. The patches found on the forum aren’t complete. The older one is blindly changing the endianess of the resulting audio data, thereby producing only noise on the little endian Debian I use. The newer one misses linking mpcdec to libvorbisidec.

I haven’t found a fast enough way to transcode Monkey’s Audio (aka. APE) files yet, but that’s mainly because I don’t have any (which haven’t been transcoded to mp3 by myself already). For your information: Building the Monkey’s Audio Codec (MAC) for Linux did work.
I think when looking for more low resource or fixed-point codecs, a good place to look for is the Rockbox Wiki. That’s what I used too.

To make this Firefly Transcoding post more complete, here’s my current version of the ssc script:

Oh, FYI I’m using mt-daapd 0.2.4+r1376-1 from the Debian repo. I got the wavstreamer binary and the ssc script example by extracting them from a newer Debian package. The Firefly Wiki provides more information on transcoding implementation.

Time for yet another patched Rockbox build. This one based on Sunday’s Revision 16594 also includes USB Mass Storage (High Speed this time), USB Serial, smooth resized Album Art, Viewports patches and Fast Charge.