I'm planning to update the Delay module to make it more versatile, and I thought I'd kick the idea around the forums for comment. Piper984 was interested in separating the wet and dry versions of the delay, and posted a mod to the basic delay here: http://www.openstomp.com/phpbb/viewtopic.php?f=3&t=53. IndyGuitarist has also contacted me expressing interest in separating the wet/dry paths so that various effects (tone shaping, chorus, etc.) could be applied to the wet signal only. On top of that, I recall someone (Piper?) suggesting that tap tempo would be a useful feature.
I'm looking to put all the pieces together and make a versatile Delay that can be adapted for all kinds of interesting patch configurations. Here's a block diagram of what I'm thinking:
IN: Audio Input
OUT: Audio Output (with or without the Dry component, per DRY INCLUDE setting
FEEDBACK: The delay feedback level
WET LEVEL: An attenuation of the wet signal level.
DELAY: The delay time (unless overridden by tap data. If tap is used, sets the initial rate before changed by tapping).
TAP: Input for the tap rate. Hook to a button to input the tempo by tapping with your foot.
TAP RATE: Sets a multiplier for the tap rate. I'm thinking a range of 1 to 8 or something. If you set it to 3, for example, and tap on the start of every measure, you'll get 3 beats per measure as a delay interval (i.e. a delay of 1/3 a measure). Now that I say it out loud, BEATS PER MEASURE might be a better name for it.
TAP BLINK: Blinks the tap rate. Hook it to a LED for a visual indication of the delay "Tempo".
I was originally thinking to provide both a WET and a DRY out, but I realized that if you wanted to put an effect on the WET and not the DRY then you could do that at the Patch level anyway by mixing the original signal (the input to this module) with the wet output (post effects). Providing a DRY output doesn't help at all, because you still have to do a mixing function outside anyway, and the "DRY" output wouldn't really do anything (it would just be a null pass through, so who not just use the original input signal instead and save the extra useless output socket?).
Piper984's delay mod used a crossover mix control, in that the "mix" would set the wet/dry mix anywhere from 100%dry/0%wet to 0%dry/100%wet. As drawn my mix control (WET LEVEL) is an attenuation of the wet signal, so when DRY INCLUDE is TRUE it would give you anywhere from 50%dry/50%wet to 100%/0%wet. Now that I talk it through out loud (so to speak) a crossover mixer seems more versatile. Actually, now that I think about it, I could get rid of the "DRY INCLUDE" altogether since setting the crossover mixer to 0%dry/100%wet would effectively do the same thing. Hmm. What you lose though is the ability to attenuate the wet signal if you are splitting the signal chain to add effects to the wet and mix back the dry post-effects. In that case you'd be forced to set the crossover to 100% wet (to keep dry signal out of the effects chain) and do any attenuation in a separate attenuation module. Perhaps a good solution would be to retain the DRY INCLUDE control, and write the gain block so that it functions as a wet/dry crossover mix when DRY INCLUDE is TRUE, and as a wet attenuation when DRY INCLUDE is false.
To help make the new DELAY module versatile in the patch environment, I'm going to put together a UTILITY module which includes at least one mixer (probably a few) to facilitate the recombination of the wet/dry signal paths and a bunch of other utility functions which may also be useful including at least one gain block, and some logic blocks for AND'ing/OR'ing control signals.
Got ideas for making the new Delay even better? Got ideas for useful things to include in the UTILITY module? See holes in my plan? Let me know!
