3.4.2.6 Reverb

You can simulate a "reverb" effect if the signal feedback gets quieter and quieter:


3.4.2.7 Texture

Or you can create a texture:

patches/3-4-2-7-texture.pd

You have to be careful that the feedback doesn't 'explode', i.e., that its volume doesn't increase exponentially.


3.4.2.8 Comb filter

You can build a comb filter using audio delay. The idea is that you add the delay to the original signal. This results in amplifications and cancellations at regular intervals, which gives the spectrum the appearance of a comb:

patches/3-4-2-8-combfilter.pd


3.4.2.9 Octave doubler

If you know the frequency of a signal's fundamental, you can construct an octave doubler as follows: Let's take a wave...

...and this signal delayed by half the length of one period...

...adding them together gives you 0 (= cancellation). If you delay a periodic signal by the half the duration of one period and add it to the original, the fundamental tone (and all odd partials) is cancelled out. That would look like this:

But it doesn't quite work like that. You have to remember that Pd processes all audio data in blocks of 64 samples (unless you change the setting), because it is more efficient than individually processing each sample (cf.3.1.1.3.2). With the above patch, you'd get a delay of 1,136 milliseconds, or 50 samples. You could alleviate this problem by using a buffer with a one-block delay (64 samples = 1,451 ms) to read the original; the same goes for the delay offset:

patches/3-4-2-9-oktavedoubler.pd


3.4.2.10 Karplus-Strong algorithm

A special use of looping is the Karplus-Strong algorithm. It is one of the first examples of physical modeling synthesis, a process that attempts to replicate what occurs when a physical material vibrates. In our example, the physical model is a plucked string. When it is plucked, a string first vibrates chaotically then adjusts itself to the length of the string. It also loses energy, i.e., the vibration dies away. This can be reconstructed mathematically by taking an excerpt of white noise and playing it back periodically again and again by writing it to and reading it from a buffer:

patches/3-4-2-10-karplus-strong1.pd

The string effect can be enhanced if the material you start with vibrates more and more 'softly'. This works with by calculating the average: the average of every two samples is taken and this result is written to the buffer in place of the original values. The vibration becomes less and less 'angular'. Use the object "z~" (Pd-extended) to set the delay to one sample; enter the number of samples as the argument:

patches/3-4-2-10-karplus-strong2.pd

The tone is different every time. This is because "noise~" produces random numbers, which are naturally different every time. We could add the calculation for the resulting frequencies:

patches/3-4-2-10-karplus-strong3.pd


results matching ""

    No results matching ""