gavv / signal-estimator

Measure characteristics of a looped back signal.
MIT License
63 stars 18 forks source link

Packaging sanity checks #45

Closed sodface closed 11 months ago

sodface commented 11 months ago

I'm trying to maintain the signal-estimator package for Alpine Linux, currently in the testing repo. I haven't actually used it for what I had originally planned but I'd already had the package accepted, so I've been updating it as required.

Do you have any suggestions for minimal testing I should do after updating the package? Right now I'm just making sure the cli command and gui start. I run through the various modes in the gui with the default sound devices but I'm not really sure what's expected.

See attached for example. To me, this display seems a lot noisier than it was when I first packaged this a few versions ago.

2023-10-03-193047_1920x1080_scrot

gavv commented 11 months ago

Hi!

First of all, thanks for your packaging work!

I think the most important and at the same time straightforward test is to run:

./bin/x86_64-linux-gnu/signal-estimator -i <device> -o <device> -m latency_corr

and to check that the latency is correctly measured:

...
latency:  sw+hw  30.579ms  hw  22.579ms  hw_avg5  21.410ms
latency:  sw+hw  30.749ms  hw  22.749ms  hw_avg5  21.745ms
...

You can then remember the latency of your hardware and check that it's the same each release :)

latency_corr is quite robust, and usually works without additional configuration.

The second mode, latency_step, which you're using on your screenshot (it's also used in noop mode), is much more fragile. You should ensure that the volume is not too low and not too high and may need to adjust threshold for your specific conditions. You can play with these parameters:

 Step-based latency estimation options:
      --step-period arg         Step period, seconds (default: 1.000000)
      --step-length arg         Step length, seconds (default: 0.100000)
      --step-detection-window arg
                                Step detection running maximum window, in
                                samples (default: 96)
      --step-detection-threshold arg
                                Step detection threshold, from 0 to 1
                                (default: 0.400000)

and also with volume via --volume option and/or alsamixer.

I think on your screenshot, volume of output or input ALSA device is too high. We don't control it programmatically yet, but we have a task: #10.

BTW, if you connect output to input via jack cable, it will be much easier to make latency_step working with minimal configuration, because there will be almost no noise.

Regarding GUI. It does not display measurement results yet, so there is not much to test. However we have #44, which I think we'll be included in next release. It will provide the same data in GUI that we have in CLI.

sodface commented 11 months ago

Thank you!

gavv commented 11 months ago

Closing, feel free to reopen if needed

gavv commented 11 months ago

Note: #44 was merged into master, so since next release it would be possible to do meaningful tests for GUI too.

gavv commented 10 months ago

A few other sanity checks that I do from time to time: