speexdsp doesn’t support changing the sample rate over time without resetting its state, which you’ll definitely need for that module, so you should use libsamplerate.
Yes, 0V should correspond with current sample rate, etc. As a weird example, if you give both input/output pitch inputs -5V, it will downsample from Rack’s engine sample rate to Rack's engine sample rate * 2^(-5)
, which will be very low (e.g. 1378 Hz), store into the buffer queue, and upsample when played back. In this case, recording and playback speed will be the same, so the buffer will always store roughly a fixed amount of samples.