Thank you for your donation!


Problem: Influencing the sound in Squeezelite mode
#11
There are a couple of other DAC's where the software engineer left a trailing space in the mixer name. I'll prolly need to do a SQLite3::escapeString() on that string b4 writing it to the table.
Reply
#12
Yeah I pointed out the issue to Topping and someone walked them through explicitly how #defines work in C and where the extra space comes from in the XMOS code so they could fix it. Unfortunately there's not been any actual mention of new firmware to fix it.

The XMOS code has a macro like MAKE_STRING that expects a second value to make the string "{PRODUCT} {FUNCTION}" or such but the companies are defining PRODUCT and then calling the macros as MAKE_STRING() instead of MAKE_STRING("MIXER") and thus getting "D10s " instead of "D10s MIXER". So their USB endpoint descriptors are filled with trailing spaces.
Reply
#13
Actually, while on this topic, the script that yields control to squeezelite sets the alsa volume to max which is bad when -V is specified as -V tells squeezelite to use hardware volume instead of software volume control but can get in a state where it doesn't set the volume before it starts playing. So it plays REALLY loud.
Reply
#14
(10-17-2020, 06:53 PM)seashell Wrote: Yeah I pointed out the issue to Topping and someone walked them through explicitly how #defines work in C and where the extra space comes from in the XMOS code so they could fix it.  Unfortunately there's not been any actual mention of new firmware to fix it.

The XMOS code has a macro like MAKE_STRING that expects a second value to make the string "{PRODUCT} {FUNCTION}" or such but the companies are defining PRODUCT and then calling the macros as MAKE_STRING() instead of MAKE_STRING("MIXER") and thus getting "D10s " instead of "D10s MIXER".  So their USB endpoint descriptors are filled with trailing spaces.

It never got fixed in the Khadas Tone Board firmware and I'll bet it never gets fixed in Topping's, at least not for the D10s. The marketing guys figure there'll be no increase in sales based on a fix to this error so tackling it just increases cost, the hardware guys are afraid that any change to the code will cause unintended consequences that will be blamed on them (not unreasonably given some of the stupid problems present in early versions of Khadas's firmware anyway), and the software guys have moved on. 

The usual consumer product lifecycle Big Grin
</cynicism>

Regards,
Kent
Reply
#15
(10-17-2020, 07:08 PM)TheOldPresbyope Wrote: It never got fixed in the Khadas Tone Board firmware and I'll bet it never gets fixed in Topping's, at least not for the D10s.
Yeah I'm not expecting a fix either. Topping has issued other firmware fixes based on user complaints but it seems it's not going to happen here. Hopefully the D11 or whatever won't have the problem.
Reply
#16
(10-17-2020, 06:57 PM)seashell Wrote: Actually, while on this topic, the script that yields control to squeezelite sets the alsa volume to max which is bad when -V is specified as -V tells squeezelite to use hardware volume instead of software volume control but can get in a state where it doesn't set the volume before it starts playing.  So it plays REALLY loud.

I suppose the script could check for -V and then bypass the line that sets 0dB.

I just pushed a commit that might work. Give the updated script a try and let me know. Also the updated Config screen.
Reply
#17
Yes both changes seem to work. Alsa volume untouched when squeezelite is turned on and the whole command string was populated in the settings. I didn't test if volume went to 100% w/o the -V as I'm to lazy to go turn off the amp right now. Tongue
Reply


Forum Jump: