Dattorro industry scheme

Last updated
Dattorro block diagram Dattorro block scheme.svg
Dattorro block diagram

The Dattorro industry scheme is a digital system used to implement a wide range of delay-based audio effects for digital signals. It was proposed by Jon Dattorro. [1] The common nature of these effects allows to produce an output signal as the linear combination of (dynamically modulated) delayed replicas of the input signal. The proposed scheme allows to implement such effects in a compact form, only using a set of three parameters to control the type of effect.

Contents

The Dattorro industry scheme is based on digital delay lines and to ensure a proper resolution in the time domain, it leverages fractional delay lines, thus avoiding discontinuities. [2]

The effects that this scheme is able to produce are: echo, chorus, vibrato, flanger, doubling, white chorus. These effects are characterized by a nominal delay, a modulating function for the delay and the depth of modulation. [3]

Delay line interpolation

Consider continuous time signal . The -delayed version of such signal is . Considering the signal in the discrte time domain (i.e., sampling it with sampling frequency at ), we obtain . The delay line can then be described in terms of the Z-transform of the discrete time signal as

.

When going back in the time domain exploiting the inverse Z-transform, this corrsponds to , where is the Dirac delta. The former equation holds for but for the implementation we need a fractional delay, meaning . In this case, interpolation is required to reconstruct the value of the signal that lies between two samples. [4] One can resort to the preferred interpolation technique, e.g., Lagrange interpolation, [5] or all-pass interpolation. [6]

Linear interpolator block diagram Linear interpolator.svg
Linear interpolator block diagram
All-pass interpolator block diagram All pass interpolator.svg
All-pass interpolator block diagram

Block diagram

The output of the delay block is noted above and below as rarely it is taken from the last sample of the tap but instead it changes dynamically. Considering the end to end structure, we can write the filter as:

Dattorro scheme

Setting the coefficients according to the desired effect results in a change of the filter topology. For example, setting the feedback to 0 results in a FIR filter, whereas, if the coefficients are set to be equal, we approximate an all-pass filter. [1]

Guitar string sound
Echo
Vibrato
Flanger
Doubling
Chorus effect
White chorus

Effects

All the effects can be obtained by changing the parameters of the Dattorro system and by setting the delay ranges according to the following table. Delay values are expressed in milliseconds. [1]

EffectOnsetNominalRange End
Vibrato 0Minimal5
Flange 0110
Chorus 1530
Doubling 1020100
Echo 5080

Vibrato

Vibrato is a small quasi-periodic change in pitch of a tone. It's more of a technique than an effect per se but can be added to any audio signal. [7] The delay is modulated with a low frequency sinusoidal function and no mix of the direct path of the signal is considered.

Chorus

The chorus is an effect which tries to emulate multiple independent voices playing in unison. This effect is made as a linear combination of the input signal (dry signal) and a dynamically delayed version of the input (wet signal). [8]

Flanging

The flanging effect originated with tape machines. This effect was created by mixing two tape machines set to play the same track but one of them is slowed down. This produces a lowering in pitch and a delay of the slow track. The process is then repeated with the other track reabsorbing the accumulated delay. [9] This effect is very similar to chorus and the main difference is due to the delay range. Chorus usually has longer delay, larger depth and lower modulating frequency. [7]

White chorus

White chorus is a modification to the standard chorus effect aimed at reducing the aberrations introduced by the forward path. The change consists in adding a negative feedback path with a different and fixed tap point in order to obtain an approximation of an all-pass configuration. [1]

Doubling

When the system is used without feedback we achieve doubling. This effect is analogous to that of the Leslie speaker, a particular kind of speaker consisting of a rotating chamber in front of the bass loudspeaker and rotating cones above the treble loudspeakers . [10]

Knob settings

EffectBlend Feedforward Feedback Modulation type D(t)
Vibrato 0.01.00.0sinusoid
Flanger 0.70710.70710.7071sinusoid
White chorus0.70711.00.7071low pass noise
Chorus 1.00.70710.0low pass noise
Doubling 0.70710.70710.0low pass noise
Echo 1.01.0<1.0none

