Hi Michael,

I'm not sure what would be the difference with your implementation, but I'd do something like that, where basically the various delays are in series:

Impulse impulse => dac;
impulse => DelayL tap_1 => dac.left;
tap_1 => DelayL tap_2 => dac.right;
tap_1 => Gain fback_1 => tap_1;
tap_2 => Gain fback_2 => tap_1;

0.2 => fback_1.gain => fback_2.gain; // this needs to be <= (1 / nr_of_delay_lines)
second => tap_1.max => tap_2.max;
400::ms => dur d_1;
600::ms => dur d_2; // this should always be bigger than d_1
tap_1.delay(d_1);
tap_2.delay(d_2 - d_1);

for(0 => int c; c < 5; c++)
{
    impulse.next(1);
    <<< "NEXT" >>>;
    second => now;
}
5::second => now;

I think the idea with multitap delays is to have one delay line and multiple taps placed in that delay line.
I don't think in ChucK there are UGens that allow you to do that, so probably the closest implementation to that would be the one I wrote above, where delay lines are in series.
Of course there are more elegant way to then implement this :)

Cheers,
Mario

On Tue, 7 Jan 2020 at 03:29, Michael Heuer <heuermh@gmail.com> wrote:
Hello,

Does anyone have an implementation of a multi-tap delay in ChucK?  I use what may better be called a multi-delay, where all multiple delays with different delay lengths are arranged in parallel

    /*

      inlet --> _pre --> _echo1 --> _post --> _boost --> wet
                ^  |                 ^ |
                |  |                 | |
                |  +----> _echo2 ----+ |
                |  |                 | |
                |  +----> _echo3 ----+ |
                |  |                 | |
                |  +----> _echo4 ----+ |
                |                      |
                +------- feedback -----+
     */

I can't get my head around it exactly, but it feels like this is different than a true multi-tap delay, where one has a loop of the longest delay time and then multiple taps within that delay time.

I've been wanting lately to do something similar to these

"Volante takes this into account with a Spacing control that’s adjustable between Even, Triplet, Golden Ratio (for dense, non-overlapping echoes), and Silver Ratio (for non-overlapping repeats biased toward the quarter note). And the Spacing control is continuously variable, allowing you to morph between its settings in real time."

and

"3.3.3 Taps

The number of delay taps, from 1 to 64. The Taps control affects the Tap Delay Block in the signal flow diagram.


3.3.5 Spread

The rhythmic spacing of the Taps. More negative values will group taps towards the beginning, for a ”slowing-down” feeling. More positive values will group taps towards the end for a ”speeding-up” delay sound. Specifically, a 0 value will result in constant spacing, while values between 0 and +/- 50 have linearly increasing/decreasing tap spacing, and values between +/- 51 and +/- 100 have exponentially increasing/decreasing tap spacing. The Spread control affects the Tap Delay Block in the signal flow diagram."

Thanks in advance!

   michael
_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users