rockbox/apps/menus
Ryan Billing d0918b98fa DSP Compressor: Sidechain, Exponential Atk/Rls
This is an improvement to the current compressor which I have added
to my own Sansa Fuze V2 build.  I am submitting here in case others
find it interesting.

Features added to the existing compressor:
Attack, Look-ahead, Sidechain Filtering.
Exponential attack and release characteristic response.

Benefits from adding missing features:
Attack:
Preserve perceived "brightness" of tone by letting onset transients
come through at a higher level than the rest of the compressed program
material.

Look-ahead:
With Attack comes clipping on the leading several cycles of a transient
onset.  With look-ahead function, this can be pre-emptively mitigated with
a slower gain change (less distortion).  Look-ahead limiting is implemented
to prevent clipping while keeping gain change ramp to an interval near 3ms
instead of instant attack.

The existing compressor implementation distorts the leading edge of a
transient by causing instant gain change, resulting in log() distortion.
This sounds "woofy" to me.

Exponential Attack/Release:
eMore natural sounding.  On attack, this is a true straight line of 10dB per
attack interval.  Release is a little different, however, sounds natural as
an analog compressor.

Sidechain Filtering:
Mild high-pass filter reduces response to low frequency onsets.  For example,
a hard kick drum is less likely to make the whole of the program material
appear to fade in and out.  Combined with a moderate attack time, such a
transient will ride through with minimal audible artifact.

Overall these changes make dynamic music sound more "open", more natural.  The
goal of a compressor is to make dyanamic music sound louder without necessarily
sounding as though it has been compressed.  I believe these changes come closer to this goal.

Enjoy.  If not, I am enjoying it

Change-Id: I664eace546c364b815b4dc9ed4a72849231a0eb2
Reviewed-on: http://gerrit.rockbox.org/626
Tested: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2013-12-15 22:24:08 +01:00
..
audiohw_eq_menu.c
display_menu.c apps: lcd-remote.h is not needed if HAVE_REMOTE_LCD is not defined 2012-01-07 19:35:46 +00:00
eq_menu.c Fix advanced EQ menu 2013-02-18 18:54:14 +11:00
eq_menu.h EQ: - Fine grained EQ configuration 2013-03-05 03:19:34 +01:00
exported_menus.h New General Settings submenu: Startup/Shutdown 2011-12-26 08:26:38 +00:00
main_menu.c Cleanup MV/MD macros a little. 2013-08-17 12:18:22 -04:00
menu_common.c
menu_common.h
playback_menu.c Get rid of some superfluous single-purpose functions in playback. 2013-07-13 00:08:51 -04:00
playlist_menu.c FS#11808 - Major playlist handling changes (on disk playlists) 2011-07-20 14:11:15 +00:00
plugin_menu.c Fix oops in r29160 (apps went into games and vice versa). 2011-01-29 15:03:03 +00:00
radio_menu.c Fix FS#12158 - Make the "Mode: " line in the radio menu voice. 2011-06-16 13:28:15 +00:00
recording_menu.c Reuse frequency string from recording for playback frequency. 2013-07-06 17:14:02 -04:00
settings_menu.c Revert 64d048be. It breaks h300. 2012-12-26 18:01:19 +01:00
sound_menu.c DSP Compressor: Sidechain, Exponential Atk/Rls 2013-12-15 22:24:08 +01:00
theme_menu.c apps: lcd-remote.h is not needed if HAVE_REMOTE_LCD is not defined 2012-01-07 19:35:46 +00:00
time_menu.c New General Settings submenu: Startup/Shutdown 2011-12-26 08:26:38 +00:00