Designing the Orinj multitap delay

By mic on 8/2/2009

Orinj has several types of delay effects: regular delay, echo, chorus, bass chorus, bouncing echo, and reverb.

Regular delay

The Orinj regular delay takes the incoming signal and repeats it once with a certain delay in time and with a change in amplitude. The output of this effect is the combined original signal and the new repeated signal. The original signal is called the "dry" signal. The repeated signal is called the "wet" signal. The amount of time delay between the two is the "delay". The change in amplitude between the two signals is called the "decay" as the repeated signal usually has lower amplitude than the original one. The decay is also the difference between the dry and wet signal and can also be called the "dry / wet mix" of the delay effect.

The Orinj regular delay is the simplest form of delay. Orinj makes the effect a bit more interesting by allowing independent amounts of delay and decay of the left and right channels of a stereo signal and by allowing independent inversion of polarity (flipping the sound wave flipped upside-down) of the signal of each channel. The simplest practical form of delay is just that: a single repetition with a certain amount of delay and a certain amount of decay. You can use such an effect to simulate a normal delay when mixing, or to simulate the popular and annoying short slap-back delay.

A simple delay cannot simulate all types of delay effects. It is not sufficient, for example, for a flanger. A flanger may have a slowly changing amount of delay and decay ("delay and decay sweeps") and may also have "feedback" of the wet signal back into the delay effect. The simple Orinj delay does none of these things.


The only difference between the Orinj echo and the Orinj regular delay is that the delayed signal in the echo can be repeated more than once with ever decreasing amplitude. The echo is just a delay with some "feedback". The wet signal of the delay is fed back through the delay and so another repetition of the signal, "twice" delayed and decayed, is created. This repetition can itself be fed back through the delay and so on, simulating an echo. All repetitions in the Orinj echo are created by the same delay and so the amount of time delay between one repetition and the next is the same for all repetitions. Similarly, the amount of decay from one repetition to the next is the same for all repetitions.

The Orinj echo similarly has independent delay, decay, and polarity controls for each channel. One way or another though, it is simply a regular delay with feedback.


The Orinj chorus is more than a single delay. It has several delayed signals and those are unrelated. The Orinj user can control the number of delays and the maximum and minimum amount of delay between the original signal and delayed signals, but the initial amount of delay for each of those signals is actually generated randomly somewhere between the minimum and maximum limit. In addition, the amount of delay for each delayed signal varies gradually at a rate that the user can control. The gradual variation in the time of delay creates a "sweeping delay".

The Orinj chorus does its job, but it lacks two things. First, there is no feedback. Second, there is no decay. The delayed signal has the same amplitude as the original signal. At the end of the day the Orinj chorus is just a series of delays all working in parallel with delay sweeps and without feedback and decay or amplitude sweeps.

Bouncing echo

The Orinj bouncing echo is similar to the chorus. It has several delays working in parallel each of which has an independent delay and decay amounts. It may seem that the amounts of delay and decay between signal repetitions of the Orinj bouncing echo are related, but they actually are not. The design of Orinj makes it easy for the user to create a relationship between signal repetitions but it also allows the user to break this relationship at each repetition.

Thus, the Orinj bouncing echo is a series of delays working in parallel with independent delays and decays. The effect has no feedback or sweeps.

Reverbs and bass chorus

Practical reverbs are a bit outside of the scope of this post. Reverbs generally feature a large number of delay repetitions with feedback, but also have coloration. The reverb coloration accentuates different signal frequencies in the wet mix signal and must be simulated with an equalizer. Practical reverbs are then not composed of delay effects only. The Orinj bass chorus is similar. It is a chorus in which frequencies lower than some frequency limit are filtered out of the wet mix signal. A bass chorus similarly needs and equalizer.

Designing a multitap delay

Orinj has a simple regular delay, an echo (a regular delay with feedback), a chorus (a series of regular delays with delay sweeps and without decay or amplitude sweeps), and a bouncing echo (a series of regular delays with decay and without feedback or sweeps). None of the above effects incorporates all available features. Sometimes we can get the features that we want by properly sequencing effects, such as putting a chorus on the wet signal of an echo. It would be nice though to have all features in the same place. It would make it easier for the user to implement infinitely many delay effect variations and, at the same time, it would be easier for Orinj to compute the effect using less computer resources.

To design the complex delay described above we can do the following.

Step 1: Take a sequence of delays which process the signal sequentially. The input to the second delay is the output of the first delay; the input to the third delay is the output of the second delay, and so on. The final output is the output of the last delay. (This differs from the Orinj chorus and bouncing echo where delays work in parallel and where the output of one delay is never an input to the other.)

Step 2: We "tap" the output of each of the delays and add the "tapped" signal to the final output signal. Thus, the output of each delay will follow two paths: 1) to the output signal, and 2) to the next delay. The "taps" in the delay design create the name "multitap" delay.

Step 3: We allow feedback of the wet mix output of the delays. In practice, this is usually done at the last step and only the output of the last delay is fed back into the chain input. It is possible that if feedback is taken from all delays the delay chain becomes unstable, but it does not hurt to try.

Step 4: We allow for amplitude and delay sweeps with gradual variation in the amount of delay and decay within each delay.

Step 5: We allow for polarity inversions at each delay unit.

This would be the design of the new Orinj multi-tap delay. The only problem now is how to present it visually in Orinj so that it is easiest to use.

authors: mic


Copyright 2006 by Kaliopa Publishing, LLC