Evolution of the Delay module

Discussions about programming and implementing Coyote-1 effect modules

Evolution of the Delay module

Postby eric_admin » Thu Feb 26, 2009 7:19 pm

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:
Delay diagram.jpg
Delay diagram.jpg (110.18 KiB) Viewed 1722 times


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!
User avatar
eric_admin
Site Admin
 
Posts: 121
Joined: Wed Aug 13, 2008 6:10 pm

Re: Evolution of the Delay module

Postby bachmann » Mon Mar 02, 2009 4:18 am

Hi,

this is great! Some really interesting possibilites.. If you don't mind me mentioning a couple things from my experience as a live musician:

Tap tempo: If you create the option to choose the tap rate, I think it'd make sense to have it follow musical terms. All the boss pedals (dd-5, dd-6 & dd-7) have set options for quarter notes, dotted eights, triplets, etc. You just tap in the bpm and it does the rest. Does that make sense? In a live environment this is definitely the easiest way to handle delay..

Along with that.. Would it be possible to use the aux input to use an external foot pedal to tap in the delay time? This would especially make sense in combination with more traditional guitar pedals, cause you can hook up the same tap tempo pedal to source multiple effect pedals.
bachmann
 
Posts: 4
Joined: Mon Jan 05, 2009 12:01 am

Re: Evolution of the Delay module

Postby _s_ » Wed Apr 22, 2009 4:07 pm

this is great to see delay being developed already

i'm really into delays but i don't know jack about this subject yet so don't put a lot of weight in my input i don't know whats realistic but conceptually I think mixing wet/dry and feedback would be functions that would be reused all over the place so i would seperate them into their own utilities or at least keep that in mind when coding them that they'll be reused, also a levels function would be reused as well as mix, i'd like to adjust the effect level and mix ratio both

for the application of effects to the delayed signal I would block out routing for an "effects loop" to apply effects to the delay signal only

with the effects loop you could plugin modulations, band filter and chorus typically, or tape delay effects (smear, wow, flutter, hiss) or tone controls but those things would be in seperate modules

for routing you might want to include stereo out to accomodate "ping pong" delay where delays are sent to left and right alternately, with a spread control for the amount of ping pong, mix to center or mix toward total left right seperation

when you get around to the gui, my favorite control in delays has been two methods:

1) [beat sync speed mode] beat sync control (speed knob) as a beat signature that fixes to whole note, quarter note, eigth note, dotted, triplets, etc. displayed as note signatures or beats per minute (bpm)
2) [time mode] speed knob as continous time control in milleseconds (ms) which will add an icon when the time happens to land on standard beat signature as well, might require some math because this depends on the set tempo

another thing I'll bring up here to think about which is probably best as it's own module, is "ducking" attenuation on the wet signal, a threshold for when delay is attenuated by an adjustable level so you can play a melody with some clarity and have the effect in the background, until you stop playing at which point the delay kicks into the normal level

i don't know if there's going to be a way in the future to send tap tempo signals or midi clocks to this box but if there is you would want to include controls for ignore tap tempo or what signal to assign tap to

again, i have no idea the scope of all that but those are the concepts i'd keep in mind so you don't wind up recoding as much in the future when these things are requested
_s_
 
Posts: 14
Joined: Wed Apr 22, 2009 3:33 am

Re: Evolution of the Delay module

Postby eric_admin » Thu Apr 23, 2009 5:14 am

Hey S,

I like the idea of a ducking module. I've been working on a general purpose utility Effect Module which combines lots of relatively computation-light but frequently useful utility functions. I'll have to play around with some ducking code and see if I can cram that into the Utility module as well.
User avatar
eric_admin
Site Admin
 
Posts: 121
Joined: Wed Aug 13, 2008 6:10 pm


Return to Effect Module Programming

Who is online

Users browsing this forum: No registered users and 1 guest

cron