Pseudocode

The filter can be implemented in software or hardware. In the following is the pseudocode for a software Dattorro system.

function dattorro isinput:x,                                   # input signalFs,                                  # sampling frequencydepth,# modulation depthfreq,# LFO frequencyb,                                   # blend knobff,                                  # feedforward knobfb,                                  # feedback knobmod# modulation typeoutput:y# signal with FX applieddepth_samples = depth·Fs# compute delay in samplesifmod is sinusoid                          # compute delay sequencedelay_seq = depth_samples*(1 + sin(2··freq*t))elsemod is noise         lowpass_noise = noise_gen()             # generate white noise and low-pass filter itdelay_seq = depth_samples + depth_samples·lowpass_noisefor eachn of the N samples          d_int = floor(delay_seq(n))# integer delayd_frac = delay_seq(n) - d_int           # fractional delayh0 = (d_frac - 1)·(d_frac - 2)/2# first FIR filter coefficienth1 = d_frac·(2 - d_frac)# second FIR filter coefficienth2 = d_frac/2·(d_frac - 1)# third FIR filter coefficientx_d = delay_line(d_int + 1)·h0 + delay_line(d_int + 2)·h1 + delay_line(d_int + 3)·h2# delay inputf_b = fb·x_d# delayed input feedbackdelay_line(2:L) = delay_line(1:L-1)# delay line updatedelay_line(1) = x(i) - fb_compf_f = ff·x_d# feedforward componentblend_comp = b·delay_line(1)# blend componenty(n) = ff_comp + blend_comp# compute output samplereturny

See also

Related Research Articles

Linear filters process time-varying input signals to produce output signals, subject to the constraint of linearity. In most cases these linear filters are also time invariant in which case they can be analyzed exactly using LTI system theory revealing their transfer functions in the frequency domain and their impulse responses in the time domain. Real-time implementations of such linear signal processing filters in the time domain are inevitably causal, an additional constraint on their transfer functions. An analog electronic circuit consisting only of linear components will necessarily fall in this category, as will comparable mechanical systems or digital signal processing systems containing only linear elements. Since linear time-invariant filters can be completely characterized by their response to sinusoids of different frequencies, they are sometimes known as frequency filters.

In engineering, a transfer function of a system, sub-system, or component is a mathematical function that models the system's output for each possible input. It is widely used in electronic engineering tools like circuit simulators and control systems. In simple cases, this function can be represented as a two-dimensional graph of an independent scalar input versus the dependent scalar output. Transfer functions for components are used to design and analyze systems assembled from components, particularly using the block diagram technique, in electronics and control theory.

<span class="mw-page-title-main">Digital filter</span> Device for suppressing part of a discretely-sampled signal

In signal processing, a digital filter is a system that performs mathematical operations on a sampled, discrete-time signal to reduce or enhance certain aspects of that signal. This is in contrast to the other major type of electronic filter, the analog filter, which is typically an electronic circuit operating on continuous-time analog signals.

<span class="mw-page-title-main">Wavelet</span> Function for integral Fourier-like transform

A wavelet is a wave-like oscillation with an amplitude that begins at zero, increases or decreases, and then returns to zero one or more times. Wavelets are termed a "brief oscillation". A taxonomy of wavelets has been established, based on the number and direction of its pulses. Wavelets are imbued with specific properties that make them useful for signal processing.

A low-pass filter is a filter that passes signals with a frequency lower than a selected cutoff frequency and attenuates signals with frequencies higher than the cutoff frequency. The exact frequency response of the filter depends on the filter design. The filter is sometimes called a high-cut filter, or treble-cut filter in audio applications. A low-pass filter is the complement of a high-pass filter.

An adaptive filter is a system with a linear filter that has a transfer function controlled by variable parameters and a means to adjust those parameters according to an optimization algorithm. Because of the complexity of the optimization algorithms, almost all adaptive filters are digital filters. Adaptive filters are required for some applications because some parameters of the desired processing operation are not known in advance or are changing. The closed loop adaptive filter uses feedback in the form of an error signal to refine its transfer function.

