The Kiss of Shame – Tape Desecration Processor
Recently I was donated the source code to The Kiss of Shame, a magnetic tape emulation plug-in from 2014, originally developed by Eros Marcello and friends. The plug-in was never finished or released, but Eros has graciously allowed it to become open source. As part of my plug-in archeology project, I’ve been hacking away at the code to get it up and running again. In this blog post I’ll explain in detail how this plug-in works.
The Kiss of Shame was one of the first analog tape degradation simulations. Quoting from a LinkedIn post by the original author:
It’s the worlds first (and to my knowledge) only tape / analog circuitry emulation plugin that realistically models the effects of magnetic particle instability, lubricant loss, substrate deformation, drift, scrape-flutter, print-through and reel expansion/contraction into a suite of FX processing tools for sound design and music production. We were also the first to leverage machine learning to account for the vast nonlinearities inherent in magnetic tape and analog circuitry.
I don’t know how much of that actually got implemented — I’m not an expert on reel-to-reel tape recorders — but it’s an interesting plug-in nonetheless. 😃
The Kiss of Shame has the following knobs and buttons:
Input Trim – Adds odd and even harmonics to the input signal.
Environment – Choose between several simulated storage conditions to inflict the sonic ramifications of factors such as magnetic particle instability, oxidation, lubricant loss, tape pack expansion/contraction, “vinegar syndrome” and more upon the source material.
Currently only the Hurricane Sandy environment is implemented, modeled from tape immersed and then recovered from the storm’s flood waters.
Age – The amount of hypothetical time the tape has been subjected to the chosen “Environment”, allowing the user to manipulate the severity of the corresponding effects.
Shame – The Kiss of Shame recreates the full spectrum of factors like Drift, Wow, Flutter and Scrape-Flutter which the user can impart with the center knob. It can take your source signal from mildly colored to totally mangled.
Hiss – Adds a subtle layer of noise to the sound.
Blend – A standard dry/wet mix control. Turn this up!
Output Trim – For gaining down the output when everything becomes a bit too loud.
The Link button below the trim knobs ties together the input and output gain, so that turning one knob will move the other knob in the opposite direction.
Bypass – Disable the effect.
Reach out and touch tape – The Kiss of Shame features animated, interactive reels that can be manipulated with a simple click or touch. This allows users to access authentic analogue tape flange in real-time, without the need for two physical tape decks, and in a fraction of the time.
All parameters, including reel movements, are fully automatable, and for screen real estate optimization, the reels are collapsible and fully customizable.
Choose between two distinct tape types:
S-111: A superior reel format popular from the 50s to 70s, was the preferred reference tape for many engineers.
A-456: This classic, high-output/low-noise format is a recording staple used in countless productions.
Print-Through – Also known as “bleed-through”, this emulation captures the mechanical speed fluctuations present in analog recordings. While they posed challenges for engineers in the past, they became a hallmark of classic records.
The parameters
In the original code, the parameter system was unfinished: parameters were not exposed to the host and would get reset whenever you (re)opened the editor. Of course, those were the JUCE 3 days, when JUCE did not have the AudioProcessorValueTreeState yet. I ripped out all that old parameter code and replaced it with an APVTS.
The plug-in has the following AudioParameterFloat parameters, corresponding to the various knobs in the user interface:
Input
Output
Shame
Age
Hiss
Blend
Flange
The Input Trim and Output Trim controls range from –18 dB to +18 dB, all others are 0% to 100%. Internally, the parameters are simply float values between 0.0 and 1.0. There is no knob for the Flange parameter; the flange amount is set by dragging the mouse on the reels, as if you’re touching them with your finger.
The following are AudioParameterBool parameters:
Bypass
Link
Show Reels
Print-Through
The Show Reels parameter is toggled by double-clicking anywhere on the front plate of the tape recorder to hide or show the reels. This is just a UI thing, it has no effect on the sound.
Finally, there are two AudioParameterChoice parameters:
Environment
Tape Type
The parameters are managed by a separate Parameters class. None of the parameters are smoothed, so you’ll hear zipper noise when turning the knobs.
That said, The Kiss of Shame was never completely finished and so I don’t feel like I’m being untrue to the original by adding the missing bits and fixing the issues. Here are some things that can still be improved:
Don’t hardcode the sample rate to 44100 Hz.
Add prepareToPlay() and reset() methods to the DSP classes.
Replace the biquads with TPT / SVF filters.
Replace rand() with juce::Random.
Parameter smoothing.
Use oversampling on the saturation stage.
…and more…
How to use this plug-in
Choose between two distinct tape types:
S-111 – A superior reel format popular from the 50s to 70s, was the preferred reference tape for many engineers. The Kiss of Shame introduces its first digital emulation, bringing this legendary format to the digital world.
A-456 – This classic, high-output/low-noise format is a recording staple used in countless productions. While many software emulations exist, none recreate it quite like this. Unique digital recreation tactics were employed to capture its essence.
NOTE: The tape type selection button currently has no effect.
From Weathered to Weather:
Age – This knob allows the user to legislate the amount of hypothetical time the selected tape type has been subjected to the chosen „Environment“ to manipulate the severity of the corresponding effects.
Environment – Choose between several simulated storage conditions to inflict the sonic ramifications of factors such as magnetic particle instability, oxidation, lubricant loss, tape pack expansion/contraction, „vinegar syndrome“ and more upon the source material. Users can even choose a „Hurricane Sandy“ setting to access processing modeled from tape immersed and then recovered from the storm’s flood waters.
NOTE: Only the Hurricane Sandy environment is implemented.
A real-world obstacle:
Shame – The Kiss of Shame recreates the full spectrum of these factors like Drift, Wow, Flutter and Scrape-Flutter which the user can impart with the center knob. It can take your source signal from mildly colored to totally mangled.
Print-Through – Also known as „bleed-through“, this emulation captures the mechanical speed fluctuations present in analog recordings. While they posed challenges for engineers in the past, they became a hallmark of classic records.
NOTE: The print-through feature is not implemented.
Reach out and touch tape:
The Kiss of Shame is the first tape plug-in to feature animated, interactive reels that can be manipulated with a simple click or touch. This allows users to access authentic analogue tape flange in real-time, without the need for two physical tape decks, and in a fraction of the time. All parameters, including reel movements, are fully automatable, and for screen real estate optimization, the reels are collapsible and fully customizable.
TIP: To flange, drag on the reels. To collapse the reels, double-click anywhere in the UI.
Installation instructions
Mac
The Mac version of the plug-in is signed and notarized.
Download KissOfShame-Mac.zip from the Releases page.
In your Downloads folder, double-click KissOfShame-Mac.zip to unzip the file.
Copy KissOfShame.component to the folder /Library/Audio/Plug-Ins/Components
Copy KissOfShame.vst3 to the folder /Library/Audio/Plug-Ins/VST3
In your DAW, look for Infernal Love > The Kiss of Shame. You can insert this plug-in on a mono or stereo track.
If the AU version of the plug-in is not visible in your DAW, open Applications/Utilities/Terminal. Type the following and press the enter key:
killall -9 AudioComponentRegistrar
Then restart your DAW. Now the plug-in should be visible. If not, reboot your computer.
Windows
Download KissOfShame-Windows.zip from the Releases page.
In your Downloads folder, right-click KissOfShame-Windows.zip and choose Extract All… to unzip the file.
Copy KissOfShame.vst3 to the folder C:\Program Files\Common Files\VST3
In your DAW, look for Infernal Love > The Kiss of Shame. You can insert this plug-in on a mono or stereo track.