proposed way to handle loudness 0..10

This commit is contained in:
philippe44
2023-08-31 18:00:58 -07:00
parent ad4d5db2f1
commit 067a1f2800
2 changed files with 6 additions and 6 deletions

View File

@@ -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 = {

View File

@@ -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];