I'm looking for info that would help me to build a Tape Saturation process.

I'm working with the WebAudio API. The API provides a number of DSP nodes that perform basic processes, such as a Convolver node and a WaveShaper node. The WaveShaper seems to suggest it is designed for distortion effects (http://www.w3.org/TR/webaudio/#WaveShaperNode-section). But tape saturation would seem to me more than a simple mapping of input to output values.

What are the principal processes I should be modelling? Can anyone point me in the right direction?

  • 2
    $\begingroup$ Seems like tape saturation is mainly an instantaneous, symmetric, smooth nonlinearity applied at the waveform level. There's a brief discussion in Zoelzer's DAFx book: books.google.com/books?id=DX-mRhkJL74C&pg=PT159 $\endgroup$ – dpwe Jul 28 '14 at 17:30
  • 2
    $\begingroup$ Apart from the actual saturation, there's magnetic hysteresis, reel speed in conjunction with magnetic density and tape width which translates to a certain high frequency response, and interactions of the magnetic medium with itself. Consumer tapes also have noise reduction mechanisms and pre/post equalization that considerably shape the sound. Good tape simulations only appeared on the market very recently, and getting the details right is not trivial. I think studying the physical components of a tape recorder together with some actual experiments probably gives you the best way foward. $\endgroup$ – Jazzmaniac Jul 28 '14 at 20:47
  • $\begingroup$ Thanks. (@Jazzmaniac +1 for mentioning magnetic hysteresis, I hadn't looked into that before. I'm less interested in modelling noise reduction systems.) From other reading it sounds like the saturation part is largely even-order harmonic distortion, which I can attack with a waveshaper and filters. $\endgroup$ – stephband Jul 29 '14 at 18:40

Saturation can be modeled to first order as a symmetrical distortion of the signal, but it also has history dependence--hence the term hysteresis in describing magnetic response to a field that is applied. Bias (an AC field applied to the tape at the same time as the signal to be recorded) linearizes the curve and reduces hysteresis effects by eradicating the memory of the medium. If your objective is to simulate the sound of a tape recorder, you should consider hysteresis effects, and the fact that high frequency signals are self-biasing, so that they effectively saturate at a different (lower) level than low-frequency ones. (This was the insight behind Dolby HX processing, which really made cassette tapes sound a lot better.)

  • $\begingroup$ So I have a waveshaper with a number of transform functions, input and output filters to shape the frequency range to which I apply the transform. That has got me pretty close already, and I'm able to get some fairly neat tube-like saturation as well as some wacky effects. It seems that modelling hysteresis requires some buffer memory, because you need to know previous sample values. So in WebAudio land I'm looking at cracking open a ScriptProcessorNode. Am I barking up the right tree? $\endgroup$ – stephband Jul 30 '14 at 10:39
  • $\begingroup$ I really don't know what Javascript offers as far as generating hysteresis, but an infinite impulse response (IIR) filter of low order will do. It can also be programmed as a tapped delay line, or thought of as an analog LFSR. One or two lines of code, that's it. $\endgroup$ – girolamous Jul 31 '14 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.