I wrote before about the newly designed Orinj multitap delay, but that post was just a general description of what delay effects look like, what parameters they have, and what purpose they serve. As promised, here is the actual design of the Orinj multitap delay.
The input signal feeds into each of several delay units in parallel. Each delay unit is a "simple delay" (I use the words "simple delay" to describe a delay that produces one single repetition of the signal with a constant delay in time and a constant decay in amplitude). Only two delay units are shown above, but one can use as many as needed. I have for now limited Orinj to ten delay units, but when the effect is implemented and tested we will see how this all works out. Each delay unit produces a delayed and decayed signal that is: 1) fed into the next delay unit; 2) tapped for output (hence, the name "multitap delay"); and 3) feeds back into the input signal. Finally, the input signal also feeds directly into the output representing the dry original signal to be mixed with the wet processed signal.
Multitap delays that I have seen are designed as in the picture below. Let us call this the "common multitap delay".
There are a couple of differences between the two pictures. First, the Orinj multitap delay allows the input signal to feed directly into each delay unit in parallel. The common multitap delay feeds the input signal only into the first delay unit and the second delay unit obtains its input only from the first delay unit. Second, the Orinj multitap delay allows each delay unit to feed back into the input, whereas in the common multitap delay the feedback comes only from the last delay unit.
To allow the Orinj multitap delay to work similarly to the common multitap delay, we need to allow for changes in the input gain. Turning off the direct input signal to each of the delay units except for the first one will allow the Orinj multitap delay to work similarly to the common one. We can also allow for changes to the feedback gain on each of the delay units. Turning off the feedback signal from all units except for the last one would similarly allow the Orinj multitap delay to work as the common one.
Each delay unit should obviously be equipped with parameters to change the amount of delay and the amount of decay in the delayed signal. To allow maximum flexibility, rather than having one decay amount for each delay unit we will allow three: decay of the feed into the next delay; decay of the tap into output; and decay of the feedback (the last one is already mentioned in the previous paragraph).
As usual, each channel (e.g., left and right) should be treated separately.
The Orinj multitap delay would then look something like the picture below, where the small triangles represent the amounts of decay (in other words "gain").
Note the gain box at the very bottom in the middle of the direct input / output line. This gain box would adjust the dry / wet mix of the effect. I split the input signal in two lines to ensure that this dry / wet mix gain adjustment happens before any feedback signal or tapped signal is fed into the output. In principle, the effect could have gone without this dry / wet mix adjustment as the wet signal is already affected by all other gain / decay controls, but there could be too many of those other gains. Having a dedicated dry / wet mix just makes things easier for the user.
The "gate" box above is something to limit the number of feedback loops. Feedback from a simple delay creates an echo as it multiplies the delay repetitions with ever decreasing amplitude and an ever increasing delay in time. In theory, the number of repetitions is infinite if left unchecked. In digital music they would be limited naturally, as the amplitudes of digital samples can take on finite integer number values. Once the feedback decays enough it becomes practically zero in digital music. I find it useful to have an option that limits the number of feedback repetitions anyway. The harder way of doing that would be to include a gate on the feedback signal which will shut off signal that falls under a certain level. The easier and more practical way would be to include a simple control that says "limit the repetitions to, say, 5" or whatever else the user wants.
This is still a pretty simple construction in the sense that not all possible delay parameters would be provided for. For example, there are no delay or decay sweeps, but we probably do not need any. Sweeps are useful in effects such as a chorus where the delay amounts are very small. Here they will not even be noticeable. This may be an overcomplicated construction in the sense that there are too many decay / gain controls. Such construction though provides some good flexibility to the user. We can play with that delay later to decide whether these controls are really too many or perhaps too few.