From 067a1f2800ccdd9ea983ba106371d44b9435e59c Mon Sep 17 00:00:00 2001 From: philippe44 Date: Thu, 31 Aug 2023 18:00:58 -0700 Subject: [PATCH] proposed way to handle loudness 0..10 --- components/platform_console/cmd_config.c | 6 +++--- components/squeezelite/equalizer.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/platform_console/cmd_config.c b/components/platform_console/cmd_config.c index b3b65ccf..3628ce51 100644 --- a/components/platform_console/cmd_config.c +++ b/components/platform_console/cmd_config.c @@ -456,9 +456,9 @@ static int do_audio_cmd(int argc, char **argv){ if(audio_args.loudness->count>0){ char p[4]={0}; int loudness_val = audio_args.loudness->ival[0]; - if( loudness_val < 0 || loudness_val>100){ + if( loudness_val < 0 || loudness_val>10){ nerrors++; - fprintf(f,"Invalid loudness value %d. Valid values are between 0 and 100.\n",loudness_val); + fprintf(f,"Invalid loudness value %d. Valid values are between 0 and 10.\n",loudness_val); } // it's not necessary to store loudness in NVS as set_loudness does it, but it does not hurt else { @@ -1384,7 +1384,7 @@ void register_ledvu_config(void){ void register_audio_config(void){ audio_args.jack_behavior = arg_str0("j", "jack_behavior","Headphones|Subwoofer","On supported DAC, determines the audio jack behavior. Selecting headphones will cause the external amp to be muted on insert, while selecting Subwoofer will keep the amp active all the time."); - audio_args.loudness = arg_int0("l", "loudness","0-100","Sets the loudness level, from 0 to 100. 0 will disable the loudness completely."); + audio_args.loudness = arg_int0("l", "loudness","0-10","Sets the loudness level, from 0 to 10. 0 will disable the loudness completely."); audio_args.end = arg_end(6); audio_args.end = arg_end(6); const esp_console_cmd_t cmd = { diff --git a/components/squeezelite/equalizer.c b/components/squeezelite/equalizer.c index 04d48fb4..1072bb64 100644 --- a/components/squeezelite/equalizer.c +++ b/components/squeezelite/equalizer.c @@ -69,7 +69,7 @@ static void calculate_loudness(void) { equalizer.loudness_gain[i] += loudness_envelope_coefficients[i][j] * pow(equalizer.volume, j); } - equalizer.loudness_gain[i] *= equalizer.loudness; + equalizer.loudness_gain[i] *= equalizer.loudness / 2; } } @@ -90,7 +90,7 @@ void equalizer_init(void) { // handle loudness config = config_alloc_get(NVS_TYPE_STR, "loudness"); - equalizer.loudness = atof(config) / 100.0; + equalizer.loudness = atof(config) / 10.0; free(config); } @@ -163,7 +163,7 @@ void equalizer_set_gain(int8_t *gain) { void equalizer_set_loudness(uint8_t loudness) { #if BYTES_PER_FRAME == 4 // update loudness gains as a factor of loudness and volume - equalizer.loudness = loudness / 100.0; + equalizer.loudness = loudness / 10.0; calculate_loudness(); char p[4];