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 !!
After the second move this year, I've finally started to set up my home studio properly again. (Ubuntu 24.04.1 LTS, Mixbus, RME ADI-2 Pro for monitoring, Focusrite Scarlett 18i20 2nd generation for integrating analog hardware)
Since I've also updated Ubuntu, I've switched my workstation to Pipewire, as I've had quite good experiences with it on my laptop and running several audio interfaces in parallel is quite problematic.
My first attempt with a smaller project (17 audio tracks) ran without any problems.
My second attempt with a medium-sized project (~30 audio tracks), however, is driving me to despair. I have a DSP load of 50-60%, no buffer underruns but constant stuttering and occasional beeping.
The log says the following
Nov 12 22:37:13 muse pipewire[2048]: spa.alsa: hw:4c: snd_pcm_mmap_commit error 1022 514 1022: Data transfer interrupted (broken pipe)
Nov 12 22:37:24 muse pipewire[2048]: spa.alsa: hw:4c: follower delay:873 target:1536 thr:1024 resample:1, resync (2 suppressed)
It is interesting that when I start the safe mode in Mixbus, i.e. all effects are switched off, I have a DSP load of 10 percent and the stuttering and beeping is just as present. I don't have any analog hardware connected at this stage, so I read all tracks directly from disk and send them stereo to the RME interface.
I didn't have these problems under jack2, but then the RME was also connected to the Scarlett via TOSLink, so there was only one interface visible to the system.
I therefore suspect that it is a problem with the hard disk usage, as I can't think of any other reason.
Unfortunately I have not found a way to optimize hard disk access and I don't even know if this is done directly by Pipewire or if one of the usual libraries is used for this.
Have you seen this phenomenon before or do you have any ideas what else I can try?
Thanks for any suggestions!
Holger
--
Holger Dehnhardt
holger(a)dehnhardt.org
https://www.dehnhardt.org
Cheers to Ingo Molnar!
I am not sure how many users are interested in such news, since there
might be still a linux-audio-dev community that I am not part of anymore.
Nevertheless, it amuses me that basically half my life ago, I struggled
and tested and read tons of stuff, invested a lot of time to get some
nice audio stuff going on linux and some rather crappy hardware...
and now, 20 years later, the foundation to all of it - a real-time
kernel - did not disappear but was developed and maintained until the
eagle has landed.
Again, cheers to Ingo and all that contributed!
Yours,
Tobias.
"David W. Jones" <gnome(a)hawaii.rr.com> writes:
> https://draw.audio/
Also saw that on HN today. In the comments, there was another fun web
audio link: https://roland50.studio/
--
CYa,
⡍⠁⠗⠊⠕
Friends
I am looking for a MIDI foot pedal board for use with my LV2 simulators (https://github.com/worikgh/120Proof.git)
I am considering the Behringer FCB1010 but i am naturally unsure if it is suitable
I see on the interweb that it has all sorts of "banks" that can be programmed, but that interests me not
What I care about is can I address it from a Linux box, see the MIDI events.
Has anybody any experience with this, or recommendations for another product?
I am currently using a SINCO pedal from Aliexpress.com that is great, but only has four switches
I am keen on more options, and especially the expression peda
pedals
Worik
Sent from Proton Mail Android