Bug 13130 - Add bass to Baby sound
: Add bass to Baby sound
Status: CLOSED FIXED
Product: SB Radio
Classification: Unclassified
Component: Audio
: Include FW version in comment
: PC Windows XP
: P1 normal (vote)
: 7.4.0
Assigned To: Caleb Crome
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-07-29 22:40 UTC by Mickey Gee
Modified: 2009-10-05 14:35 UTC (History)
2 users (show)

See Also:
Category: Feature


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mickey Gee 2009-07-29 22:40:10 UTC
With firmware r6846 and the addition of the software crossover in dsp, I did a little listening comparison between Baby and its big brother. I know that there's more work required to tune Baby, but I would think that the goal would be to have Baby's sound character be similar to Boom.

If so, Baby could use more bass. It's hard to do a real listening comparison and to scrutinize Baby's sound any more closely unless its tonal balance, especially in the bass, is similar to Boom's.

Creating a bug to track this ....
Comment 1 James Richardson 2009-07-30 15:33:48 UTC
More Cow Bells Please
Comment 2 Caleb Crome 2009-08-05 08:59:21 UTC
Bass is going to be tricky -- we may be MIPS limited until we get a good assembly language IIR filter.  Currently, using an FIR filter, which will need 300-500 taps to be right.    But, we're using an efficient FIR, so perhaps it's not terrible.

Will have to try it out.
Comment 3 Caleb Crome 2009-08-05 09:02:54 UTC
Ah, a quick back-of-the-envelope calculation says, best case, a 500 tap filter would be 1.5 cycles/tap * 500 taps/sample * 48000 samples/sec * 2 channels = 72 MIPS = 18% CPU.  
 
Is that bearable for 7.4?  There are many ways to make it more efficient, but it'll take time to get right.

-C
Comment 4 Richard Titmuss 2009-08-06 03:17:41 UTC
No, the audio output uses about 8% cpu without any filers, so that would be 26% cpu. It also assume 1.5 cycles/tap is correct, in reality we have addition overhead and copying of the cycles.
Comment 5 Caleb Crome 2009-08-06 07:41:52 UTC
And 1.5 cycles/tap doesn't count any time for DDR2 stalls or anything like that.

So, was your answer 'no -- we can't support that level of CPU usage'?

I believe you are correct, maximum CPU would be 26%, BEST CASE.  Worst case depends on memory IO bandwidth, etc.
Comment 6 Caleb Crome 2009-09-09 08:39:20 UTC
Built an IIR filter with some asm acceleration.
Comment 7 SVN Bot 2009-09-09 13:32:24 UTC
 == Auto-comment from SVN commit #6382 to the player repo by ccrome ==
 == https://svn.slimdevices.com/player?view=revision&revision=6382 ==

Fixed #13130.  
Added IIR filter for bass extension, and used IIR for crossover as well.  Greatly simplifies code.  
TODO:  should make filter coefficients configurable.  perhaps duplicate the biquad fader from the boom DSP to allow nice dynamic switching between biquads. 
Each IIR doesn't add too much processing power.  It seems that much of the overhead is elsewhere in the jive_alsa application other than the actual DSP.
Comment 8 James Richardson 2009-10-05 14:35:45 UTC
This bug has been marked as fixed in the 7.4.0 release version of SqueezeBox Server!
    * SqueezeCenter: 28672
    * Squeezebox 2 and 3: 130
    * Transporter: 80
    * Receiver: 65
    * Boom: 50
    * Controller: 7790
    * Radio: 7790  

Please see the Release Notes for all the details: http://wiki.slimdevices.com/index.php/Release_Notes

If you haven't already, please download and install the new version from http://www.logitechsqueezebox.com/support/download-squeezebox-server.html

If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.