Since in Cadence you can over-ride the drop-down menu selections and type-in your own custom frames entry, you can enter the numbers below and thus achieve an even multiple of 1ms (that is, a whole-numbered latency figure) for use with USB interfaces which require that.
This follows the formula for latency from AutoStatic's post I found in Hardware that I'll replicate here for you:
(Frames/Sample Rate) * Period = Theoretical (or Math-derived) Latency
(actual latency depends upon other factors, but USB devices want the math-derived latency to be an even multiple of 1ms)
I created this spread-sheet that produced the numbers that generated even numbers for both periods (2 & 3), suggesting what may be possible ideal candidates for USB interfaces. I couldn't get the numbers to line-up under the labels, but you can figure out which are which.
NOTE: quite a few pieces of software and plug-ins expect frames that are a power of 2 (like guitarix). You might get weird errors when using frame numbers that are not a power of 2 or the plug-in/software may not even start at all.
ALSO note that JACK prefers a number of frames that is a power of two anyway. From the JACK man page:
. [thx again to AutoStatic!]-p, --period int
Specify the number of frames between JACK process() calls. This value must be a power of 2, and the
default is 1024. If you need low latency, set -p as low as you can go without seeing xruns. A
larger period size yields higher latency, but makes xruns less likely. The JACK capture latency in
seconds is --period divided by --rate
[Items in dark-red won't work ideally with USB but were included to have the most common figures all represented in there.)
[Items in Green will work with any software or plugin requiring powers of two.]
(Frames / Sample Rate ) * Periods = Latency in ms
( 16 / 48000 ) * 3 = 1
( 24 / 48000 ) * 3 = 1.5
( 32 / 48000 ) * 3 = 2
( 48 / 48000 ) * 3 = 3
( 64 / 48000 ) * 3 = 4
( 72 / 48000 ) * 3 = 4.5
( 80 / 48000 ) * 3 = 5
( 96 / 48000 ) * 3 = 6
( 112 / 48000 ) * 3 = 7
( 128 / 48000 ) * 3 = 8
( 144 / 48000 ) * 3 = 9
( 160 / 48000 ) * 3 = 10
( 176 / 48000 ) * 3 = 11
( 256 / 48000 ) * 3 = 16
( 512 / 48000 ) * 3 = 32
( 960 / 48000 ) * 3 = 60
( 1024 / 48000 ) * 3 = 64
( 2048 / 48000 ) * 3 = 128
( 16 / 48000 ) * 2 = 0.6666666667
( 24 / 48000 ) * 2 = 1
( 32 / 48000 ) * 2 = 1.3333333333
( 48 / 48000 ) * 2 = 2
( 64 / 48000 ) * 2 = 2.6666666667
( 72 / 48000 ) * 2 = 3
( 80 / 48000 ) * 2 = 3.3333333333
( 96 / 48000 ) * 2 = 4
( 120 / 48000 ) * 2 = 5
( 128 / 48000 ) * 2 = 5.3333333333
( 144 / 48000 ) * 2 = 6
( 168 / 48000 ) * 2 = 7
( 192 / 48000 ) * 2 = 8
( 216 / 48000 ) * 2 = 9
( 240 / 48000 ) * 2 = 10
( 256 / 48000 ) * 2 = 10.6666666667
( 512 / 48000 ) * 2 = 21.3333333333
( 1024 / 48000 ) * 2 = 42.6666666667
( 2048 / 48000 ) * 2 = 85.3333333333
( 16 / 96000 ) * 3 = 0.5
( 24 / 96000 ) * 3 = 0.75
( 32 / 96000 ) * 3 = 1
( 48 / 96000 ) * 3 = 1.5
( 64 / 96000 ) * 3 = 2
( 72 / 96000 ) * 3 = 2.25
( 80 / 96000 ) * 3 = 2.5
( 96 / 96000 ) * 3 = 3
( 128 / 96000 ) * 3 = 4
( 160 / 96000 ) * 3 = 5
( 192 / 96000 ) * 3 = 6
( 224 / 96000 ) * 3 = 7
( 256 / 96000 ) * 3 = 8
( 288 / 96000 ) * 3 = 9
( 320 / 96000 ) * 3 = 10
( 512 / 96000 ) * 3 = 16
( 1024 / 96000 ) * 3 = 32
( 2048 / 96000 ) * 3 = 64
( 16 / 96000 ) * 2 = 0.3333333333
( 24 / 96000 ) * 2 = 0.5
( 32 / 96000 ) * 2 = 0.6666666667
( 48 / 96000 ) * 2 = 1
( 64 / 96000 ) * 2 = 1.3333333333
( 72 / 96000 ) * 2 = 1.5
( 80 / 96000 ) * 2 = 1.6666666667
( 96 / 96000 ) * 2 = 2
( 128 / 96000 ) * 2 = 2.6666666667
( 144 / 96000 ) * 2 = 3
( 192 / 96000 ) * 2 = 4
( 240 / 96000 ) * 2 = 5
( 256 / 96000 ) * 2 = 5.3333333333
( 288 / 96000 ) * 2 = 6
( 336 / 96000 ) * 2 = 7
( 384 / 96000 ) * 2 = 8
( 432 / 96000 ) * 2 = 9
( 480 / 96000 ) * 2 = 10
( 512 / 96000 ) * 2 = 10.6666666667
( 1024 / 96000 ) * 2 = 21.3333333333
( 2048 / 96000 ) * 2 = 42.6666666667
( 16 / 192000 ) * 3 = 0.25
( 24 / 192000 ) * 3 = 0.375
( 32 / 192000 ) * 3 = 0.5
( 48 / 192000 ) * 3 = 0.75
( 64 / 192000 ) * 3 = 1
( 72 / 192000 ) * 3 = 1.125
( 96 / 192000 ) * 3 = 1.5
( 128 / 192000 ) * 3 = 2
( 192 / 192000 ) * 3 = 3
( 256 / 192000 ) * 3 = 4
( 512 / 192000 ) * 3 = 8
( 1024 / 192000 ) * 3 = 16
( 2048 / 192000 ) * 3 = 32
( 16 / 192000 ) * 2 = 0.1666666667
( 24 / 192000 ) * 2 = 0.25
( 32 / 192000 ) * 2 = 0.3333333333
( 48 / 192000 ) * 2 = 0.5
( 64 / 192000 ) * 2 = 0.6666666667
( 72 / 192000 ) * 2 = 0.75
( 96 / 192000 ) * 2 = 1
( 128 / 192000 ) * 2 = 1.3333333333
( 256 / 192000 ) * 2 = 2.6666666667
( 512 / 192000 ) * 2 = 5.3333333333
( 1024 / 192000 ) * 2 = 10.6666666667
( 2048 / 192000 ) * 2 = 21.3333333333
Are those "oddball" frame values really going to work for you? Try them and please report back!
Would this matter to non-USB devices to have latencies which were whole multiples of 1ms? Or would they perhaps PREFER non-whole numbers?
BTW - Though AutoStatic had declared (probably true in reality) that this even-multiple latency was only possible with 48000, 96000 and 192000 sample rates, it seems that 44100 actually does have two frame rate values that come out even that might work for USB! (Not sure these would really work in practicality...)
(147 frames / 44100) * 3 periods = 10ms
(441 frames / 44100) * 2 periods = 20ms
Terry
A small caveat when using Guitarix
Many of the effects and amp simulators in Guitarix depend on a library which expects your frames/period to be a power of two (16, 32, 64, 128, etc), and large parts of Guitarix fail to work properly if this is not the case. This can easily be resolved by choosing periods=3, which enables most of the “conventional” 2^n frames/period values. In fact, if you choose periods=2, it will be impossible to get Guitarix to work properly while also having a latency which is an integral number of ms.