The Rio Receiver is a wonderful device for playing audio files over the network. It suffers from one problem however that all similar products also suffer from, in that different audio files from different sources play back at different volume levels.
If you find yourself reaching for the volume button for each song, then this kernel patch is what you need. The extra code in this kernel monitors the volume of upcoming music and attempts to adjust the current volume to level out the changes in volume. Most of the time it does a pretty good job, but there are tracks where you can spot artifacts (usually evident by the volume "pumping") caused by the algorithm used.
The original VolAdj code was by Richard Lovejoy for the empeg/RioCar. I haven't done anything clever to Richard's code, I just tweaked it to work against the Receiver kernel. Any complaints concerning this kernel should go to me, any praise should go to Richard...
Unfortunately installing a new kernel for the Receiver is not quite as easy as installing the kernel for the empeg/RioCar.
This is because the guys at empeg have made it clear that because of SonicBlue policy third parties are not allowed to distribute copies of the receiver.arf file that contains the Receiver's file system and kernel. I am however allowed to distribute custom versions of the kernel image itself, which you can use to patch your own copy of your receiver.arf file.
The receiver.arf file contains all the software that the Receiver runs, the Receiver reads the contents of the file across the network when it boots. The receiver.arf file lives in the Audio Receiver Manager program folder, which if you accepted the defaults during install will be "C:\Program Files\Audio Receiver".
The easiest way of installing the new kernel on a Windows machine is using a tool called Receiver Tweaker which I have written specifically for this purpose.
Here is what you need to do:
Here is how you do it using a separate Unix/Linux machine:
You only need the kernel zImage file, the patch file is for anyone who wants to build their own custom kernel.
|File name||File description|
|receiver-tweak-v1.zImage||The new kernel image|
|receiver-tweak-v1.patch||A patch file for the new kernel against the Receiver kernel 1.03|
I suspect that my new kernel may have some instabilities. I have seen my Receiver reboot a few times since I started running the new kernel, mainly when hitting pause or changing the volume while the unit is coming out of standby. I haven't used my Receiver enough without the patched kernel to know whether this is caused by my changes or just existing bugs. If you see an increase in instability using my kernel then please let me know.
There is currently no way of turning the VolAdj code off or adjusting the settings used, I intend to add some way of doing this via the remote control in a future version.
Well first of all thanks must go to Richard for producing the VolAdj patch in the first place. Thanks also to Jeff Mock for providing a pre-built copy of the tool chain needed to build the Receiver kernel (without which I would have given up at the first hurdle, compiling a whole cross-compiler tool chain is not fun). Finally, thanks to Tony Fabris for testing the first version of this patch to make sure I wasn't imagining that the whole thing was working properly...