Closed sunfireforge closed 3 weeks ago
There is no OS setting for this. There isn't a full documentation of the TCP protocol. It has been reverse engineered from AD's sample code (with some bug fixes already). It's possible that it's still not 100% correct. However, without a protocol documentation, I simply can't say how it should look like.
Thanks for the response. I found this; https://wiki.analog.com/resources/tools-software/sigmastudio/usingsigmastudio/tcpipchannels
I submitted and closed a PR with some changes you might want to consider; https://wiki.analog.com/resources/tools-software/sigmastudio/usingsigmastudio/tcpipchannels
One fixes the issue with line C6 above. There were actually two packets being passed to _handleread. I found code in _handlewrite which uses a buffer to deal with that.
The other two commits are adding a complete hex dump during _handleread, and use the total packet length in the response header instead of the header len.
This is what the log output looks like;
All of these changes work, but none of them fix the indicator issue. I think my next step is to debug sigmastudio and see if i can figure out what these breaking cells are looking for. Luckily, its .net, hopefully it's not obfuscated.
Let me know if you want me to re-send that PR.
If you have a PR that fixes this, please send it.
Do you still want to send a PR?
Hello!
I've been trying to debug why some level indicators work real-time in sigmastudio while some do not, crashing the comms channel with sigmatcp or sigmastudio altogether.
I'm using;
Thus far I've tested, with level Indicator switch ON;
Seem to work ok;
Do not work
All other functionality of the cells work, meaning, compressors apply compression and allow you to adjust params, but if you flip the "Indicators On" switch the comms channel crashes after a couple of seconds.
I initially thought it might be overloading sigmatcp, causing the daemon to become unresponsive.
I stopped the service; sudo systemctl stop sigmatcp and started it from a terminal session; /usr/local/bin/sigmatcpserver -v
After trying a few different things, based on the debug level output, I'm pretty sure the daemon was not overloaded. I had multiple "working" indicators and could still make live changes to other cell types (volume sliders, mutes).
I then forked the server and added some (rudimentary) read caching and additional log output; https://github.com/joshzampino/hifiberry-dsp
Here's my instrumented _handleread output (a = addr, l: length, d: data);
A) A known good indicator (Running Average)
B) A known bad indicator (Level Detectors/Multiple Bands/RTA to Output);
C) Known bad indicator (Dynamics Processors/Multiband Compressor)
Looking at this output, I now think that the comms channel is crashing because the data offset or format is not what sigmastudio expects.
Before I dig in any further I wanted to check and see if this is something I'm missing in my configuration? I'm not very familiar with the DSP config and register values, perhaps there is an OS setting?
Please let me know if I can provide anymore detail, and thanks for looking.