Filter design is the process of designing a signal processing filter that satisfies a set of requirements, some of which may be conflicting. The purpose is to find a realization of the filter that meets each of the requirements to a sufficient degree to make it useful.

In signal processing, a finite impulse response (FIR) filter is a filter whose impulse response is of finite duration, because it settles to zero in finite time. This is in contrast to infinite impulse response (IIR) filters, which may have internal feedback and may continue to respond indefinitely.

Infinite impulse response (IIR) is a property applying to many linear time-invariant systems that are distinguished by having an impulse response that does not become exactly zero past a certain point but continues indefinitely. This is in contrast to a finite impulse response (FIR) system, in which the impulse response does become exactly zero at times for some finite , thus being of finite duration. Common examples of linear time-invariant systems are most electronic and digital filters. Systems with this property are known as IIR systems or IIR filters.

In mathematics and signal processing, the Hilbert transform is a specific singular integral that takes a function, u(t) of a real variable and produces another function of a real variable H(u)(t). The Hilbert transform is given by the Cauchy principal value of the convolution with the function (see § Definition). The Hilbert transform has a particularly simple representation in the frequency domain: It imparts a phase shift of ±90° (π/2 radians) to every frequency component of a function, the sign of the shift depending on the sign of the frequency (see § Relationship with the Fourier transform). The Hilbert transform is important in signal processing, where it is a component of the analytic representation of a real-valued signal u(t). The Hilbert transform was first introduced by David Hilbert in this setting, to solve a special case of the Riemann–Hilbert problem for analytic functions.

<span class="mw-page-title-main">Comb filter</span> Signal processing filter

In signal processing, a comb filter is a filter implemented by adding a delayed version of a signal to itself, causing constructive and destructive interference. The frequency response of a comb filter consists of a series of regularly spaced notches in between regularly spaced peaks giving the appearance of a comb.

In digital signal processing, downsampling, compression, and decimation are terms associated with the process of resampling in a multi-rate digital signal processing system. Both downsampling and decimation can be synonymous with compression, or they can describe an entire process of bandwidth reduction (filtering) and sample-rate reduction. When the process is performed on a sequence of samples of a signal or a continuous function, it produces an approximation of the sequence that would have been obtained by sampling the signal at a lower rate.

<span class="mw-page-title-main">Filter bank</span> Tool for Digital Signal Processing

In signal processing, a filter bank is an array of bandpass filters that separates the input signal into multiple components, each one carrying a single frequency sub-band of the original signal. One application of a filter bank is a graphic equalizer, which can attenuate the components differently and recombine them into a modified version of the original signal. The process of decomposition performed by the filter bank is called analysis ; the output of analysis is referred to as a subband signal with as many subbands as there are filters in the filter bank. The reconstruction process is called synthesis, meaning reconstitution of a complete signal resulting from the filtering process.

<span class="mw-page-title-main">Delta-sigma modulation</span> Method for converting signals between digital and analog

Delta-sigma modulation is an oversampling method for encoding signals into low bit depth digital signals at a very high sample-frequency as part of the process of delta-sigma analog-to-digital converters (ADCs) and digital-to-analog converters (DACs). Delta-sigma modulation achieves high quality by utilizing a negative feedback loop during quantization to the lower bit depth that continuously corrects quantization errors and moves quantization noise to higher frequencies well above the original signal's bandwidth. Subsequent low-pass filtering for demodulation easily removes this high frequency noise and time averages to achieve high accuracy in amplitude.

The Goertzel algorithm is a technique in digital signal processing (DSP) for efficient evaluation of the individual terms of the discrete Fourier transform (DFT). It is useful in certain practical applications, such as recognition of dual-tone multi-frequency signaling (DTMF) tones produced by the push buttons of the keypad of a traditional analog telephone. The algorithm was first described by Gerald Goertzel in 1958.

In digital signal processing, a cascaded integrator–comb (CIC) is a computationally efficient class of low-pass finite impulse response (FIR) filter that chains N number of integrator and comb filter pairs to form a decimator or interpolator. In a decimating CIC, the input signal is first fed through N integrator stages, followed by a down-sampler, and then N comb stages. An interpolating CIC has the reverse order of this architecture, but with the down-sampler replaced with a zero-stuffer (up-sampler).

