summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayden Pearce <saint.lascivious@gmail.com>2013-01-23 07:08:16 +1300
committerJonathan Gordon <rockbox@jdgordon.info>2013-01-29 06:53:41 +0100
commitd73c20933b5a7428c8f30442a6e0b90b34ece291 (patch)
tree8aee5020ec10064713b956456cc7b7fe97a96838
parent7fda69222c86283563c80d92935147177b099571 (diff)
downloadrockbox-d73c20933b5a7428c8f30442a6e0b90b34ece291.zip
rockbox-d73c20933b5a7428c8f30442a6e0b90b34ece291.tar.gz
rockbox-d73c20933b5a7428c8f30442a6e0b90b34ece291.tar.bz2
rockbox-d73c20933b5a7428c8f30442a6e0b90b34ece291.tar.xz
10 Band EQ w/Presets
- A 10 Band EQ for Rockbox w/ presets adapted from VLC - frequency stepping at 32, 64, 125, 250, 500 1K, 2K, 4K, 8K, 16K Change-Id: I85ad84d70a534edfc66c6ad9af8a76f022a02ec7 Reviewed-on: http://gerrit.rockbox.org/386 Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
-rw-r--r--apps/menus/eq_menu.c119
-rw-r--r--apps/settings_list.c57
-rw-r--r--lib/rbcodec/dsp/eq.c2
-rw-r--r--lib/rbcodec/dsp/eq.h2
-rw-r--r--lib/rbcodec/dsp/eqs/Acoustic.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Bass.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Classical.cfg39
-rw-r--r--lib/rbcodec/dsp/eqs/Club.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Dance.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Default.cfg27
-rw-r--r--lib/rbcodec/dsp/eqs/Disco.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Electronic.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Flat.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Full Bass and Treble.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Full Bass.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Full Treble.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Headphones.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Hip-Hop.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Jazz.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Large Hall.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Live.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Lounge.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Party.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Pop.cfg39
-rw-r--r--lib/rbcodec/dsp/eqs/R&B.cfg35
-rw-r--r--lib/rbcodec/dsp/eqs/Reggae.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Rock.cfg39
-rw-r--r--lib/rbcodec/dsp/eqs/Ska.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Soft Rock.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Soft.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Techno.cfg32
-rw-r--r--lib/rbcodec/dsp/eqs/Vocal.cfg35
32 files changed, 961 insertions, 158 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 7ece92e..2f3d6b6 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -106,6 +106,16 @@ MENUITEM_SETTING(cutoff_3, &global_settings.eq_band_settings[3].cutoff,
eq_setting_callback);
MENUITEM_SETTING(cutoff_4, &global_settings.eq_band_settings[4].cutoff,
eq_setting_callback);
+MENUITEM_SETTING(cutoff_5, &global_settings.eq_band_settings[5].cutoff,
+ eq_setting_callback);
+MENUITEM_SETTING(cutoff_6, &global_settings.eq_band_settings[6].cutoff,
+ eq_setting_callback);
+MENUITEM_SETTING(cutoff_7, &global_settings.eq_band_settings[7].cutoff,
+ eq_setting_callback);
+MENUITEM_SETTING(cutoff_8, &global_settings.eq_band_settings[8].cutoff,
+ eq_setting_callback);
+MENUITEM_SETTING(cutoff_9, &global_settings.eq_band_settings[9].cutoff,
+ eq_setting_callback);
MENUITEM_SETTING(q_0, &global_settings.eq_band_settings[0].q,
eq_setting_callback);
@@ -117,6 +127,16 @@ MENUITEM_SETTING(q_3, &global_settings.eq_band_settings[3].q,
eq_setting_callback);
MENUITEM_SETTING(q_4, &global_settings.eq_band_settings[4].q,
eq_setting_callback);
+MENUITEM_SETTING(q_5, &global_settings.eq_band_settings[5].q,
+ eq_setting_callback);
+MENUITEM_SETTING(q_6, &global_settings.eq_band_settings[6].q,
+ eq_setting_callback);
+MENUITEM_SETTING(q_7, &global_settings.eq_band_settings[7].q,
+ eq_setting_callback);
+MENUITEM_SETTING(q_8, &global_settings.eq_band_settings[8].q,
+ eq_setting_callback);
+MENUITEM_SETTING(q_9, &global_settings.eq_band_settings[9].q,
+ eq_setting_callback);
MENUITEM_SETTING(gain_0, &global_settings.eq_band_settings[0].gain,
eq_setting_callback);
@@ -128,6 +148,16 @@ MENUITEM_SETTING(gain_3, &global_settings.eq_band_settings[3].gain,
eq_setting_callback);
MENUITEM_SETTING(gain_4, &global_settings.eq_band_settings[4].gain,
eq_setting_callback);
+MENUITEM_SETTING(gain_5, &global_settings.eq_band_settings[5].gain,
+ eq_setting_callback);
+MENUITEM_SETTING(gain_6, &global_settings.eq_band_settings[6].gain,
+ eq_setting_callback);
+MENUITEM_SETTING(gain_7, &global_settings.eq_band_settings[7].gain,
+ eq_setting_callback);
+MENUITEM_SETTING(gain_8, &global_settings.eq_band_settings[8].gain,
+ eq_setting_callback);
+MENUITEM_SETTING(gain_9, &global_settings.eq_band_settings[9].gain,
+ eq_setting_callback);
static char* gainitem_get_name(int selected_item, void * data, char *buffer)
{
@@ -181,14 +211,46 @@ MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM,
gainitem_get_name, gainitem_speak_item,
&global_settings.eq_band_settings[4].cutoff,
NULL, Icon_NOICON);
+MENUITEM_FUNCTION_DYNTEXT(gain_item_5, MENU_FUNC_USEPARAM,
+ do_option, (void*)&gain_5,
+ gainitem_get_name, gainitem_speak_item,
+ &global_settings.eq_band_settings[5].cutoff,
+ NULL, Icon_NOICON);
+MENUITEM_FUNCTION_DYNTEXT(gain_item_6, MENU_FUNC_USEPARAM,
+ do_option, (void*)&gain_6,
+ gainitem_get_name, gainitem_speak_item,
+ &global_settings.eq_band_settings[6].cutoff,
+ NULL, Icon_NOICON);
+MENUITEM_FUNCTION_DYNTEXT(gain_item_7, MENU_FUNC_USEPARAM,
+ do_option, (void*)&gain_7,
+ gainitem_get_name, gainitem_speak_item,
+ &global_settings.eq_band_settings[7].cutoff,
+ NULL, Icon_NOICON);
+MENUITEM_FUNCTION_DYNTEXT(gain_item_8, MENU_FUNC_USEPARAM,
+ do_option, (void*)&gain_8,
+ gainitem_get_name, gainitem_speak_item,
+ &global_settings.eq_band_settings[8].cutoff,
+ NULL, Icon_NOICON);
+MENUITEM_FUNCTION_DYNTEXT(gain_item_9, MENU_FUNC_USEPARAM,
+ do_option, (void*)&gain_9,
+ gainitem_get_name, gainitem_speak_item,
+ &global_settings.eq_band_settings[9].cutoff,
+ NULL, Icon_NOICON);
MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0,
- &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4);
+ &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4,
+ &gain_item_5, &gain_item_6, &gain_item_7, &gain_item_8,
+ &gain_item_9);
-static const struct menu_item_ex *band_items[3][3] = {
+static const struct menu_item_ex *band_items[8][3] = {
{ &cutoff_1, &q_1, &gain_1 },
{ &cutoff_2, &q_2, &gain_2 },
- { &cutoff_3, &q_3, &gain_3 }
+ { &cutoff_3, &q_3, &gain_3 },
+ { &cutoff_4, &q_4, &gain_4 },
+ { &cutoff_5, &q_5, &gain_5 },
+ { &cutoff_6, &q_6, &gain_6 },
+ { &cutoff_7, &q_7, &gain_7 },
+ { &cutoff_8, &q_8, &gain_8 }
};
static char* centerband_get_name(int selected_item, void * data, char *buffer)
@@ -240,11 +302,32 @@ MENUITEM_FUNCTION_DYNTEXT(band_3_menu, MENU_FUNC_USEPARAM,
do_center_band_menu, (void*)3,
centerband_get_name, centerband_speak_item,
(void*)3, NULL, Icon_EQ);
-MAKE_MENU(band_4_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL,
- Icon_EQ, &cutoff_4, &q_4, &gain_4);
+MENUITEM_FUNCTION_DYNTEXT(band_4_menu, MENU_FUNC_USEPARAM,
+ do_center_band_menu, (void*)4,
+ centerband_get_name, centerband_speak_item,
+ (void*)4, NULL, Icon_EQ);
+MENUITEM_FUNCTION_DYNTEXT(band_5_menu, MENU_FUNC_USEPARAM,
+ do_center_band_menu, (void*)5,
+ centerband_get_name, centerband_speak_item,
+ (void*)5, NULL, Icon_EQ);
+MENUITEM_FUNCTION_DYNTEXT(band_6_menu, MENU_FUNC_USEPARAM,
+ do_center_band_menu, (void*)6,
+ centerband_get_name, centerband_speak_item,
+ (void*)6, NULL, Icon_EQ);
+MENUITEM_FUNCTION_DYNTEXT(band_7_menu, MENU_FUNC_USEPARAM,
+ do_center_band_menu, (void*)7,
+ centerband_get_name, centerband_speak_item,
+ (void*)7, NULL, Icon_EQ);
+MENUITEM_FUNCTION_DYNTEXT(band_8_menu, MENU_FUNC_USEPARAM,
+ do_center_band_menu, (void*)8,
+ centerband_get_name, centerband_speak_item,
+ (void*)8, NULL, Icon_EQ);
+MAKE_MENU(band_9_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL,
+ Icon_EQ, &cutoff_9, &q_9, &gain_9);
MAKE_MENU(advanced_eq_menu_, ID2P(LANG_EQUALIZER_ADVANCED), NULL, Icon_EQ,
- &band_0_menu, &band_1_menu, &band_2_menu, &band_3_menu, &band_4_menu);
+ &band_0_menu, &band_1_menu, &band_2_menu, &band_3_menu, &band_4_menu,
+ &band_5_menu, &band_6_menu, &band_7_menu, &band_8_menu, &band_9_menu);
enum eq_slider_mode {
@@ -300,7 +383,7 @@ static int draw_eq_slider(struct screen * screen, int x, int y,
if (band == 0) {
screen->putsxy(x1, y1, "LS: ");
screen->getstringsize("LS:", &w, &h);
- } else if (band == 4) {
+ } else if (band == 9) {
screen->putsxy(x1, y1, "HS: ");
screen->getstringsize("HS:", &w, &h);
} else {
@@ -370,9 +453,9 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
{
int height = y;
- start_item = MIN(start_item, 5 - nb_eq_sliders);
+ start_item = MIN(start_item, 10 - nb_eq_sliders);
- for (int i = 0; i < 5; i++) {
+ for (int i = 0; i < 10; i++) {
struct eq_band_setting *setting = &global_settings.eq_band_settings[i];
int cutoff = setting->cutoff;
int q = setting->q;
@@ -390,9 +473,9 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
}
}
- if (nb_eq_sliders != 5)
+ if (nb_eq_sliders != 10)
gui_scrollbar_draw(screen, 0, y, SCROLLBAR_SIZE - 1,
- screen->lcdheight - y, 5,
+ screen->lcdheight - y, 10,
start_item, start_item + nb_eq_sliders,
VERTICAL);
return;
@@ -431,8 +514,8 @@ bool eq_menu_graphical(void)
if (height > screens[i].lcdheight)
nb_eq_sliders[i]--;
- if (nb_eq_sliders[i] > 5)
- nb_eq_sliders[i] = 5;
+ if (nb_eq_sliders[i] > 10)
+ nb_eq_sliders[i] = 10;
}
y = h + 1;
@@ -489,12 +572,12 @@ bool eq_menu_graphical(void)
}
/* Draw scrollbar if needed */
- if (nb_eq_sliders[i] != 5)
+ if (nb_eq_sliders[i] != 10)
{
if (current_band == 0) {
start_item = 0;
- } else if (current_band == 4) {
- start_item = 5 - nb_eq_sliders[i];
+ } else if (current_band == 9) {
+ start_item = 10 - nb_eq_sliders[i];
} else {
start_item = current_band - 1;
}
@@ -547,13 +630,13 @@ bool eq_menu_graphical(void)
case ACTION_STD_PREVREPEAT:
current_band--;
if (current_band < 0)
- current_band = 4; /* wrap around */
+ current_band = 9; /* wrap around */
break;
case ACTION_STD_NEXT:
case ACTION_STD_NEXTREPEAT:
current_band++;
- if (current_band > 4)
+ if (current_band > 9)
current_band = 0; /* wrap around */
break;
diff --git a/apps/settings_list.c b/apps/settings_list.c
index ef9fe50..9df2f17 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1440,19 +1440,34 @@ const struct settings_list settings[] = {
get_precut_talkid, dsp_set_eq_precut),
/* 0..32768 Hz */
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
- 60, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ 32, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[1].cutoff, LANG_EQUALIZER_BAND_CENTER,
- 200, "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ 64, "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[2].cutoff, LANG_EQUALIZER_BAND_CENTER,
- 800, "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ 125, "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].cutoff, LANG_EQUALIZER_BAND_CENTER,
- 4000, "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ 250, "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
- 12000, "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ 500, "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
+ 1000, "eq band 5 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
+ 2000, "eq band 6 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
+ 4000, "eq band 7 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
+ 8000, "eq band 8 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
+ EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
+ 16000, "eq band 9 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
/* 0..64 (or 0.0 to 6.4) */
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].q, LANG_EQUALIZER_BAND_Q, 7,
@@ -1467,9 +1482,24 @@ const struct settings_list settings[] = {
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].q, LANG_EQUALIZER_BAND_Q, 10,
"eq band 3 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
eq_q_format, get_dec_talkid, NULL),
- INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].q, LANG_EQUALIZER_BAND_Q, 7,
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].q, LANG_EQUALIZER_BAND_Q, 10,
"eq band 4 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
eq_q_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].q, LANG_EQUALIZER_BAND_Q, 10,
+ "eq band 5 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
+ eq_q_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].q, LANG_EQUALIZER_BAND_Q, 10,
+ "eq band 6 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
+ eq_q_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].q, LANG_EQUALIZER_BAND_Q, 10,
+ "eq band 7 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
+ eq_q_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].q, LANG_EQUALIZER_BAND_Q, 10,
+ "eq band 8 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
+ eq_q_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].q, LANG_EQUALIZER_BAND_Q, 7,
+ "eq band 9 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
+ eq_q_format, get_dec_talkid, NULL),
/* -240..240 (or -24db to +24db) */
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].gain, LANG_GAIN, 0,
"eq band 0 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
@@ -1486,6 +1516,21 @@ const struct settings_list settings[] = {
INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].gain, LANG_GAIN, 0,
"eq band 4 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].gain, LANG_GAIN, 0,
+ "eq band 5 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
+ EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].gain, LANG_GAIN, 0,
+ "eq band 6 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
+ EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].gain, LANG_GAIN, 0,
+ "eq band 7 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
+ EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].gain, LANG_GAIN, 0,
+ "eq band 8 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
+ EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
+ INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].gain, LANG_GAIN, 0,
+ "eq band 9 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
+ EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
/* dithering */
OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false,
diff --git a/lib/rbcodec/dsp/eq.c b/lib/rbcodec/dsp/eq.c
index 2e4b9af..d58f095 100644
--- a/lib/rbcodec/dsp/eq.c
+++ b/lib/rbcodec/dsp/eq.c
@@ -32,7 +32,7 @@
#include <string.h>
/**
- * Current setup is one lowshelf filters three peaking filters and one
+ * Current setup is one lowshelf filters eight peaking filters and one
* highshelf filter. Varying the number of shelving filters make no sense,
* but adding peaking filters is possible. Check EQ_NUM_BANDS to have
* 2 shelving filters and EQ_NUM_BANDS-2 peaking filters.
diff --git a/lib/rbcodec/dsp/eq.h b/lib/rbcodec/dsp/eq.h
index 53097be..9b670d7 100644
--- a/lib/rbcodec/dsp/eq.h
+++ b/lib/rbcodec/dsp/eq.h
@@ -25,7 +25,7 @@
* Menus and screens must be updated to support changing this from 5
* without modifying other stuff (remove comment when this is no longer
* true :-) */
-#define EQ_NUM_BANDS 5
+#define EQ_NUM_BANDS 10
struct eq_band_setting
{
diff --git a/lib/rbcodec/dsp/eqs/Acoustic.cfg b/lib/rbcodec/dsp/eqs/Acoustic.cfg
index 34b5ed8..fd30094 100644
--- a/lib/rbcodec/dsp/eqs/Acoustic.cfg
+++ b/lib/rbcodec/dsp/eqs/Acoustic.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 45
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 45
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 10
-eq band 2 cutoff: 800
+eq band 1 gain: 45
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 15
-eq band 3 cutoff: 4000
+eq band 2 gain: 10
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 30
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 20
+eq band 3 gain: 10
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 15
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 15
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 30
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 30
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 20
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 20
diff --git a/lib/rbcodec/dsp/eqs/Bass.cfg b/lib/rbcodec/dsp/eqs/Bass.cfg
index 2742459..3f122f1 100644
--- a/lib/rbcodec/dsp/eqs/Bass.cfg
+++ b/lib/rbcodec/dsp/eqs/Bass.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 50
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 50
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 35
-eq band 2 cutoff: 800
+eq band 1 gain: 50
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 15
-eq band 3 cutoff: 4000
+eq band 2 gain: 35
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 5
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: -5
+eq band 3 gain: 35
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 15
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 15
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 5
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 5
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: -5
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: -5
diff --git a/lib/rbcodec/dsp/eqs/Classical.cfg b/lib/rbcodec/dsp/eqs/Classical.cfg
index bf2f9f9..ba95adb 100644
--- a/lib/rbcodec/dsp/eqs/Classical.cfg
+++ b/lib/rbcodec/dsp/eqs/Classical.cfg
@@ -1,17 +1,32 @@
eq enabled: on
-eq precut: 50
-eq band 0 cutoff: 60
+eq precut: 0
+eq band 0 cutoff: 32
eq band 0 q: 7
-eq band 0 gain: 50
-eq band 1 cutoff: 200
+eq band 0 gain: 0
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 40
-eq band 2 cutoff: 800
+eq band 1 gain: 0
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: -20
-eq band 3 cutoff: 4000
+eq band 2 gain: 0
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 10
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 20
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 0
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -70
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: -70
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: -70
diff --git a/lib/rbcodec/dsp/eqs/Club.cfg b/lib/rbcodec/dsp/eqs/Club.cfg
new file mode 100644
index 0000000..5e20ca2
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Club.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 80
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 0
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 0
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 80
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 55
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 55
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 30
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Dance.cfg b/lib/rbcodec/dsp/eqs/Dance.cfg
new file mode 100644
index 0000000..6c26292
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Dance.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 95
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 95
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 70
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 25
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -55
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -70
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -70
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Default.cfg b/lib/rbcodec/dsp/eqs/Default.cfg
index d6f345f..c6579c7 100644
--- a/lib/rbcodec/dsp/eqs/Default.cfg
+++ b/lib/rbcodec/dsp/eqs/Default.cfg
@@ -1,17 +1,32 @@
eq enabled: off
eq precut: 0
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 0
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
eq band 1 gain: 0
-eq band 2 cutoff: 800
+eq band 2 cutoff: 125
eq band 2 q: 10
eq band 2 gain: 0
-eq band 3 cutoff: 4000
+eq band 3 cutoff: 250
eq band 3 q: 10
eq band 3 gain: 0
-eq band 4 cutoff: 12000
-eq band 4 q: 7
+eq band 4 cutoff: 500
+eq band 4 q: 10
eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 0
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Disco.cfg b/lib/rbcodec/dsp/eqs/Disco.cfg
index f894f26..12f4b36 100644
--- a/lib/rbcodec/dsp/eqs/Disco.cfg
+++ b/lib/rbcodec/dsp/eqs/Disco.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 45
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 30
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 10
-eq band 2 cutoff: 800
+eq band 1 gain: 30
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 45
-eq band 3 cutoff: 4000
+eq band 2 gain: 10
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 25
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 10
+eq band 3 gain: 10
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 45
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 45
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 25
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 25
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 10
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 10
diff --git a/lib/rbcodec/dsp/eqs/Electronic.cfg b/lib/rbcodec/dsp/eqs/Electronic.cfg
index e70c911..e710706 100644
--- a/lib/rbcodec/dsp/eqs/Electronic.cfg
+++ b/lib/rbcodec/dsp/eqs/Electronic.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 55
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 45
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 5
-eq band 2 cutoff: 800
+eq band 1 gain: 45
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 25
-eq band 3 cutoff: 4000
+eq band 2 gain: 5
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 15
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 55
+eq band 3 gain: 5
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 25
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 25
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 15
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 15
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 55
diff --git a/lib/rbcodec/dsp/eqs/Flat.cfg b/lib/rbcodec/dsp/eqs/Flat.cfg
new file mode 100644
index 0000000..9e52cb8
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Flat.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 0
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 0
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 0
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 0
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Full Bass and Treble.cfg b/lib/rbcodec/dsp/eqs/Full Bass and Treble.cfg
new file mode 100644
index 0000000..193d244
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Bass and Treble.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 120
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 70
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 55
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -70
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -50
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 15
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 80
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 110
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 120
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 120
diff --git a/lib/rbcodec/dsp/eqs/Full Bass.cfg b/lib/rbcodec/dsp/eqs/Full Bass.cfg
new file mode 100644
index 0000000..b39a5c2
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Bass.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 95
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: -80
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 95
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 95
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 15
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -40
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -80
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -100
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: -110
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: -110
diff --git a/lib/rbcodec/dsp/eqs/Full Treble.cfg b/lib/rbcodec/dsp/eqs/Full Treble.cfg
new file mode 100644
index 0000000..bb87890
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Treble.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 170
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: -95
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: -95
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: -95
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -40
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 25
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 110
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 160
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 160
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 160
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 170
diff --git a/lib/rbcodec/dsp/eqs/Headphones.cfg b/lib/rbcodec/dsp/eqs/Headphones.cfg
new file mode 100644
index 0000000..0720a59
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Headphones.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 145
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 50
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 110
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 55
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -30
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -25
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 15
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 50
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 95
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 130
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 145
diff --git a/lib/rbcodec/dsp/eqs/Hip-Hop.cfg b/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
index 2d38425..54f11fb 100644
--- a/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
+++ b/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 65
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 65
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 25
-eq band 2 cutoff: 800
+eq band 1 gain: 65
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: -10
-eq band 3 cutoff: 4000
+eq band 2 gain: 25
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 15
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 35
+eq band 3 gain: 25
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -10
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -10
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 15
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 15
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 35
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 35
diff --git a/lib/rbcodec/dsp/eqs/Jazz.cfg b/lib/rbcodec/dsp/eqs/Jazz.cfg
index f576f9f..04c1e34 100644
--- a/lib/rbcodec/dsp/eqs/Jazz.cfg
+++ b/lib/rbcodec/dsp/eqs/Jazz.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 60
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 40
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 15
-eq band 2 cutoff: 800
+eq band 1 gain: 40
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: -25
-eq band 3 cutoff: 4000
+eq band 2 gain: 15
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 5
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 60
+eq band 3 gain: 15
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -25
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -25
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 5
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 5
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 60
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 60
diff --git a/lib/rbcodec/dsp/eqs/Large Hall.cfg b/lib/rbcodec/dsp/eqs/Large Hall.cfg
new file mode 100644
index 0000000..e3abbac
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Large Hall.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 150
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 105
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 105
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 55
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -50
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -50
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -50
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Live.cfg b/lib/rbcodec/dsp/eqs/Live.cfg
new file mode 100644
index 0000000..6758542
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Live.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 55
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: -50
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 0
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 40
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 55
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 55
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 40
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 25
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 25
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 25
diff --git a/lib/rbcodec/dsp/eqs/Lounge.cfg b/lib/rbcodec/dsp/eqs/Lounge.cfg
index 39ae23a..cac40eb 100644
--- a/lib/rbcodec/dsp/eqs/Lounge.cfg
+++ b/lib/rbcodec/dsp/eqs/Lounge.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 20
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: -25
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 5
-eq band 2 cutoff: 800
+eq band 1 gain: -25
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 20
-eq band 3 cutoff: 4000
+eq band 2 gain: 5
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: -15
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 15
+eq band 3 gain: 5
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 20
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 20
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -15
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -15
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 15
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 15
diff --git a/lib/rbcodec/dsp/eqs/Party.cfg b/lib/rbcodec/dsp/eqs/Party.cfg
new file mode 100644
index 0000000..6f6001a
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Party.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 70
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 70
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 70
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 0
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 70
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 70
diff --git a/lib/rbcodec/dsp/eqs/Pop.cfg b/lib/rbcodec/dsp/eqs/Pop.cfg
index 1d8cefe..2584065 100644
--- a/lib/rbcodec/dsp/eqs/Pop.cfg
+++ b/lib/rbcodec/dsp/eqs/Pop.cfg
@@ -1,17 +1,32 @@
eq enabled: on
-eq precut: 50
-eq band 0 cutoff: 60
+eq precut: 80
+eq band 0 cutoff: 32
eq band 0 q: 7
-eq band 0 gain: -10
-eq band 1 cutoff: 200
+eq band 0 gain: -15
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 5
-eq band 2 cutoff: 800
+eq band 1 gain: 50
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 50
-eq band 3 cutoff: 4000
+eq band 2 gain: 70
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 15
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: -10
+eq band 3 gain: 80
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 55
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -25
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: -25
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 15
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 15
diff --git a/lib/rbcodec/dsp/eqs/R&B.cfg b/lib/rbcodec/dsp/eqs/R&B.cfg
index a460b58..283e02a 100644
--- a/lib/rbcodec/dsp/eqs/R&B.cfg
+++ b/lib/rbcodec/dsp/eqs/R&B.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 45
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: 35
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 45
-eq band 2 cutoff: 800
+eq band 1 gain: 35
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 5
-eq band 3 cutoff: 4000
+eq band 2 gain: 45
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 25
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 30
+eq band 3 gain: 45
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 5
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 5
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 25
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 25
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 30
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 30
diff --git a/lib/rbcodec/dsp/eqs/Reggae.cfg b/lib/rbcodec/dsp/eqs/Reggae.cfg
new file mode 100644
index 0000000..11def53
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Reggae.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 65
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 0
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 0
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 65
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 65
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Rock.cfg b/lib/rbcodec/dsp/eqs/Rock.cfg
index ec4f035..788c8b8 100644
--- a/lib/rbcodec/dsp/eqs/Rock.cfg
+++ b/lib/rbcodec/dsp/eqs/Rock.cfg
@@ -1,17 +1,32 @@
eq enabled: on
-eq precut: 45
-eq band 0 cutoff: 60
+eq precut: 110
+eq band 0 cutoff: 32
eq band 0 q: 7
-eq band 0 gain: 25
-eq band 1 cutoff: 200
+eq band 0 gain: 80
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 10
-eq band 2 cutoff: 800
+eq band 1 gain: 50
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 0
-eq band 3 cutoff: 4000
+eq band 2 gain: -55
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 20
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 45
+eq band 3 gain: -80
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -30
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 40
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 90
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 110
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 110
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 110
diff --git a/lib/rbcodec/dsp/eqs/Ska.cfg b/lib/rbcodec/dsp/eqs/Ska.cfg
new file mode 100644
index 0000000..b0848ad
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Ska.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 110
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: -25
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: -50
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: -40
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 40
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 55
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 90
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 95
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 110
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 95
diff --git a/lib/rbcodec/dsp/eqs/Soft Rock.cfg b/lib/rbcodec/dsp/eqs/Soft Rock.cfg
new file mode 100644
index 0000000..2a7a6e6
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Soft Rock.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 90
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 40
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 40
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 25
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: 0
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -40
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: -55
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: -30
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 0
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 25
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 90
diff --git a/lib/rbcodec/dsp/eqs/Soft.cfg b/lib/rbcodec/dsp/eqs/Soft.cfg
new file mode 100644
index 0000000..e9f0f03
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Soft.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 120
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 50
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 15
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -25
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 0
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 40
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 80
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 95
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 110
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 120
diff --git a/lib/rbcodec/dsp/eqs/Techno.cfg b/lib/rbcodec/dsp/eqs/Techno.cfg
new file mode 100644
index 0000000..1125d49
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Techno.cfg
@@ -0,0 +1,32 @@
+eq enabled: on
+eq precut: 95
+eq band 0 cutoff: 32
+eq band 0 q: 7
+eq band 0 gain: 80
+eq band 1 cutoff: 64
+eq band 1 q: 10
+eq band 1 gain: 55
+eq band 2 cutoff: 125
+eq band 2 q: 10
+eq band 2 gain: 0
+eq band 3 cutoff: 250
+eq band 3 q: 10
+eq band 3 gain: -55
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: -50
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 0
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 80
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 95
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 95
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 90
diff --git a/lib/rbcodec/dsp/eqs/Vocal.cfg b/lib/rbcodec/dsp/eqs/Vocal.cfg
index 1de754f..fa8fd89 100644
--- a/lib/rbcodec/dsp/eqs/Vocal.cfg
+++ b/lib/rbcodec/dsp/eqs/Vocal.cfg
@@ -1,17 +1,32 @@
eq enabled: on
eq precut: 45
-eq band 0 cutoff: 60
+eq band 0 cutoff: 32
eq band 0 q: 7
eq band 0 gain: -45
-eq band 1 cutoff: 200
+eq band 1 cutoff: 64
eq band 1 q: 10
-eq band 1 gain: 5
-eq band 2 cutoff: 800
+eq band 1 gain: -45
+eq band 2 cutoff: 125
eq band 2 q: 10
-eq band 2 gain: 45
-eq band 3 cutoff: 4000
+eq band 2 gain: 5
+eq band 3 cutoff: 250
eq band 3 q: 10
-eq band 3 gain: 20
-eq band 4 cutoff: 12000
-eq band 4 q: 7
-eq band 4 gain: 0
+eq band 3 gain: 5
+eq band 4 cutoff: 500
+eq band 4 q: 10
+eq band 4 gain: 45
+eq band 5 cutoff: 1000
+eq band 5 q: 10
+eq band 5 gain: 45
+eq band 6 cutoff: 2000
+eq band 6 q: 10
+eq band 6 gain: 20
+eq band 7 cutoff: 4000
+eq band 7 q: 10
+eq band 7 gain: 20
+eq band 8 cutoff: 8000
+eq band 8 q: 10
+eq band 8 gain: 0
+eq band 9 cutoff: 16000
+eq band 9 q: 7
+eq band 9 gain: 0