mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-09 21:17:18 +03:00
proposed way to handle loudness 0..10
This commit is contained in:
@@ -456,9 +456,9 @@ static int do_audio_cmd(int argc, char **argv){
|
|||||||
if(audio_args.loudness->count>0){
|
if(audio_args.loudness->count>0){
|
||||||
char p[4]={0};
|
char p[4]={0};
|
||||||
int loudness_val = audio_args.loudness->ival[0];
|
int loudness_val = audio_args.loudness->ival[0];
|
||||||
if( loudness_val < 0 || loudness_val>100){
|
if( loudness_val < 0 || loudness_val>10){
|
||||||
nerrors++;
|
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
|
// it's not necessary to store loudness in NVS as set_loudness does it, but it does not hurt
|
||||||
else {
|
else {
|
||||||
@@ -1384,7 +1384,7 @@ void register_ledvu_config(void){
|
|||||||
|
|
||||||
void register_audio_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.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);
|
||||||
audio_args.end = arg_end(6);
|
audio_args.end = arg_end(6);
|
||||||
const esp_console_cmd_t cmd = {
|
const esp_console_cmd_t cmd = {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ static void calculate_loudness(void) {
|
|||||||
equalizer.loudness_gain[i] +=
|
equalizer.loudness_gain[i] +=
|
||||||
loudness_envelope_coefficients[i][j] * pow(equalizer.volume, j);
|
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
|
// handle loudness
|
||||||
config = config_alloc_get(NVS_TYPE_STR, "loudness");
|
config = config_alloc_get(NVS_TYPE_STR, "loudness");
|
||||||
equalizer.loudness = atof(config) / 100.0;
|
equalizer.loudness = atof(config) / 10.0;
|
||||||
|
|
||||||
free(config);
|
free(config);
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ void equalizer_set_gain(int8_t *gain) {
|
|||||||
void equalizer_set_loudness(uint8_t loudness) {
|
void equalizer_set_loudness(uint8_t loudness) {
|
||||||
#if BYTES_PER_FRAME == 4
|
#if BYTES_PER_FRAME == 4
|
||||||
// update loudness gains as a factor of loudness and volume
|
// update loudness gains as a factor of loudness and volume
|
||||||
equalizer.loudness = loudness / 100.0;
|
equalizer.loudness = loudness / 10.0;
|
||||||
calculate_loudness();
|
calculate_loudness();
|
||||||
|
|
||||||
char p[4];
|
char p[4];
|
||||||
|
|||||||
Reference in New Issue
Block a user