Tape start effect - the curve
-
- KVRian
- Topic Starter
- 513 posts since 3 Sep, 2009 from Poland
Ok, I'm making a tape stop / start effect. Stop is trivial, playhead speed is decreasing until it stops.
Problems begin with start, that need to be perfectly synchronized at the end (delay length = 0). Tried different curves, all of them sound unnatural, because playhead must move faster than recording head to reach it. So the pitch must be greater than pitch of the original signal (this doesn't really sound like a tape start).
Any solutions / tricks?
Problems begin with start, that need to be perfectly synchronized at the end (delay length = 0). Tried different curves, all of them sound unnatural, because playhead must move faster than recording head to reach it. So the pitch must be greater than pitch of the original signal (this doesn't really sound like a tape start).
Any solutions / tricks?
giq
-
- KVRist
- 88 posts since 5 Jul, 2018 from Cambridge, UK
I've never implemented a tape stop, but could you skip a section of audio as it resumes, with a cross-fade or something?
Without that, if you don't want the speed to go faster than 1x, then you end up needing lookahead/latency. During the "start" section, the read-head is moving slower than the write head, so to end up at the same point then the read-head would need to have started ahead of the write-head.
Without that, if you don't want the speed to go faster than 1x, then you end up needing lookahead/latency. During the "start" section, the read-head is moving slower than the write head, so to end up at the same point then the read-head would need to have started ahead of the write-head.
Last edited by signalsmith on Wed Jan 22, 2020 12:57 pm, edited 1 time in total.
-
- KVRian
- Topic Starter
- 513 posts since 3 Sep, 2009 from Poland
Remember the buffer is running. I start reading before current buffer position with increasing speed, but... to "catch a running buffer" the speed must be greater than actual playback speed and starting position doesn't really matter, playhead needs to move faster than recording.
This is possible with static buffer or with bigger latency, but seems impossible in a runtime situation. However some plugins seem to do it.
This is possible with static buffer or with bigger latency, but seems impossible in a runtime situation. However some plugins seem to do it.
giq
-
- KVRist
- 88 posts since 5 Jul, 2018 from Cambridge, UK
I'm suggesting that you get back up to speed, and then cross-fade to skip the delay you've accumulated.
If you don't want your playback speed to go above 1x, then your average playback speed is (by definition) less than 1x - which means you will need to skip a bit of the buffer at some point. If you're not using latency, then the final bit of the "skip" needs to happen at the end, i.e.
That is: you let it fall behind during the "stop", then jump ahead as the "start" begins, then have an extra (cross-faded) skip right at the end to get back in sync.
If you don't want your playback speed to go above 1x, then your average playback speed is (by definition) less than 1x - which means you will need to skip a bit of the buffer at some point. If you're not using latency, then the final bit of the "skip" needs to happen at the end, i.e.
Code: Select all
in: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
out: 1 2 3 4 .. (silent) .. 11 12 13 14 15
16 17 18 19
^-- stop ^--- start ^- cross-fade
Last edited by signalsmith on Wed Jan 22, 2020 1:20 pm, edited 1 time in total.