ANTIFLUTTER -- capstan flutter reduction plug
General
This is a VST plugin to reduce flutter (pitch variations) from analog tapes caused by
excentricity or dirt on the capstan axle (or to correct for any periodic
pitch variations in audio material).
You can download the plug from here.
The reason I had to write this is (again...) that there was nothing out there that would do
this processing reliably. There are lots of "vibrato" plugins but none
of them are at all suited for solving this very particular problem.
What makes this plugin different from your normal "vibrato" plugin is
- Very precise frequency control (down to a ten-thousandth of a Hz)
- Stereo processing
- Phase of the cyclical pitch change is precisely locked to the VST
time position so the correction is reproducible
Usage
Use it like this: first, determine the frequency of the flutter.
Sometimes this is easy if you know the tape speed and the diameter of
the capstan axle. Otherwise you have to estimate it by ear or by using
some other analytical tools. It's important that you match the flutter
frequency as exactly as you can before tweaking the other parameters.
Second, enable the plug on the material to be corrected. It's helpful to
also put a short "slap back" delay in the chain after antiflutter. Set the
time of this delay to half the periodicity of the flutter, so it
becomes more audible. I.e., if the flutter is 10 Hz the periodicity is
100 msec. If you set the delay to 50 msec and "wet-dry mix" to 50-50,
the pitch of the dry signal will go up as the pitch of the delayed
signal goes down and you can hear it much more clearly. This becomes
important in the next step.
Third, switch on automation for the "Phase" parameter and play back a
small portion in the beginning of the material (cycle if you want).
Tweak the "Depth" parameter and the initial control point for "Phase" until
as much of the flutter as possible disappears.
Fourth, keep progressing thru the material and set additional
control points for the "Phase" parameter as needed. Depending on how
close you have matched antiflutter's frequency setting with the actual
flutter, the control curve might look like a fluctuating straight line,
a rising sawtooth (antiflutter's freqneucy is slightly too high), or a falling
sawtooth (antiflutter's frequency is slightly too low). This doesn't matter.
The "Phase" parameter goes between 0 and 99 but in actual fact
represents the 0 to 360 degree range of the phase. Make sure that if you
need to "wraparound" with the phase (the straight line of the sawtooth)
you make the control line completely straight (instantaneous) up or
down.
Fifth, depending on the material you might want to automate the "depth"
to zero in places where it's difficult to ascertain the phase of the
flutter. Of course, if the phase is 180 degrees wrong, this plug
actually makes the flutter twice as bad!
Legal
Antiflutter is freeware. “It would be nice” if you sent me a CD if you use
this in an actual production. That is, it’s not a legal requirement but
it would be nice! But if you don't feel like it don't worry. :)
Mail me at antiflutter@jens.org if you need a snail mail
address for this purpose.
Antiflutter is beta -- very beta! Mail me at the same address if there
are any problems, or some obvious improvement.
Death to all flutter!
Bugs and other issues I don't care about
- Only really tested it in Nuendo 2
- No source (it's a shameful hodgepodge)
- No compensation is made for the (average) 5 msec delay this plug causes.
- Pitch change is established as "modulated delay time" rather than
in absolute pitch units. This means that for lower flutter frequencies
you need to add more "depth" for the same pitch change.
- Come to think of it, 5 msec is probably pretty useless at some of the lower
flutter frequency settings.
- The variable delay is implemented with piecewise linear interpolation
between samples. Upsampling/filtering might have been a better idea but
I was simply too lazy.
- There was a previous version called "aflut.dll". I found an issue
with the quantization of the frequency parameters / interaction with
the VST host. This was fixed and I changed the name to "antiflutter"
since I had done quite a lot of work with the buggy plug already..
- There is still some issue with automation in Nuendo 2. I don't know
if it's a Nuendo 2 issue or something with the plug. If you tweak a
"Phase" automation curve, save, exit Nuendo, and reopen the project, the
flutter phase is "off" after reopening Nuendo.
In either case, the workaround is: activate plug, set correct frequency,
set one Phase control point (automation value) somewhere in the project,
save, exit nuendo, reopen. After reopening once, all subsequent Phase
parameter control curves will be reproduced the same way no matter if
you close / exit / open again. Weird!