-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TapeRecorder: clicky dropout when recording during transport reversal #21
Comments
In ping-pong mode, the change in direction happen immediately (in contrast to e.g. Simplicter with Sipler Tape Control by Nysthi, which slows the tape speed down to zero and then speeds up in the opposite direction). This causes the click. I think I should add a crossfade 1 millisecond or so before and after the change of the direction. This would avoid the click but maybe would cause other unwanted artifacts (one is, that the dircetion change will be delayed by 1 ms). I have to try this out first. The drop happens because of phase cancellation when using simple, unmodulated waveforms. I don't know any way to avoid this other than modulating the tape speed or the frequency of the oscillator connected to the input of the Tape Recorder module. Adding reverb after the Tape Recorder module is a good way to smooth things out, but it is not a solution to the problem. Actually, the code inside process() is a mess, and I have some work in progress that will affect this part of the code. If you want to try some hack for yourself, there's bool playForwardStatus that indicates the direction. My advice is to use Simplicter with Sipler Tape Control by Nysthi instead because of better antialiasing, load and save functionality, and so on. |
I did try to use Simpliciter but have so far been unable to replicate your "continuous recording" behavior (which is fun!). I would think Simpliciter's Sound-on-Sound control would effect this, but only seems to act as a "wet/dry" mixer of already recorded vs. live audio. But I'll keep trying - trying to find docs for Nsynthi's stuff is a challenge... I'll also see if I can figure out how to add a crossfade to your code as you suggest above. |
Replying to myself - I'm not sure why Simpliciter's SOS didnt seem to work when I was trying it yesterday, but of course it does allow continuous overdubbing. The Tape expander then supports pingpong by driving with an LFO so I can more or less emulate your module with it (at least the simple subset of your module that I was using...). In any case, I'll take a stab at your crossfade idea and get back to you if have something worth your review... Thanks @Ahornberg ! |
This may be intentional - if not, here's what I see and hope to fix.
When I run the recorder in ping-pong mode (no speed modulation, just a constant speed ping pong), but input audio extends over the moment when the transport switches from forward to reverse (or vice versa), the resulting recording contains a click and dropout. What I would have expected was a smooth continuous recording of the input audio onto the now reversed buffer - and on playback would not expect to be able to even hear the transition.
(the attached example was a constant volume tone recorded over the reversal).
I've looked through the source code, but don't see anything obvious to cause this. I'm game to try to fix myself and submit a pull request if you have an idea of where the problem might be and can point me to the right part of the code.
doodle-221012.wav.zip
The text was updated successfully, but these errors were encountered: