diff --git a/apps/lang/english.lang b/apps/lang/english.lang index f9f1bf3bc2..062c7a0d75 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -326,9 +326,9 @@ voice: "Loudness" new: id: LANG_BBOOST -desc: in sound settings -eng: "Bass Boost" -voice: "Bass Boost" +desc: DEPRECATED +eng: "" +voice: "" new: id: LANG_DECAY @@ -2757,3 +2757,39 @@ desc: in radio screen eng: "Action" voice: "" new: + +id: LANG_MDB_STRENGTH +desc: in sound settings +eng: "MDB Strength" +voice: "MDB Strength" +new: + +id: LANG_MDB_HARMONICS +desc: in sound settings +eng: "MDB Harmonics" +voice: "MDB Harmonics" +new: + +id: LANG_MDB_CENTER +desc: in sound settings +eng: "MDB Center frequency" +voice: "MDB Center frequency" +new: + +id: LANG_MDB_SHAPE +desc: in sound settings +eng: "MDB Shape" +voice: "MDB Shape" +new: + +id: LANG_MDB_ENABLE +desc: in sound settings +eng: "MDB Enable" +voice: "MDB Enable" +new: + +id: LANG_SUPERBASS +desc: in sound settings +eng: "Super bass" +voice: "Super bass" +new: diff --git a/apps/main.c b/apps/main.c index 9ead6e2db3..7a4590ebe1 100644 --- a/apps/main.c +++ b/apps/main.c @@ -89,9 +89,14 @@ void init(void) global_settings.treble, global_settings.balance, global_settings.loudness, - global_settings.bass_boost, global_settings.avc, - global_settings.channel_config ); + global_settings.channel_config, + global_settings.mdb_strength, + global_settings.mdb_harmonics, + global_settings.mdb_center, + global_settings.mdb_shape, + global_settings.mdb_enable, + global_settings.superbass); mpeg_init(); while (button_get(false) != 0) ; /* Empty the keyboard buffer */ @@ -227,9 +232,14 @@ void init(void) global_settings.treble, global_settings.balance, global_settings.loudness, - global_settings.bass_boost, global_settings.avc, - global_settings.channel_config ); + global_settings.channel_config, + global_settings.mdb_strength, + global_settings.mdb_harmonics, + global_settings.mdb_center, + global_settings.mdb_shape, + global_settings.mdb_enable, + global_settings.superbass); mpeg_init(); talk_init(); diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index d4dc8a93aa..ce4bc8b4d6 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c @@ -203,14 +203,7 @@ bool radio_screen(void) mpeg_init_recording(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); /* Yes, we use the D/A for monitoring */ peak_meter_playback(true); @@ -532,14 +525,7 @@ bool radio_screen(void) mpeg_init_playback(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); fmradio_set_status(0); diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 40c416971a..60b6e4743e 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -606,14 +606,7 @@ bool recording_screen(void) mpeg_init_playback(); - mpeg_sound_channel_config(global_settings.channel_config); - mpeg_sound_set(SOUND_BASS, global_settings.bass); - mpeg_sound_set(SOUND_TREBLE, global_settings.treble); - mpeg_sound_set(SOUND_BALANCE, global_settings.balance); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); - mpeg_sound_set(SOUND_AVC, global_settings.avc); + sound_settings_apply(); lcd_setfont(FONT_UI); diff --git a/apps/settings.c b/apps/settings.c index 79fbfa5090..8434d3e211 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -71,7 +71,7 @@ char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */ char rec_base_directory[] = REC_BASE_DIR; -#define CONFIG_BLOCK_VERSION 13 +#define CONFIG_BLOCK_VERSION 14 #define CONFIG_BLOCK_SIZE 512 #define RTC_BLOCK_SIZE 44 @@ -165,8 +165,8 @@ static struct bit_entry rtc_bits[] = {5 | SIGNED, S_O(treble), 0, "treble", NULL }, /* -15..+15 / -12..+12 */ #ifdef HAVE_MAS3587F {5, S_O(loudness), 0, "loudness", NULL }, /* 0...17 */ - {7, S_O(bass_boost), 0, "bass boost", NULL }, /* 0...100 */ {3, S_O(avc), 0, "auto volume", "off,20ms,2,4,8" }, + {1, S_O(superbass), false, "superbass", off_on }, #endif {3, S_O(channel_config), 6, "channels", "stereo,stereo narrow,mono,mono left,mono right,karaoke,stereo wide" }, @@ -325,7 +325,11 @@ static struct bit_entry hd_bits[] = /* If values are just added to the end, no need to bump the version. */ {2, S_O(sort_file), 0, "sort files", "alpha,oldest,newest,type" }, {2, S_O(sort_dir), 0, "sort dirs", "alpha,oldest,newest" }, - + {7, S_O(mdb_strength), 0, "mdb strength", NULL}, + {7, S_O(mdb_harmonics), 0, "mdb harmonics", NULL}, + {9, S_O(mdb_center), 0, "mdb center", NULL}, + {9, S_O(mdb_shape), 0, "mdb shape", NULL}, + {1, S_O(mdb_enable), 0, "mdb enable", off_on}, /* Sum of all bit sizes must not grow beyond 0xB8*8 = 1472 */ }; @@ -667,10 +671,8 @@ void settings_apply_pm_range(void) } #endif /* HAVE_LCD_BITMAP */ -void settings_apply(void) +void sound_settings_apply(void) { - char buf[64]; - mpeg_sound_set(SOUND_BASS, global_settings.bass); mpeg_sound_set(SOUND_TREBLE, global_settings.treble); mpeg_sound_set(SOUND_BALANCE, global_settings.balance); @@ -678,9 +680,21 @@ void settings_apply(void) mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config); #ifdef HAVE_MAS3587F mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); - mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); mpeg_sound_set(SOUND_AVC, global_settings.avc); + mpeg_sound_set(SOUND_MDB_STRENGTH, global_settings.mdb_strength); + mpeg_sound_set(SOUND_MDB_HARMONICS, global_settings.mdb_harmonics); + mpeg_sound_set(SOUND_MDB_CENTER, global_settings.mdb_center); + mpeg_sound_set(SOUND_MDB_SHAPE, global_settings.mdb_shape); + mpeg_sound_set(SOUND_MDB_ENABLE, global_settings.mdb_enable); + mpeg_sound_set(SOUND_SUPERBASS, global_settings.superbass); #endif +} + +void settings_apply(void) +{ + char buf[64]; + + sound_settings_apply(); mpeg_set_buffer_margin(global_settings.buffer_margin); @@ -1207,9 +1221,14 @@ void settings_reset(void) { global_settings.bass = mpeg_sound_default(SOUND_BASS); global_settings.treble = mpeg_sound_default(SOUND_TREBLE); global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS); - global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS); global_settings.avc = mpeg_sound_default(SOUND_AVC); global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS); + global_settings.mdb_strength = mpeg_sound_default(SOUND_MDB_STRENGTH); + global_settings.mdb_harmonics = mpeg_sound_default(SOUND_MDB_HARMONICS); + global_settings.mdb_center = mpeg_sound_default(SOUND_MDB_CENTER); + global_settings.mdb_shape = mpeg_sound_default(SOUND_MDB_SHAPE); + global_settings.mdb_enable = mpeg_sound_default(SOUND_MDB_ENABLE); + global_settings.superbass = mpeg_sound_default(SOUND_SUPERBASS); global_settings.contrast = lcd_default_contrast(); global_settings.wps_file[0] = '\0'; global_settings.font_file[0] = '\0'; diff --git a/apps/settings.h b/apps/settings.h index baea723e4b..b7b0864b4c 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -71,9 +71,14 @@ struct user_settings int bass; /* bass eq: 0-100 0=off 100=max */ int treble; /* treble eq: 0-100 0=low 100=high */ int loudness; /* loudness eq: 0-100 0=off 100=max */ - int bass_boost; /* bass boost eq: 0-100 0=off 100=max */ int avc; /* auto volume correct: 0=off, 1=20ms, 2=2s 3=4s 4=8s */ int channel_config; /* Stereo, Mono, Mono left, Mono right */ + int mdb_strength; /* 0-127dB */ + int mdb_harmonics; /* 0-100% */ + int mdb_center; /* 20-300Hz */ + int mdb_shape; /* 50-300Hz */ + bool mdb_enable; /* true/false */ + bool superbass; /* true/false */ int rec_quality; /* 0-7 */ int rec_source; /* 0=mic, 1=line, 2=S/PDIF */ @@ -226,6 +231,7 @@ struct opt_items { int settings_save(void); void settings_load(int which); void settings_reset(void); +void sound_settings_apply(void); void settings_apply(void); void settings_apply_pm_range(void); void settings_display(void); diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 4a6857d0cb..fe01cd9560 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c @@ -55,9 +55,11 @@ bool set_sound(char* string, char* unit; char str[32]; int talkunit = UNIT_INT; + int steps; unit = mpeg_sound_unit(setting); numdec = mpeg_sound_numdecimals(setting); + steps = mpeg_sound_steps(setting); min = mpeg_sound_min(setting); max = mpeg_sound_max(setting); if (*unit == 'd') /* crude reconstruction */ @@ -103,7 +105,7 @@ bool set_sound(char* string, case BUTTON_RIGHT: case BUTTON_RIGHT | BUTTON_REPEAT: #endif - (*variable)++; + (*variable)+=steps; if(*variable > max ) *variable = max; changed = true; @@ -116,7 +118,7 @@ bool set_sound(char* string, case BUTTON_LEFT: case BUTTON_LEFT | BUTTON_REPEAT: #endif - (*variable)--; + (*variable)-=steps; if(*variable < min ) *variable = min; changed = true; @@ -176,10 +178,56 @@ static bool loudness(void) SOUND_LOUDNESS); } -static bool bass_boost(void) +static bool mdb_strength(void) { - return set_sound(str(LANG_BBOOST), &global_settings.bass_boost, - SOUND_SUPERBASS); + return set_sound(str(LANG_MDB_STRENGTH), &global_settings.mdb_strength, + SOUND_MDB_STRENGTH); +} + +static bool mdb_harmonics(void) +{ + return set_sound(str(LANG_MDB_HARMONICS), &global_settings.mdb_harmonics, + SOUND_MDB_HARMONICS); +} + +static bool mdb_center(void) +{ + return set_sound(str(LANG_MDB_CENTER), &global_settings.mdb_center, + SOUND_MDB_CENTER); +} + +static bool mdb_shape(void) +{ + return set_sound(str(LANG_MDB_SHAPE), &global_settings.mdb_shape, + SOUND_MDB_SHAPE); +} + +static void set_mdb_enable(bool value) +{ + mpeg_sound_set(SOUND_MDB_ENABLE, (int)value); +} + +static bool mdb_enable(void) +{ + return set_bool_options(str(LANG_MDB_ENABLE), + &global_settings.mdb_enable, + STR(LANG_SET_BOOL_YES), + STR(LANG_SET_BOOL_NO), + set_mdb_enable); +} + +static void set_superbass(bool value) +{ + mpeg_sound_set(SOUND_SUPERBASS, (int)value); +} + +static bool superbass(void) +{ + return set_bool_options(str(LANG_SUPERBASS), + &global_settings.superbass, + STR(LANG_SET_BOOL_YES), + STR(LANG_SET_BOOL_NO), + set_superbass); } static void set_avc(int val) @@ -363,8 +411,13 @@ bool sound_menu(void) { STR(LANG_CHANNEL_MENU), chanconf }, #ifdef HAVE_MAS3587F { STR(LANG_LOUDNESS), loudness }, - { STR(LANG_BBOOST), bass_boost }, - { STR(LANG_AUTOVOL), avc } + { STR(LANG_AUTOVOL), avc }, + { STR(LANG_SUPERBASS), superbass }, + { STR(LANG_MDB_ENABLE), mdb_enable }, + { STR(LANG_MDB_STRENGTH), mdb_strength }, + { STR(LANG_MDB_HARMONICS), mdb_harmonics }, + { STR(LANG_MDB_CENTER), mdb_center }, + { STR(LANG_MDB_SHAPE), mdb_shape }, #endif }; diff --git a/firmware/export/mp3_playback.h b/firmware/export/mp3_playback.h index ad989a2572..2370614e19 100644 --- a/firmware/export/mp3_playback.h +++ b/firmware/export/mp3_playback.h @@ -26,7 +26,10 @@ /* functions formerly in mpeg.c */ void mp3_init(int volume, int bass, int treble, int balance, - int loudness, int bass_boost, int avc, int channel_config); + int loudness, int avc, int channel_config, + int mdb_strength, int mdb_harmonics, + int mdb_center, int mdb_shape, bool mdb_enable, + bool superbass); void mpeg_sound_set(int setting, int value); int mpeg_sound_min(int setting); int mpeg_sound_max(int setting); @@ -35,6 +38,7 @@ void mpeg_sound_channel_config(int configuration); int mpeg_val2phys(int setting, int value); char *mpeg_sound_unit(int setting); int mpeg_sound_numdecimals(int setting); +int mpeg_sound_steps(int setting); #if defined(HAVE_MAS3587F) || defined(SIMULATOR) void mpeg_set_pitch(int percent); #endif @@ -63,13 +67,18 @@ unsigned char* mp3_get_pos(void); #define SOUND_TREBLE 2 #define SOUND_BALANCE 3 #define SOUND_LOUDNESS 4 -#define SOUND_SUPERBASS 5 -#define SOUND_AVC 6 -#define SOUND_CHANNELS 7 -#define SOUND_LEFT_GAIN 8 -#define SOUND_RIGHT_GAIN 9 -#define SOUND_MIC_GAIN 10 -#define SOUND_NUMSETTINGS 11 +#define SOUND_AVC 5 +#define SOUND_CHANNELS 6 +#define SOUND_LEFT_GAIN 7 +#define SOUND_RIGHT_GAIN 8 +#define SOUND_MIC_GAIN 9 +#define SOUND_MDB_STRENGTH 10 +#define SOUND_MDB_HARMONICS 11 +#define SOUND_MDB_CENTER 12 +#define SOUND_MDB_SHAPE 13 +#define SOUND_MDB_ENABLE 14 +#define SOUND_SUPERBASS 15 +#define SOUND_NUMSETTINGS 16 #define MPEG_SOUND_STEREO 0 #define MPEG_SOUND_STEREO_NARROW 1 diff --git a/firmware/mp3_playback.c b/firmware/mp3_playback.c index 5d43458445..b890362776 100644 --- a/firmware/mp3_playback.c +++ b/firmware/mp3_playback.c @@ -68,12 +68,17 @@ static char *units[] = "dB", /* Treble */ "%", /* Balance */ "dB", /* Loudness */ - "%", /* Bass boost */ "", /* AVC */ "", /* Channels */ "dB", /* Left gain */ "dB", /* Right gain */ "dB", /* Mic gain */ + "dB", /* MDB Strength */ + "%", /* MDB Harmonics */ + "Hz", /* MDB Center */ + "Hz", /* MDB Shape */ + "", /* MDB Enable */ + "", /* Super bass */ }; static int numdecimals[] = @@ -83,12 +88,37 @@ static int numdecimals[] = 0, /* Treble */ 0, /* Balance */ 0, /* Loudness */ - 0, /* Bass boost */ 0, /* AVC */ 0, /* Channels */ 1, /* Left gain */ 1, /* Right gain */ 1, /* Mic gain */ + 0, /* MDB Strength */ + 0, /* MDB Harmonics */ + 0, /* MDB Center */ + 0, /* MDB Shape */ + 0, /* MDB Enable */ + 0, /* Super bass */ +}; + +static int steps[] = +{ + 1, /* Volume */ + 1, /* Bass */ + 1, /* Treble */ + 2, /* Balance */ + 1, /* Loudness */ + 1, /* AVC */ + 1, /* Channels */ + 1, /* Left gain */ + 1, /* Right gain */ + 1, /* Mic gain */ + 1, /* MDB Strength */ + 1, /* MDB Harmonics */ + 10, /* MDB Center */ + 10, /* MDB Shape */ + 1, /* MDB Enable */ + 1, /* Super bass */ }; static int minval[] = @@ -103,12 +133,17 @@ static int minval[] = #endif -100, /* Balance */ 0, /* Loudness */ - 0, /* Bass boost */ -1, /* AVC */ 0, /* Channels */ 0, /* Left gain */ 0, /* Right gain */ 0, /* Mic gain */ + 0, /* MDB Strength */ + 0, /* MDB Harmonics */ + 20, /* MDB Center */ + 50, /* MDB Shape */ + 0, /* MDB Enable */ + 0, /* Super bass */ }; static int maxval[] = @@ -123,12 +158,17 @@ static int maxval[] = #endif 100, /* Balance */ 17, /* Loudness */ - 100, /* Bass boost */ 4, /* AVC */ 6, /* Channels */ 15, /* Left gain */ 15, /* Right gain */ 15, /* Mic gain */ + 127, /* MDB Strength */ + 100, /* MDB Harmonics */ + 300, /* MDB Center */ + 300, /* MDB Shape */ + 1, /* MDB Enable */ + 1, /* Super bass */ }; static int defaultval[] = @@ -143,12 +183,17 @@ static int defaultval[] = #endif 0, /* Balance */ 0, /* Loudness */ - 0, /* Bass boost */ 0, /* AVC */ 0, /* Channels */ 8, /* Left gain */ 8, /* Right gain */ 2, /* Mic gain */ + 50, /* MDB Strength */ + 48, /* MDB Harmonics */ + 60, /* MDB Center */ + 90, /* MDB Shape */ + 0, /* MDB Enable */ + 0, /* Super bass */ }; char *mpeg_sound_unit(int setting) @@ -161,6 +206,11 @@ int mpeg_sound_numdecimals(int setting) return numdecimals[setting]; } +int mpeg_sound_steps(int setting) +{ + return steps[setting]; +} + int mpeg_sound_min(int setting) { return minval[setting]; @@ -566,6 +616,11 @@ void set_prescaled_volume(void) #endif /* HAVE_MAS3507D */ #endif /* !SIMULATOR */ +#ifdef HAVE_MAS3587F +unsigned long mdb_shape_shadow = 0; +unsigned long loudness_shadow = 0; +#endif + void mpeg_sound_set(int setting, int value) { #ifdef SIMULATOR @@ -645,30 +700,10 @@ void mpeg_sound_set(int setting, int value) break; #ifdef HAVE_MAS3587F - case SOUND_SUPERBASS: - if (value) { - tmp = MAX(MIN(value * 127 / 100, 0x7f), 0); - mas_codec_writereg(MAS_REG_KMDB_STR, (tmp & 0xff) << 8); - tmp = 0x30; /* MDB_HAR: Space for experiment here */ - mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0xff) << 8); - tmp = 60 / 10; /* calculate MDB_FC, 60hz - experiment here, - this would depend on the earphones... - perhaps make it tunable? */ - mas_codec_writereg(MAS_REG_KMDB_FC, (tmp & 0xff) << 8); - tmp = (3 * tmp) / 2; /* calculate MDB_SHAPE */ - mas_codec_writereg(MAS_REG_KMDB_SWITCH, - ((tmp & 0xff) << 8) /* MDB_SHAPE */ - | 2); /* MDB_SWITCH enable */ - } else { - mas_codec_writereg(MAS_REG_KMDB_STR, 0); - mas_codec_writereg(MAS_REG_KMDB_HAR, 0); - mas_codec_writereg(MAS_REG_KMDB_SWITCH, 0); /* MDB_SWITCH disable */ - } - break; - case SOUND_LOUDNESS: - tmp = MAX(MIN(value * 4, 0x44), 0); - mas_codec_writereg(MAS_REG_KLOUDNESS, (tmp & 0xff) << 8); + loudness_shadow = (loudness_shadow & 0x04) | + (MAX(MIN(value * 4, 0x44), 0) << 8); + mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); break; case SOUND_AVC: @@ -695,7 +730,36 @@ void mpeg_sound_set(int setting, int value) } mas_codec_writereg(MAS_REG_KAVC, tmp); break; -#endif + + case SOUND_MDB_STRENGTH: + mas_codec_writereg(MAS_REG_KMDB_STR, (value & 0x7f) << 8); + break; + + case SOUND_MDB_HARMONICS: + tmp = value * 127 / 100; + mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0x7f) << 8); + break; + + case SOUND_MDB_CENTER: + mas_codec_writereg(MAS_REG_KMDB_FC, (value/10) << 8); + break; + + case SOUND_MDB_SHAPE: + mdb_shape_shadow = (mdb_shape_shadow & 0x02) | ((value/10) << 8); + mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); + break; + + case SOUND_MDB_ENABLE: + mdb_shape_shadow = (mdb_shape_shadow & ~0x02) | (value?2:0); + mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); + break; + + case SOUND_SUPERBASS: + loudness_shadow = (loudness_shadow & ~0x04) | + (value?4:0); + mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); + break; +#endif case SOUND_CHANNELS: mpeg_sound_channel_config(value); break; @@ -832,15 +896,36 @@ void mpeg_set_pitch(int pitch) #endif void mp3_init(int volume, int bass, int treble, int balance, int loudness, - int bass_boost, int avc, int channel_config) + int avc, int channel_config, + int mdb_strength, int mdb_harmonics, + int mdb_center, int mdb_shape, bool mdb_enable, + bool superbass) { #ifdef SIMULATOR - volume = bass = treble = balance = loudness - = bass_boost = avc = channel_config; + (void)volume; + (void)bass; + (void)treble; + (void)balance; + (void)loudness; + (void)avc; + (void)channel_config; + (void)mdb_strength; + (void)mdb_harmonics; + (void)mdb_center; + (void)mdb_shape; + (void)mdb_enable; + (void)superbass; #else #ifdef HAVE_MAS3507D unsigned long val; - loudness = bass_boost = avc; + (void)loudness; + (void)avc; + (void)mdb_strength; + (void)mdb_harmonics; + (void)mdb_center; + (void)mdb_shape; + (void)mdb_enable; + (void)superbass; #endif setup_sci0(); @@ -929,8 +1014,13 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness, #ifdef HAVE_MAS3587F mpeg_sound_channel_config(channel_config); mpeg_sound_set(SOUND_LOUDNESS, loudness); - mpeg_sound_set(SOUND_SUPERBASS, bass_boost); mpeg_sound_set(SOUND_AVC, avc); + mpeg_sound_set(SOUND_MDB_STRENGTH, mdb_strength); + mpeg_sound_set(SOUND_MDB_HARMONICS, mdb_harmonics); + mpeg_sound_set(SOUND_MDB_CENTER, mdb_center); + mpeg_sound_set(SOUND_MDB_SHAPE, mdb_shape); + mpeg_sound_set(SOUND_MDB_ENABLE, mdb_enable); + mpeg_sound_set(SOUND_SUPERBASS, superbass); #endif #endif /* !SIMULATOR */