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 Gigabeat S: Fully enable access to hardware tone controls and 3-D effect feature. Under the hood, it's designated a hardware equalizer since it is one. Implement code framework for hardware EQ in general. Menu aspect is well abstracted and so the UI and strings can be changed around if taste doesn't quite suit. So far the emphasis is distinction of the UI labelling from the software EQ so that it's clear the settings are for a different thing. 2010-05-15 13:09:45 +00:00
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