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.tar.gz
rockbox-d73c20933b5a7428c8f30442a6e0b90b34ece291.zip
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 7ece92e0aa..2f3d6b62c7 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,
106 eq_setting_callback); 106 eq_setting_callback);
107MENUITEM_SETTING(cutoff_4, &global_settings.eq_band_settings[4].cutoff, 107MENUITEM_SETTING(cutoff_4, &global_settings.eq_band_settings[4].cutoff,
108 eq_setting_callback); 108 eq_setting_callback);
109MENUITEM_SETTING(cutoff_5, &global_settings.eq_band_settings[5].cutoff,
110 eq_setting_callback);
111MENUITEM_SETTING(cutoff_6, &global_settings.eq_band_settings[6].cutoff,
112 eq_setting_callback);
113MENUITEM_SETTING(cutoff_7, &global_settings.eq_band_settings[7].cutoff,
114 eq_setting_callback);
115MENUITEM_SETTING(cutoff_8, &global_settings.eq_band_settings[8].cutoff,
116 eq_setting_callback);
117MENUITEM_SETTING(cutoff_9, &global_settings.eq_band_settings[9].cutoff,
118 eq_setting_callback);
109 119
110MENUITEM_SETTING(q_0, &global_settings.eq_band_settings[0].q, 120MENUITEM_SETTING(q_0, &global_settings.eq_band_settings[0].q,
111 eq_setting_callback); 121 eq_setting_callback);
@@ -117,6 +127,16 @@ MENUITEM_SETTING(q_3, &global_settings.eq_band_settings[3].q,
117 eq_setting_callback); 127 eq_setting_callback);
118MENUITEM_SETTING(q_4, &global_settings.eq_band_settings[4].q, 128MENUITEM_SETTING(q_4, &global_settings.eq_band_settings[4].q,
119 eq_setting_callback); 129 eq_setting_callback);
130MENUITEM_SETTING(q_5, &global_settings.eq_band_settings[5].q,
131 eq_setting_callback);
132MENUITEM_SETTING(q_6, &global_settings.eq_band_settings[6].q,
133 eq_setting_callback);
134MENUITEM_SETTING(q_7, &global_settings.eq_band_settings[7].q,
135 eq_setting_callback);
136MENUITEM_SETTING(q_8, &global_settings.eq_band_settings[8].q,
137 eq_setting_callback);
138MENUITEM_SETTING(q_9, &global_settings.eq_band_settings[9].q,
139 eq_setting_callback);
120 140
121MENUITEM_SETTING(gain_0, &global_settings.eq_band_settings[0].gain, 141MENUITEM_SETTING(gain_0, &global_settings.eq_band_settings[0].gain,
122 eq_setting_callback); 142 eq_setting_callback);
@@ -128,6 +148,16 @@ MENUITEM_SETTING(gain_3, &global_settings.eq_band_settings[3].gain,
128 eq_setting_callback); 148 eq_setting_callback);
129MENUITEM_SETTING(gain_4, &global_settings.eq_band_settings[4].gain, 149MENUITEM_SETTING(gain_4, &global_settings.eq_band_settings[4].gain,
130 eq_setting_callback); 150 eq_setting_callback);
151MENUITEM_SETTING(gain_5, &global_settings.eq_band_settings[5].gain,
152 eq_setting_callback);
153MENUITEM_SETTING(gain_6, &global_settings.eq_band_settings[6].gain,
154 eq_setting_callback);
155MENUITEM_SETTING(gain_7, &global_settings.eq_band_settings[7].gain,
156 eq_setting_callback);
157MENUITEM_SETTING(gain_8, &global_settings.eq_band_settings[8].gain,
158 eq_setting_callback);
159MENUITEM_SETTING(gain_9, &global_settings.eq_band_settings[9].gain,
160 eq_setting_callback);
131 161
132static char* gainitem_get_name(int selected_item, void * data, char *buffer) 162static char* gainitem_get_name(int selected_item, void * data, char *buffer)
133{ 163{
@@ -181,14 +211,46 @@ MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM,
181 gainitem_get_name, gainitem_speak_item, 211 gainitem_get_name, gainitem_speak_item,
182 &global_settings.eq_band_settings[4].cutoff, 212 &global_settings.eq_band_settings[4].cutoff,
183 NULL, Icon_NOICON); 213 NULL, Icon_NOICON);
214MENUITEM_FUNCTION_DYNTEXT(gain_item_5, MENU_FUNC_USEPARAM,
215 do_option, (void*)&gain_5,
216 gainitem_get_name, gainitem_speak_item,
217 &global_settings.eq_band_settings[5].cutoff,
218 NULL, Icon_NOICON);
219MENUITEM_FUNCTION_DYNTEXT(gain_item_6, MENU_FUNC_USEPARAM,
220 do_option, (void*)&gain_6,
221 gainitem_get_name, gainitem_speak_item,
222 &global_settings.eq_band_settings[6].cutoff,
223 NULL, Icon_NOICON);
224MENUITEM_FUNCTION_DYNTEXT(gain_item_7, MENU_FUNC_USEPARAM,
225 do_option, (void*)&gain_7,
226 gainitem_get_name, gainitem_speak_item,
227 &global_settings.eq_band_settings[7].cutoff,
228 NULL, Icon_NOICON);
229MENUITEM_FUNCTION_DYNTEXT(gain_item_8, MENU_FUNC_USEPARAM,
230 do_option, (void*)&gain_8,
231 gainitem_get_name, gainitem_speak_item,
232 &global_settings.eq_band_settings[8].cutoff,
233 NULL, Icon_NOICON);
234MENUITEM_FUNCTION_DYNTEXT(gain_item_9, MENU_FUNC_USEPARAM,
235 do_option, (void*)&gain_9,
236 gainitem_get_name, gainitem_speak_item,
237 &global_settings.eq_band_settings[9].cutoff,
238 NULL, Icon_NOICON);
184 239
185MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0, 240MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0,
186 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4); 241 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4,
242 &gain_item_5, &gain_item_6, &gain_item_7, &gain_item_8,
243 &gain_item_9);
187 244
188static const struct menu_item_ex *band_items[3][3] = { 245static const struct menu_item_ex *band_items[8][3] = {
189 { &cutoff_1, &q_1, &gain_1 }, 246 { &cutoff_1, &q_1, &gain_1 },
190 { &cutoff_2, &q_2, &gain_2 }, 247 { &cutoff_2, &q_2, &gain_2 },
191 { &cutoff_3, &q_3, &gain_3 } 248 { &cutoff_3, &q_3, &gain_3 },
249 { &cutoff_4, &q_4, &gain_4 },
250 { &cutoff_5, &q_5, &gain_5 },
251 { &cutoff_6, &q_6, &gain_6 },
252 { &cutoff_7, &q_7, &gain_7 },
253 { &cutoff_8, &q_8, &gain_8 }
192}; 254};
193 255
194static char* centerband_get_name(int selected_item, void * data, char *buffer) 256static char* centerband_get_name(int selected_item, void * data, char *buffer)
@@ -240,11 +302,32 @@ MENUITEM_FUNCTION_DYNTEXT(band_3_menu, MENU_FUNC_USEPARAM,
240 do_center_band_menu, (void*)3, 302 do_center_band_menu, (void*)3,
241 centerband_get_name, centerband_speak_item, 303 centerband_get_name, centerband_speak_item,
242 (void*)3, NULL, Icon_EQ); 304 (void*)3, NULL, Icon_EQ);
243MAKE_MENU(band_4_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL, 305MENUITEM_FUNCTION_DYNTEXT(band_4_menu, MENU_FUNC_USEPARAM,
244 Icon_EQ, &cutoff_4, &q_4, &gain_4); 306 do_center_band_menu, (void*)4,
307 centerband_get_name, centerband_speak_item,
308 (void*)4, NULL, Icon_EQ);
309MENUITEM_FUNCTION_DYNTEXT(band_5_menu, MENU_FUNC_USEPARAM,
310 do_center_band_menu, (void*)5,
311 centerband_get_name, centerband_speak_item,
312 (void*)5, NULL, Icon_EQ);
313MENUITEM_FUNCTION_DYNTEXT(band_6_menu, MENU_FUNC_USEPARAM,
314 do_center_band_menu, (void*)6,
315 centerband_get_name, centerband_speak_item,
316 (void*)6, NULL, Icon_EQ);
317MENUITEM_FUNCTION_DYNTEXT(band_7_menu, MENU_FUNC_USEPARAM,
318 do_center_band_menu, (void*)7,
319 centerband_get_name, centerband_speak_item,
320 (void*)7, NULL, Icon_EQ);
321MENUITEM_FUNCTION_DYNTEXT(band_8_menu, MENU_FUNC_USEPARAM,
322 do_center_band_menu, (void*)8,
323 centerband_get_name, centerband_speak_item,
324 (void*)8, NULL, Icon_EQ);
325MAKE_MENU(band_9_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL,
326 Icon_EQ, &cutoff_9, &q_9, &gain_9);
245 327
246MAKE_MENU(advanced_eq_menu_, ID2P(LANG_EQUALIZER_ADVANCED), NULL, Icon_EQ, 328MAKE_MENU(advanced_eq_menu_, ID2P(LANG_EQUALIZER_ADVANCED), NULL, Icon_EQ,
247 &band_0_menu, &band_1_menu, &band_2_menu, &band_3_menu, &band_4_menu); 329 &band_0_menu, &band_1_menu, &band_2_menu, &band_3_menu, &band_4_menu,
330 &band_5_menu, &band_6_menu, &band_7_menu, &band_8_menu, &band_9_menu);
248 331
249 332
250enum eq_slider_mode { 333enum eq_slider_mode {
@@ -300,7 +383,7 @@ static int draw_eq_slider(struct screen * screen, int x, int y,
300 if (band == 0) { 383 if (band == 0) {
301 screen->putsxy(x1, y1, "LS: "); 384 screen->putsxy(x1, y1, "LS: ");
302 screen->getstringsize("LS:", &w, &h); 385 screen->getstringsize("LS:", &w, &h);
303 } else if (band == 4) { 386 } else if (band == 9) {
304 screen->putsxy(x1, y1, "HS: "); 387 screen->putsxy(x1, y1, "HS: ");
305 screen->getstringsize("HS:", &w, &h); 388 screen->getstringsize("HS:", &w, &h);
306 } else { 389 } else {
@@ -370,9 +453,9 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
370{ 453{
371 int height = y; 454 int height = y;
372 455
373 start_item = MIN(start_item, 5 - nb_eq_sliders); 456 start_item = MIN(start_item, 10 - nb_eq_sliders);
374 457
375 for (int i = 0; i < 5; i++) { 458 for (int i = 0; i < 10; i++) {
376 struct eq_band_setting *setting = &global_settings.eq_band_settings[i]; 459 struct eq_band_setting *setting = &global_settings.eq_band_settings[i];
377 int cutoff = setting->cutoff; 460 int cutoff = setting->cutoff;
378 int q = setting->q; 461 int q = setting->q;
@@ -390,9 +473,9 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
390 } 473 }
391 } 474 }
392 475
393 if (nb_eq_sliders != 5) 476 if (nb_eq_sliders != 10)
394 gui_scrollbar_draw(screen, 0, y, SCROLLBAR_SIZE - 1, 477 gui_scrollbar_draw(screen, 0, y, SCROLLBAR_SIZE - 1,
395 screen->lcdheight - y, 5, 478 screen->lcdheight - y, 10,
396 start_item, start_item + nb_eq_sliders, 479 start_item, start_item + nb_eq_sliders,
397 VERTICAL); 480 VERTICAL);
398 return; 481 return;
@@ -431,8 +514,8 @@ bool eq_menu_graphical(void)
431 if (height > screens[i].lcdheight) 514 if (height > screens[i].lcdheight)
432 nb_eq_sliders[i]--; 515 nb_eq_sliders[i]--;
433 516
434 if (nb_eq_sliders[i] > 5) 517 if (nb_eq_sliders[i] > 10)
435 nb_eq_sliders[i] = 5; 518 nb_eq_sliders[i] = 10;
436 } 519 }
437 520
438 y = h + 1; 521 y = h + 1;
@@ -489,12 +572,12 @@ bool eq_menu_graphical(void)
489 } 572 }
490 573
491 /* Draw scrollbar if needed */ 574 /* Draw scrollbar if needed */
492 if (nb_eq_sliders[i] != 5) 575 if (nb_eq_sliders[i] != 10)
493 { 576 {
494 if (current_band == 0) { 577 if (current_band == 0) {
495 start_item = 0; 578 start_item = 0;
496 } else if (current_band == 4) { 579 } else if (current_band == 9) {
497 start_item = 5 - nb_eq_sliders[i]; 580 start_item = 10 - nb_eq_sliders[i];
498 } else { 581 } else {
499 start_item = current_band - 1; 582 start_item = current_band - 1;
500 } 583 }
@@ -547,13 +630,13 @@ bool eq_menu_graphical(void)
547 case ACTION_STD_PREVREPEAT: 630 case ACTION_STD_PREVREPEAT:
548 current_band--; 631 current_band--;
549 if (current_band < 0) 632 if (current_band < 0)
550 current_band = 4; /* wrap around */ 633 current_band = 9; /* wrap around */
551 break; 634 break;
552 635
553 case ACTION_STD_NEXT: 636 case ACTION_STD_NEXT:
554 case ACTION_STD_NEXTREPEAT: 637 case ACTION_STD_NEXTREPEAT:
555 current_band++; 638 current_band++;
556 if (current_band > 4) 639 if (current_band > 9)
557 current_band = 0; /* wrap around */ 640 current_band = 0; /* wrap around */
558 break; 641 break;
559 642
diff --git a/apps/settings_list.c b/apps/settings_list.c
index ef9fe50ece..9df2f17547 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1440,19 +1440,34 @@ const struct settings_list settings[] = {
1440 get_precut_talkid, dsp_set_eq_precut), 1440 get_precut_talkid, dsp_set_eq_precut),
1441 /* 0..32768 Hz */ 1441 /* 0..32768 Hz */
1442 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].cutoff, LANG_EQUALIZER_BAND_CUTOFF, 1442 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1443 60, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, 1443 32, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1444 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), 1444 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1445 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[1].cutoff, LANG_EQUALIZER_BAND_CENTER, 1445 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[1].cutoff, LANG_EQUALIZER_BAND_CENTER,
1446 200, "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, 1446 64, "eq band 1 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1447 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), 1447 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1448 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[2].cutoff, LANG_EQUALIZER_BAND_CENTER, 1448 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[2].cutoff, LANG_EQUALIZER_BAND_CENTER,
1449 800, "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, 1449 125, "eq band 2 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1450 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), 1450 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1451 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].cutoff, LANG_EQUALIZER_BAND_CENTER, 1451 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].cutoff, LANG_EQUALIZER_BAND_CENTER,
1452 4000, "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, 1452 250, "eq band 3 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1453 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), 1453 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1454 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].cutoff, LANG_EQUALIZER_BAND_CUTOFF, 1454 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1455 12000, "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN, 1455 500, "eq band 4 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1456 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1457 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1458 1000, "eq band 5 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1459 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1460 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1461 2000, "eq band 6 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1462 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1463 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1464 4000, "eq band 7 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1465 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1466 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1467 8000, "eq band 8 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1468 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1469 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].cutoff, LANG_EQUALIZER_BAND_CUTOFF,
1470 16000, "eq band 9 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
1456 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL), 1471 EQ_CUTOFF_MAX, EQ_CUTOFF_STEP, NULL, NULL, NULL),
1457 /* 0..64 (or 0.0 to 6.4) */ 1472 /* 0..64 (or 0.0 to 6.4) */
1458 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].q, LANG_EQUALIZER_BAND_Q, 7, 1473 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].q, LANG_EQUALIZER_BAND_Q, 7,
@@ -1467,9 +1482,24 @@ const struct settings_list settings[] = {
1467 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].q, LANG_EQUALIZER_BAND_Q, 10, 1482 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[3].q, LANG_EQUALIZER_BAND_Q, 10,
1468 "eq band 3 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, 1483 "eq band 3 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1469 eq_q_format, get_dec_talkid, NULL), 1484 eq_q_format, get_dec_talkid, NULL),
1470 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].q, LANG_EQUALIZER_BAND_Q, 7, 1485 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].q, LANG_EQUALIZER_BAND_Q, 10,
1471 "eq band 4 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP, 1486 "eq band 4 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1472 eq_q_format, get_dec_talkid, NULL), 1487 eq_q_format, get_dec_talkid, NULL),
1488 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].q, LANG_EQUALIZER_BAND_Q, 10,
1489 "eq band 5 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1490 eq_q_format, get_dec_talkid, NULL),
1491 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].q, LANG_EQUALIZER_BAND_Q, 10,
1492 "eq band 6 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1493 eq_q_format, get_dec_talkid, NULL),
1494 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].q, LANG_EQUALIZER_BAND_Q, 10,
1495 "eq band 7 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1496 eq_q_format, get_dec_talkid, NULL),
1497 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].q, LANG_EQUALIZER_BAND_Q, 10,
1498 "eq band 8 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1499 eq_q_format, get_dec_talkid, NULL),
1500 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].q, LANG_EQUALIZER_BAND_Q, 7,
1501 "eq band 9 q", UNIT_INT, EQ_Q_MIN, EQ_Q_MAX, EQ_Q_STEP,
1502 eq_q_format, get_dec_talkid, NULL),
1473 /* -240..240 (or -24db to +24db) */ 1503 /* -240..240 (or -24db to +24db) */
1474 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].gain, LANG_GAIN, 0, 1504 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[0].gain, LANG_GAIN, 0,
1475 "eq band 0 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, 1505 "eq band 0 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
@@ -1486,6 +1516,21 @@ const struct settings_list settings[] = {
1486 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].gain, LANG_GAIN, 0, 1516 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[4].gain, LANG_GAIN, 0,
1487 "eq band 4 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX, 1517 "eq band 4 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1488 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL), 1518 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1519 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[5].gain, LANG_GAIN, 0,
1520 "eq band 5 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1521 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1522 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[6].gain, LANG_GAIN, 0,
1523 "eq band 6 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1524 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1525 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[7].gain, LANG_GAIN, 0,
1526 "eq band 7 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1527 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1528 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[8].gain, LANG_GAIN, 0,
1529 "eq band 8 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1530 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1531 INT_SETTING_NOWRAP(F_EQSETTING, eq_band_settings[9].gain, LANG_GAIN, 0,
1532 "eq band 9 gain", UNIT_DB, EQ_GAIN_MIN, EQ_GAIN_MAX,
1533 EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
1489 1534
1490 /* dithering */ 1535 /* dithering */
1491 OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false, 1536 OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false,
diff --git a/lib/rbcodec/dsp/eq.c b/lib/rbcodec/dsp/eq.c
index 2e4b9af37b..d58f0959b2 100644
--- a/lib/rbcodec/dsp/eq.c
+++ b/lib/rbcodec/dsp/eq.c
@@ -32,7 +32,7 @@
32#include <string.h> 32#include <string.h>
33 33
34/** 34/**
35 * Current setup is one lowshelf filters three peaking filters and one 35 * Current setup is one lowshelf filters eight peaking filters and one
36 * highshelf filter. Varying the number of shelving filters make no sense, 36 * highshelf filter. Varying the number of shelving filters make no sense,
37 * but adding peaking filters is possible. Check EQ_NUM_BANDS to have 37 * but adding peaking filters is possible. Check EQ_NUM_BANDS to have
38 * 2 shelving filters and EQ_NUM_BANDS-2 peaking filters. 38 * 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 53097beb12..9b670d748a 100644
--- a/lib/rbcodec/dsp/eq.h
+++ b/lib/rbcodec/dsp/eq.h
@@ -25,7 +25,7 @@
25 * Menus and screens must be updated to support changing this from 5 25 * Menus and screens must be updated to support changing this from 5
26 * without modifying other stuff (remove comment when this is no longer 26 * without modifying other stuff (remove comment when this is no longer
27 * true :-) */ 27 * true :-) */
28#define EQ_NUM_BANDS 5 28#define EQ_NUM_BANDS 10
29 29
30struct eq_band_setting 30struct eq_band_setting
31{ 31{
diff --git a/lib/rbcodec/dsp/eqs/Acoustic.cfg b/lib/rbcodec/dsp/eqs/Acoustic.cfg
index 34b5ed8a2b..fd30094119 100644
--- a/lib/rbcodec/dsp/eqs/Acoustic.cfg
+++ b/lib/rbcodec/dsp/eqs/Acoustic.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 45 2eq precut: 45
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 45 5eq band 0 gain: 45
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 10 8eq band 1 gain: 45
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 15 11eq band 2 gain: 10
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 30 14eq band 3 gain: 10
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 20 17eq band 4 gain: 15
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 15
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 30
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 30
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 20
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 20
diff --git a/lib/rbcodec/dsp/eqs/Bass.cfg b/lib/rbcodec/dsp/eqs/Bass.cfg
index 2742459081..3f122f1343 100644
--- a/lib/rbcodec/dsp/eqs/Bass.cfg
+++ b/lib/rbcodec/dsp/eqs/Bass.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 50 2eq precut: 50
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 50 5eq band 0 gain: 50
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 35 8eq band 1 gain: 50
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 15 11eq band 2 gain: 35
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 5 14eq band 3 gain: 35
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: -5 17eq band 4 gain: 15
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 15
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 5
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 5
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: -5
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: -5
diff --git a/lib/rbcodec/dsp/eqs/Classical.cfg b/lib/rbcodec/dsp/eqs/Classical.cfg
index bf2f9f9566..ba95adb4f8 100644
--- a/lib/rbcodec/dsp/eqs/Classical.cfg
+++ b/lib/rbcodec/dsp/eqs/Classical.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 50 2eq precut: 0
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 50 5eq band 0 gain: 0
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 40 8eq band 1 gain: 0
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: -20 11eq band 2 gain: 0
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 10 14eq band 3 gain: 0
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 20 17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 0
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -70
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: -70
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..5e20ca2fe7
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Club.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 80
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 0
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 0
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 80
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 55
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 55
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 30
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..6c262924f2
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Dance.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 95
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 95
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 70
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 25
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 0
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -55
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -70
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -70
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Default.cfg b/lib/rbcodec/dsp/eqs/Default.cfg
index d6f345fa9e..c6579c7513 100644
--- a/lib/rbcodec/dsp/eqs/Default.cfg
+++ b/lib/rbcodec/dsp/eqs/Default.cfg
@@ -1,17 +1,32 @@
1eq enabled: off 1eq enabled: off
2eq precut: 0 2eq precut: 0
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 0 5eq band 0 gain: 0
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 0 8eq band 1 gain: 0
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 0 11eq band 2 gain: 0
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 0 14eq band 3 gain: 0
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 0 17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 0
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Disco.cfg b/lib/rbcodec/dsp/eqs/Disco.cfg
index f894f26da1..12f4b36af5 100644
--- a/lib/rbcodec/dsp/eqs/Disco.cfg
+++ b/lib/rbcodec/dsp/eqs/Disco.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 45 2eq precut: 45
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 30 5eq band 0 gain: 30
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 10 8eq band 1 gain: 30
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 45 11eq band 2 gain: 10
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 25 14eq band 3 gain: 10
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 10 17eq band 4 gain: 45
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 45
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 25
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 25
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 10
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 10
diff --git a/lib/rbcodec/dsp/eqs/Electronic.cfg b/lib/rbcodec/dsp/eqs/Electronic.cfg
index e70c911272..e710706607 100644
--- a/lib/rbcodec/dsp/eqs/Electronic.cfg
+++ b/lib/rbcodec/dsp/eqs/Electronic.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 55 2eq precut: 55
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 45 5eq band 0 gain: 45
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 5 8eq band 1 gain: 45
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 25 11eq band 2 gain: 5
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 15 14eq band 3 gain: 5
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 55 17eq band 4 gain: 25
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 25
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 15
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 15
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..9e52cb86e6
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Flat.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 0
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 0
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 0
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 0
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 0
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..193d24441d
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Bass and Treble.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 120
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 70
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 55
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -70
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: -50
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 15
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 80
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 110
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 120
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..b39a5c26fb
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Bass.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 95
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: -80
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 95
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 95
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 15
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -40
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -80
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -100
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: -110
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..bb87890934
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Full Treble.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 170
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: -95
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: -95
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: -95
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -40
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 25
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 110
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 160
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 160
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 160
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..0720a599d1
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Headphones.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 145
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 50
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 110
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 55
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -30
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: -25
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 15
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 50
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 95
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 130
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 145
diff --git a/lib/rbcodec/dsp/eqs/Hip-Hop.cfg b/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
index 2d38425dc4..54f11fb364 100644
--- a/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
+++ b/lib/rbcodec/dsp/eqs/Hip-Hop.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 65 2eq precut: 65
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 65 5eq band 0 gain: 65
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 25 8eq band 1 gain: 65
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: -10 11eq band 2 gain: 25
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 15 14eq band 3 gain: 25
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 35 17eq band 4 gain: -10
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -10
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 15
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 15
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 35
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 35
diff --git a/lib/rbcodec/dsp/eqs/Jazz.cfg b/lib/rbcodec/dsp/eqs/Jazz.cfg
index f576f9fcc1..04c1e346cd 100644
--- a/lib/rbcodec/dsp/eqs/Jazz.cfg
+++ b/lib/rbcodec/dsp/eqs/Jazz.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 60 2eq precut: 60
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 40 5eq band 0 gain: 40
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 15 8eq band 1 gain: 40
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: -25 11eq band 2 gain: 15
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 5 14eq band 3 gain: 15
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 60 17eq band 4 gain: -25
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -25
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 5
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 5
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 60
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..e3abbacec4
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Large Hall.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 150
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 105
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 105
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 55
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -50
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -50
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -50
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..67585421f2
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Live.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 55
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: -50
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 0
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 40
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 55
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 55
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 40
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 25
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 25
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 25
diff --git a/lib/rbcodec/dsp/eqs/Lounge.cfg b/lib/rbcodec/dsp/eqs/Lounge.cfg
index 39ae23a7e7..cac40eb907 100644
--- a/lib/rbcodec/dsp/eqs/Lounge.cfg
+++ b/lib/rbcodec/dsp/eqs/Lounge.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 20 2eq precut: 20
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: -25 5eq band 0 gain: -25
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 5 8eq band 1 gain: -25
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 20 11eq band 2 gain: 5
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: -15 14eq band 3 gain: 5
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 15 17eq band 4 gain: 20
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 20
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -15
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -15
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 15
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..6f6001afc8
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Party.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 70
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 70
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 70
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 0
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 0
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 70
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 70
diff --git a/lib/rbcodec/dsp/eqs/Pop.cfg b/lib/rbcodec/dsp/eqs/Pop.cfg
index 1d8cefe173..2584065f06 100644
--- a/lib/rbcodec/dsp/eqs/Pop.cfg
+++ b/lib/rbcodec/dsp/eqs/Pop.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 50 2eq precut: 80
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: -10 5eq band 0 gain: -15
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 5 8eq band 1 gain: 50
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 50 11eq band 2 gain: 70
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 15 14eq band 3 gain: 80
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: -10 17eq band 4 gain: 55
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -25
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: -25
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 15
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 15
diff --git a/lib/rbcodec/dsp/eqs/R&B.cfg b/lib/rbcodec/dsp/eqs/R&B.cfg
index a460b587f5..283e02ac9e 100644
--- a/lib/rbcodec/dsp/eqs/R&B.cfg
+++ b/lib/rbcodec/dsp/eqs/R&B.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 45 2eq precut: 45
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 35 5eq band 0 gain: 35
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 45 8eq band 1 gain: 35
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 5 11eq band 2 gain: 45
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 25 14eq band 3 gain: 45
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 30 17eq band 4 gain: 5
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 5
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 25
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 25
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 30
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..11def53612
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Reggae.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 65
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 0
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 0
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 65
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 65
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 0
diff --git a/lib/rbcodec/dsp/eqs/Rock.cfg b/lib/rbcodec/dsp/eqs/Rock.cfg
index ec4f0356a8..788c8b89af 100644
--- a/lib/rbcodec/dsp/eqs/Rock.cfg
+++ b/lib/rbcodec/dsp/eqs/Rock.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 45 2eq precut: 110
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: 25 5eq band 0 gain: 80
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 10 8eq band 1 gain: 50
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 0 11eq band 2 gain: -55
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 20 14eq band 3 gain: -80
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 45 17eq band 4 gain: -30
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 40
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 90
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 110
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 110
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..b0848ad78f
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Ska.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 110
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: -25
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: -50
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: -40
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 0
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 40
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 55
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 90
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 95
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 110
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..2a7a6e6ac2
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Soft Rock.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 90
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 40
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 40
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 25
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: 0
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: -40
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: -55
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: -30
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 0
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 25
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..e9f0f03f51
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Soft.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 120
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 50
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 15
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -25
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: 0
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 40
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 80
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 95
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 110
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq 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 0000000000..1125d49914
--- /dev/null
+++ b/lib/rbcodec/dsp/eqs/Techno.cfg
@@ -0,0 +1,32 @@
1eq enabled: on
2eq precut: 95
3eq band 0 cutoff: 32
4eq band 0 q: 7
5eq band 0 gain: 80
6eq band 1 cutoff: 64
7eq band 1 q: 10
8eq band 1 gain: 55
9eq band 2 cutoff: 125
10eq band 2 q: 10
11eq band 2 gain: 0
12eq band 3 cutoff: 250
13eq band 3 q: 10
14eq band 3 gain: -55
15eq band 4 cutoff: 500
16eq band 4 q: 10
17eq band 4 gain: -50
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 0
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 80
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 95
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 95
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 90
diff --git a/lib/rbcodec/dsp/eqs/Vocal.cfg b/lib/rbcodec/dsp/eqs/Vocal.cfg
index 1de754f07c..fa8fd89a19 100644
--- a/lib/rbcodec/dsp/eqs/Vocal.cfg
+++ b/lib/rbcodec/dsp/eqs/Vocal.cfg
@@ -1,17 +1,32 @@
1eq enabled: on 1eq enabled: on
2eq precut: 45 2eq precut: 45
3eq band 0 cutoff: 60 3eq band 0 cutoff: 32
4eq band 0 q: 7 4eq band 0 q: 7
5eq band 0 gain: -45 5eq band 0 gain: -45
6eq band 1 cutoff: 200 6eq band 1 cutoff: 64
7eq band 1 q: 10 7eq band 1 q: 10
8eq band 1 gain: 5 8eq band 1 gain: -45
9eq band 2 cutoff: 800 9eq band 2 cutoff: 125
10eq band 2 q: 10 10eq band 2 q: 10
11eq band 2 gain: 45 11eq band 2 gain: 5
12eq band 3 cutoff: 4000 12eq band 3 cutoff: 250
13eq band 3 q: 10 13eq band 3 q: 10
14eq band 3 gain: 20 14eq band 3 gain: 5
15eq band 4 cutoff: 12000 15eq band 4 cutoff: 500
16eq band 4 q: 7 16eq band 4 q: 10
17eq band 4 gain: 0 17eq band 4 gain: 45
18eq band 5 cutoff: 1000
19eq band 5 q: 10
20eq band 5 gain: 45
21eq band 6 cutoff: 2000
22eq band 6 q: 10
23eq band 6 gain: 20
24eq band 7 cutoff: 4000
25eq band 7 q: 10
26eq band 7 gain: 20
27eq band 8 cutoff: 8000
28eq band 8 q: 10
29eq band 8 gain: 0
30eq band 9 cutoff: 16000
31eq band 9 q: 7
32eq band 9 gain: 0