[chuck-users] MultiTap delay

Perry Cook prc at cs.princeton.edu
Tue Jan 7 23:29:23 EST 2020


The parallel multi-delay and multi-tap single delay line are identical in function.  Delays are linear so they can be factored any way you like and as long as the impulse response is the same, it’s a duck.  I use the multi delay version myself.  Wastes memory, but who cares.

Prc

Sent from my iPhone

> On Jan 7, 2020, at 9:00 AM, chuck-users-request at lists.cs.princeton.edu wrote:
> 
> Send chuck-users mailing list submissions to
>    chuck-users at lists.cs.princeton.edu
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>    https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
> or, via email, send a message with subject or body 'help' to
>    chuck-users-request at lists.cs.princeton.edu
> 
> You can reach the person managing the list at
>    chuck-users-owner at lists.cs.princeton.edu
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of chuck-users digest..."
> 
> 
> Today's Topics:
> 
>   1. multi-tap delay vs multi-delay (Michael Heuer)
>   2. Re: multi-tap delay vs multi-delay (Mario Buoninfante)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Mon, 6 Jan 2020 21:28:58 -0600
> From: Michael Heuer <heuermh at gmail.com>
> To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
> Subject: [chuck-users] multi-tap delay vs multi-delay
> Message-ID: <116AFF29-82D2-43B4-9AB2-9E0DB657A33C at gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> 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
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200106/80431b7d/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 7 Jan 2020 08:58:35 +0000
> From: Mario Buoninfante <mario.buoninfante at gmail.com>
> To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
> Subject: Re: [chuck-users] multi-tap delay vs multi-delay
> Message-ID:
>    <CAHs=M8Qg1yKpZjRXi_YM_QfPwdKjbVZ4pUnpVkq9HpCeU376+g at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> 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 at 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 at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200107/de9b4a7c/attachment-0001.html>
> 
> ------------------------------
> 
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
> 
> 
> End of chuck-users Digest, Vol 173, Issue 4
> *******************************************



More information about the chuck-users mailing list