This isn’t about how to get the sound, but rather the behaviour when the delay time is modulated. In a BBD delay, modulating the delay time changes both the read and write sample rates, effectively re-pitching the entire contents of the buffer in a way analogous to changing tape speed. Therefore, any sound going round in a feedback look can be repitched (subject to the degradation of a BBD/tape delay).
In the usual digital delay implementations, the buffer is of fixed length and the write index always advances at the sample rate. The delay time is set by changing how many samples behind the write point to read from (with interpolation to allow for fractional delay times), so when the delay time is changed the pitch momentarily increases or decreases while the ‘read head’ is in motion, but returns to normal pitch when it stops. Further, if this is done with a feedback loop implemented the momentary pitch modulation gets recorded into all subsequent repeats. This would be analogous to moving the play head in a tape delay rather than changing the tape speed.
It bugs me that a lot of ‘analogue modelled delays’ only simulate the signal degradation but not the modulation behaviour.
So my question is ‘How can I simulate the behaviour of the first type in a fixed sample rate environment?’
I can think of two theoretical methods but they both seem like they’d be problematic:
1. When the delay time is changed, instantaneously resample the entire contents of the buffer into a shorter/longer buffer. This seems impractical for all kinds of reasons, certainly ill suited to a smooth/continuous delay time change.
2. Increase the index increment for shorter delay times and write to (and read from) the buffer with some kind of interpolation… rather than resampling the entire buffer at once the resampling is sort of incorporated into the write and read. I have no idea how to do that though, let alone whether it is practical.
Can someone shed some light on the usual way people solve this problem, or at least tell me what I need to google?