Performance Tests

Here we'll explore some results of actual tests made on a completed pi-Stomp. Specifically board version 1.0.2.

Latency through a DAC/ADC device can be theoretically calculated with this equation:

Periods x (Frames [or buffer] / Sample Rate [in kHz] ) = Latency in ms

The Sample rates available for pi-Stomp are: 44.1kHz, 48kHz, 96kHz

The Frames/Buffer sizes: 64, 128, 256, 512, 1024

Periods: 2 thru 9

Using the patchbox utility (via ssh), you can use any combination. Whatever combination you set, you can toggle to the next higher Frame size in the Webui. That is useful when the CPU is overloaded and you start to hear glitching.

Although there are many combinations of the 3 settings, some are more useful than others. I've found no reason to use a period greater than 2.

Ideally you'd like low as possible latency, which generally means highest sample rate. However, for large pedalboards with over 10 plugins or many simulator type plugins, the CPU might become overloaded resulting in buffer overruns and glitches. In that case you might need to lower the sample rate.

I find the happy medium for my playing and pedalboards is 256/96kHz or 128/48kHz yielding 5.33ms. For those wanting less latency, 128/96kHz=2.67ms seems to work fine for smaller pedalboards (6 to 8 pedals max). If you just want the lowest possible latency you might be able to run 64/96kHz but likely only with 3 or fewer pedals. Those are just some guidelines, your mileage may vary.

Below are the theoretical and actual measured latency for the most popular configurations. The input is from a metronome Y-ed to one scope channel (blue) and the other going to In1 of pi-Stomp and Out1 of pi-Stomp going to the other scope channel (red). The time lag between the blue and red waveforms is the measured latency.

2 * 64 / 96kHz = 1.33ms

Measured: 1.4ms

Not generally recommended except for very small/simple pedalboards

2 * 128 / 96kHz = 2.67ms

Measured: 2.7ms

2 * 64 / 48kHz = 2.67ms

Measured: 3.2ms

2 * 256 / 96kHz = 5.33ms

Measured: 5.4ms

2 * 128 / 48kHz = 5.33ms

Measured: 5.8ms

2 * 256 / 48kHz = 10.7ms

Measured: 11.2ms

  • performance_tests.txt
  • Last modified: 2024/01/26 05:45
  • by