Deep dive into the ThreeTap Delay, part 3
Last updated
Last updated
We actually finished most of our deep dive into the details of the ThreeTap delay in the first two parts. I just wanted to add a few final remarks about common ways of using the delay.
The Feedback input is intended to be used with a "loop" pair of blocks from the "Loop" menu. The "Loop" menu is all by itself because it is a special case that drops in two blocks. While it is possible to connect a delay tap output directly back to the feedback input, due to the way the model sorting algorithm works, it may work and it may not. The feedback loop uses a couple instructions and a register to make sure that it works.
If you delete a loop, you have to delete the input and output blocks separately. Occasionally, if you are dropping in more than one loop, the wrong number gets assigned to one of them somehow, and then it doesn't work. Let me know if this happens to you because I'm not sure why it happens.
Notice that the Feedback loop Input has a gain control. This is linear and goes from -1.9 to 1.9. This is slightly less than the maximum range of -2.0 to 1.999-something that you can get from a single SOF (scale/offset) statement. The Feedback Gain maximum setting is logarithmic and doesn't allow phase inversion. I'm not convinced that the phase inversion does much except when dealing with really short delay times.
Lots of people want to make a modulated delay like the Electro-Harmonix Memory Man. The first challenge that will be obvious is that the real Memory Man has 6 knobs while the FV-1 only has 3. If you built your board with an analog blend knob that's one fewer missing, but there are still 2 missing knobs compared to the real thing.
In any case, you might be tempted to put a scaled LFO into one of the delay time inputs on this block, but that's probably a bad idea. The memory access method used by the RMPA instruction doesn't smoothly interpolate between memory locations when you are changing the delay time. If you just connect a pot straight in and start adjusting the delay time, you'll get glitches and clicks. Same thing with an LFO.
Here's a discussion of this in the Spin Knowledge Base. This technique actually reduces the resolution of the delay time control to avoid pitch bending. I don't have anything that quite does that in SpinCAD Designer.
Julius O. Smith has described this phenomenon here in a fairly mathematical way.
Here's JOS' section talking about modulated delay lines. This is a great general reference area for musical DSP stuff including examples in C. In fact, I suggest you spend an hour just browsing through there. It's a gold mine of information.
The FV-1 CHO instructions implement linear interpolation with 256 intermediate points between each real delay sample. So, if you want to have a modulated delay, stick a Chorus block on the end of a ThreeTap delay. There are several ways to do this.
If you put the chorus before the delay block, then each delay tap will be fed the same signal, ultimately, but because of the delay time spacing it is expected that there will be phase mismatch (therefore chorusing) between the dry signal and a modulated delay signal. Real chorusing of course will only happen when you sustain a note, otherwise the delayed notes will be mixing with a dry note of a different pitch, or a rest, or a pick noise, or whatever.
If you want to emulate the "vibrato" mode of the E-HMM, then just send the signal through the chorus block and adjust everything to taste. If you want "chorus" mode, then you'll want to blend the dry signal in some ratio to the modulated delay signal. I suppose the chorus blocks should really be called "vibrato" blocks, but I don't care enough at the moment.
For stereo effects, you can phase invert the modulated delay prior to mixing with dry on one side. Or, you can use two chorus blocks (there are two Sin/Cos LFOs after all). You can also use the 4-voice chorus and use any/all of the voices mixed together in whatever way you like. I think you could get sounds that the Memory Man can only dream of, but you do still have that 3-knob limitation.
One of the things I like to see when working with delays is whether I can turn the feedback all the way up to keep a wash of sound going without it getting out of control.
I've linked to a SpinCAD Bank file with 8 different patches using the ThreeTap delay. These are just to give you ideas about what is possible rather than necessarily being an end in themselves. I've put some modulations and filters in various places. Hit CTRL-I (CMD-I on Mac) to show the "Information panel". Here's where I put some abbreviated thoughts about what's going on.
Patch 0: Here's a basic digital delay with feedback and level and delay time controls.
Patch 1: Added fixed one pole high-pass and low-pass filters to the feedback loop. Note that your first delay will be full bandwidth and the rolloff will only occur on the repeats.
Patch 2: A pre-delay vibrato has been added. The Two-Stage block along with a Scale/offset turns up the vibrato rate past 50% on the delay time knob. Because the Chorus (Vibrato) block uses a bit of delay RAM, I have to back down the max delay time of the ThreeTap block to avoid going over. In this case I backed way down to give a shorter maximum delay time. You don't always have to go to 1 second.
Patch 3: Vibrato block moved to post-delay position and dry path added into a 2:1 mixer to make it into a chorus. With the chorus inside the feedback loop, the repeats get more and more chorused the more times they pass through. Check the input gains on the 2:1 mixer, they are at -6 dB each to prevent clipping and manage the loop gain.
Patch 4: I added an LPF pre-delay to bring down the initial brightness. The two other taps are clustered near the first one (95% and 93% of the total delay time) and mixed and spread out left and right via pair of 3:1 mixers. The vibrato goes direct on one side and through a mixer to make it chorus on the other side. Why? I think you may be picking up on the answer.
Patch 5: 1 tap goes through a chorus (using LFO 0), the other through a flanger (using LFO 1). The delay times are now spread out 33% - 66% - 100%. Yeah, if I was concerned about details I would have made that 67%. The first half of the Two-Stage is now used to adjust the speed of the flanger in the first 50% of the delay time knob's rotation. Why? You'll stop asking soon.
Patch 6: Here I take the two LFO values, add them together through a control mixer, then put that into a Tremolizer on tap 3. Long story short, this means that the third delay tap is not coming through 100% of the time. Sometimes when the patches start getting a bit busy, it's better to use a subtractive approach.
Patch 7: for the last one, I took out all of the modulation and added some filtering. I also took the feedback tap from the shortest tap rather than the longest tap as I usually do. Is this a useful approach? I don't know. It does give a strange delay behavior that you're probably not used to. It's also possible, by setting the tap values to unusual places to create completely un-rhythmical, bizarre delay patterns. It's OK, really. Just erase it and move on.
You may also want to be aware of one of my design philosophies: ALWAYS START WITH TOO MUCH. You can always turn it down. Using the simulator is OK but it doesn't replace playing the patch, especially when it involves long delays or level controlled effects. So, some if not all of the patches in this bank offer "too much" of one thing or another. See if you can figure out how to adjust it more to your taste. Ask a question! It's allowed!
There are so many things you can do with a delay (slapback, basic echo, quasi-reverb, complete droney mush)! Have fun. Let me know if you come up with something fresh!