Hello all,
The purpose of this post is to gather some opinions on the
use of 'tape distortion' plugins.
The way an analog magnetic tape recorder distorts the signal
is quite complicated. The non-linear response is mainly due
to the hysteresis of the magnetisation process, and how this
interacts with the HF bias added to the recorded signal.
Simplifying things a bit, as the tape moves past the recording
head and away from it, it goes through several cycles of an
hysteresis loop with decreasing amplitude, and it finally
converges to some value more or less proportional to the signal.
The bias signal itself does not remain on the tape, or at most
at a very low level.
The same process but with just a very high level HF bias is
used to erase the tape.
Simulating this accurately is quite complicated, and very CPU
intensive. The sample rate must be at least twice the bias
frequency (around 100 kHz for 'pro' equipment) and for each
sample you need to evaluate the hysteresis loop up to a hundred
times (depending on tape speed) to simulate the convergence.
Over the past few months I've written the code to do this,
with the aim to present a useful 'tape emulation' plugin
at the next LAC. It uses a somewhat simplified form of the
Preisach algorithm for the hysteresis.
<http://kokkinizita.linuxaudio.org/linuxaudio/downloads/preisach-model.pdf>
But the first results are somewhat sobering.
Have a look at
<http://kokkinizita.linuxaudio.org/linuxaudio/downloads/tapesaturation.png>
This shows the tranfer function (recorded magnetic signal as
a function of the input) for three values of the HF bias.
The blue line is what you get without bias. It result in a
very smooth saturation for high level signals, but a low
amplitude signal will be severly distorted due to the flat
region around zero.
As bias level is increased, this effect is reduced and the
low level gain increases up to some maximum. This is shown
by the orange curve.
The recommended way to set the correct bias level is to
further increase it until the small signal gain is reduced
by a few dB (typically 1 or 2 dB, depending on tape type).
This is shown by the green curve.
The central part of this is very linear (less than 1% THD).
But now the smooth saturation is almost transformed into
hard clipping. The sharp bend in the curve occurs when the
signal amplitude is higher than the bias amplitude.
The only effect that remains in a complete simulation is
the result of the EQ applied to the signal to be recorded.
Higher frequencies have a 'self erasure' effect (which is
nicely reproduced by the simulation) and so need to be
amplified. The net result is that they will saturate at
a lower input level.
How much EQ is required depends mainly on tape speed, higher
speeds need less. At the most popular 'pro' speed (381 mm/s)
this would be something around 10 dB at 10 kHz. At the higher
(762 mm/s) speed typically used for 'master tapes' it's just
a few dB.
So what does effectively remain of the 'smooth saturation
and compression' that is claimed to give tape recording its
magical 'warm' character ? Is it just a myth ?
I also simulated the green curve directly without going
through the complicated full simulation, and honestly,
to me that sounds just the same. And unless you really
use very high levels (much more than would actually be
used) the net effect is marginal. Maybe the hard clipping
can be useful when applied to individual tracks (e.g.
drums or bass), but then there are much simpler ways
to do this than 'tape emulation'.
Comments invited !!
On Wed, Oct 16, 2024 at 05:57:33AM -1000, robertlazarski wrote:
> When talking about the tape bias levels, the EchoFix is around 50hz and is
> annoying enough that I high pass filter it out.
You may have the wrong idea about what 'bias' is in this context.
The bias used in analog tape recording is typically in the 100 kHz
range, and even for 'consumer' level equipment at least 50 kHz.
Ciao,
--
FA
Fluida is a LV2 wrapper around Fluidsynth for Linux and Windows
allowing to load and control Fluidsynth as LV2 plugin.
This release of Fluida add support for Fluidsynth SoundFont Modulators
Envelope and Filter with the following MIDI bindings:
-Â Â Â MIDI CC 73 Soundfont modulator Envelope Attack Time
-Â Â Â MIDI CC 72 Soundfont modulator Envelope Release Time
-Â Â Â MIDI CC 74 Soundfont modulator Filter Cutoff
-Â Â Â MIDI CC 71 Soundfont modulator Filter Resonance
Project Page (Source Code):
https://github.com/brummer10/Fluida.lv2
Release Page (Binaries):
https://github.com/brummer10/Fluida.lv2/releases/tag/v0.9.3
Hello all,
Version 0.4.0 of zita-bls1 is available at
<http://kokkinizita.linuxaudio.org/linuxaudio/downloads/index.html>
fixing a bug resulting from the update of the zita-convolver library
from major version 3 to 4.
This required a small change in zita-bls1, but that updated version
was not released...
Ciao,
--
FA
dkbuilder-guitarix-lv2-plugins is a set of LV2 plugins and faust code
generated by dkbuilder.
1.0.1 is the initial release and it introduce the Blow Me Amplifier, a
set of vacuum tubes guitar preamplifier and head designed to not
compromise the sound. Which is relative because when combined to make a
complete amplifier, these plugins offer a lot of gain and saturation.
The Blow Me is modelled from a real hardware I made that way because I
like punchy saturated and clear sounds, and the best way to get dynamic
saturated sounds is when the hardware don't compromise or mess with the
sonic quality for financial reason. It is under GPL-3.
That release contain the gschem schematics and the resulting LV2 and
faust code for use with LV2 and XUiDesigner. As the gain is huge, I
made versions of these plugins with different volume curves and
defaults, which should make them suitable for different use cases like
independent LV2 plugins or with guitarix and that, out of the box.
https://github.com/domichel/dkbuilder-guitarix-lv2-plugins
Enjoy,
Dominique
A long awaited release: 0.99.82
I apologize for that delay. I think I miss-understood a message from
erikd on the mailing list.
The hard work was done by erikd - Erik De Castro Lopo. It consist of a
rewrite of the internal of AlsaPlayer in order to suit contemporary
coding audio standards with modern computing.
https://github.com/alsaplayer/alsaplayer
Enjoy,
Dominique