A delay whose repeats fall on the beat. Its two times are counted in beats rather than in seconds, against the one tempo the whole instrument keeps — the same one the arpeggiator and the sequencer count against — so a phrase written at 90 repeats in the same place at 140, and moving the tempo moves the delay with it. There is no tempo knob here, and that is the point: a second tempo would be free to disagree with the first. Left and Right are the two taps, one to each side, and having a time each is what makes this a stereo effect rather than one delay heard twice — a quarter against an eighth is the cross-rhythm every dub delay is built on, and the same value on both is a delay straight up the middle. A beat is a quarter note, so a half is an eighth, a quarter is a sixteenth and a four is a whole bar. Feedback is how much of each repeat goes round again, and Damp is the lowpass it passes through on the way: bring it down and every pass is darker than the one before, which is what a tape echo did without being asked. Dry/Wet is one knob rather than two — at nothing it is only what came in, at everything only the repeats. The tail outlives the note that made it, so give this one instance for the whole patch — after the mixer, or declared shared — or each note takes its own repeats with it when it ends.
What it is made of
The Web Audio nodes inside this module and how they are wired. Fork it to open the same graph in the editor, where every part can be changed.
A patch connects to it through audio input ‘In’ and audio output ‘Out’.
‘in’ is an audio input this module declares, set to input in. Its output reaches input 0 of ‘dry’. Its output reaches input 0 of ‘dll’. Its output reaches input 0 of ‘dlr’.
‘dry’ is a gain node. Its output reaches input 0 of ‘out’.
‘mixsrc’ is a constantSource node. Its output reaches input 0 of ‘mixneg’. A patch can set its offset, through ‘Dry/Wet’.
‘mixneg’ is a waveShaper node. Its output modulates the gain of ‘dry’.
‘beat’ is a constantSource node, set to signal beat. Its output reaches input 0 of ‘lbeats’. Its output reaches input 0 of ‘rbeats’.
‘lbeats’ is a gain node. Its output modulates the delayTime of ‘dll’. A patch can set its gain, through ‘Left (beats)’.
‘rbeats’ is a gain node. Its output modulates the delayTime of ‘dlr’. A patch can set its gain, through ‘Right (beats)’.
‘dll’ is a delay node, set to maxDelayTime 12. Its output reaches input 0 of ‘dampl’.
‘dlr’ is a delay node, set to maxDelayTime 12. Its output reaches input 0 of ‘dampr’.
‘dampl’ is a biquadFilter node, set to type lowpass. Its output reaches input 0 of ‘fbl’. Its output reaches input 0 of ‘sides’. A patch can set its frequency, through ‘Damp (Hz, lower is darker)’.
‘dampr’ is a biquadFilter node, set to type lowpass. Its output reaches input 0 of ‘fbr’. Its output reaches input 1 of ‘sides’. A patch can set its frequency, through ‘Damp (Hz, lower is darker)’.
‘fbl’ is a gain node. Its output reaches input 0 of ‘dll’. A patch can set its gain, through ‘Feedback’.
‘fbr’ is a gain node. Its output reaches input 0 of ‘dlr’. A patch can set its gain, through ‘Feedback’.
‘sides’ is a channelMerger node, set to numberOfInputs 2. Its output reaches input 0 of ‘wet’.
‘wet’ is a gain node. Its output reaches input 0 of ‘out’. A patch can set its gain, through ‘Dry/Wet’.
‘out’ is an audio output this module declares, set to output out.
‘Left (beats)’ is a setting a patch can turn, from 0.0625 to 4.
‘Right (beats)’ is a setting a patch can turn, from 0.0625 to 4.
‘Feedback’ is a setting a patch can turn, from 0 to 0.95.
‘Damp (Hz, lower is darker)’ is a setting a patch can turn, from 200 to 18000.
‘Dry/Wet’ is a setting a patch can turn, from 0 to 1.
No published patch uses this module yet
When somebody publishes a patch built on it, that patch will be listed here.