Hello there,
This is a somewhat tricky problem to explain, so please bear with me. It’s an issue that came up in discussion between Alan and Pete in the Kata, and they are both grappling with it at the moment. But I wanted to raise it here because it calls attention to something not present in Kyma that feels as if it should be.
The issue could be described as “mimicking tape”, insofar as it is used in a tape echo delay unit, for example.
Normally we can imitate such a delay by using a memory writer and imposing a lag on the sound reading from the addressed buffer. By adding feedback, the echo is generated.
But if we would like to imitate the effect of speeding up the tape, immediately we run into an issue. We can easily accelerate the reader sound. However, now everything that comes out of the reader will forever be at a different speed to when it went into the writer, whereas on the tape echo, the tape is also moving more quickly past the write/record head, and so after the speed change is completed, the pitch stabilises at that of the source.
With feedback, our Kyma echo has become a spiralling repitched delay, quite different from the tape echo we were seeking to emulate.
There does not seem to be a way to “control the write head”, which would be one obvious solution. A ramp controlling the memory writer in the manner of our choosing would pair nicely with the memory readers like the TimbreWaveShaper, which is controllable by a ramp or any other function. With such an addition, even a beginner like me could solve this problem. :)
Without it, I’m very curious which solutions may spring to your mind.
As a side note related to the addressability of memorywriters, it strikes me as a little odd that the DiskRecorder can be triggered at sample rate to append the recorded file, but the MemoryWriter cannot. Would adding sample rate control (triggering and addressing buffer position like the TimbreWaveShaper as mentioned above) of the MemoryWriter be a possibility? I only ask as the recent sample-rate update to the OscillatorTimeIndex is hugely welcome!
Anyway, many thanks for your patient reading of what is doubtless a very confusingly phrased query!