A digital delay line is a discrete element in a digital filter, which allows a signal to be delayed by a number of samples. Delay lines are commonly used to delay audio signals feeding loudspeakers to compensate for the speed of sound in air, and to align video signals with accompanying audio, called audio-to-video synchronization. Delay lines may compensate for electronic processing latency so that multiple signals leave a device simultaneously despite having different pathways.

Two dimensional filters have seen substantial development effort due to their importance and high applicability across several domains. In the 2-D case the situation is quite different from the 1-D case, because the multi-dimensional polynomials cannot in general be factored. This means that an arbitrary transfer function cannot generally be manipulated into a form required by a particular implementation. The input-output relationship of a 2-D IIR filter obeys a constant-coefficient linear partial difference equation from which the value of an output sample can be computed using the input samples and previously computed output samples. Because the values of the output samples are fed back, the 2-D filter, like its 1-D counterpart, can be unstable.

<span class="mw-page-title-main">Sonar signal processing</span> Underwater acoustic signal processing

Sonar systems are generally used underwater for range finding and detection. Active sonar emits an acoustic signal, or pulse of sound, into the water. The sound bounces off the target object and returns an “echo” to the sonar transducer. Unlike active sonar, passive sonar does not emit its own signal, which is an advantage for military vessels. But passive sonar cannot measure the range of an object unless it is used in conjunction with other passive listening devices. Multiple passive sonar devices must be used for triangulation of a sound source. No matter whether active sonar or passive sonar, the information included in the reflected signal can not be used without technical signal processing. To extract the useful information from the mixed signal, some steps are taken to transfer the raw acoustic data.

Multidimensional seismic data processing forms a major component of seismic profiling, a technique used in geophysical exploration. The technique itself has various applications, including mapping ocean floors, determining the structure of sediments, mapping subsurface currents and hydrocarbon exploration. Since geophysical data obtained in such techniques is a function of both space and time, multidimensional signal processing techniques may be better suited for processing such data.

References

  1. 1 2 3 4 Dattorro, Jon (1997). "Effect Design - Part 2: Delay-Line Modulation and Chorus". Journal of the Audio Engineering Society. 45 (10): 764–788.
  2. Smith, Julius O.; Lee, Nelson (June 5, 2008), "Computational Acoustic Modeling with Digital Delay", Center for Computer Research in Music and Acoustics, retrieved 2007-08-21
  3. Zolzer, Udo (2011). DAFX: Digital Audio Effects (PDF). John Wiley and Sons.
  4. Laakso; Valimaki; Karjalainen (1996). "Splitting the unit delay [FIR/all pass filters design]". IEEE Signal Processing Magazine. 13 (1): 30–60. Bibcode:1996ISPM...13...30L. doi:10.1109/79.482137.
  5. Rocchesso, Davide (2000). "Fractionally addressed delay lines". IEEE Transactions on Speech and Audio Processing. 8 (6): 717–727. arXiv: cs/0005022 . doi:10.1109/89.876310. S2CID   9626440.
  6. Hacthabiboglu, H.; Gunel, B.; Kondoz, A.M. (2006). "Interpolated Allpass Fractional-Delay Filters Using Root Displacement". 2006 IEEE International Conference on Acoustics Speed and Signal Processing Proceedings. Vol. 3. IEEE. pp. III–864–III-867. doi:10.1109/ICASSP.2006.1660791. ISBN   978-1-4244-0469-8. S2CID   234579.
  7. 1 2 McPherson, Joshua D. Reiss, Andrew (2015-01-13). Audio Effects: Theory, Implementation and Application. Boca Raton: CRC Press. doi:10.1201/b17593. ISBN   978-0-429-09723-2.{{cite book}}: CS1 maint: multiple names: authors list (link)
  8. Smith, Julius O. "Chorus effect".
  9. Smith, Julius O. "Flanging".
  10. Henricksen, Clifford A. "Unearthing The Mysteries Of The Leslie Cabinet".

Further reading