From d2e863d8a3b4a7bd12fc892f4d5668065ed13b57 Mon Sep 17 00:00:00 2001 From: Albert Graef Date: Mon, 30 Sep 2024 02:30:05 +0200 Subject: [PATCH] Add slop~ html documentation from vanilla. --- pd/doc/8.topics/slop-compander-patch.png | Bin 0 -> 18380 bytes pd/doc/8.topics/slop-peak-meter-graph.png | Bin 0 -> 5471 bytes pd/doc/8.topics/slop-peak-meter-patch.png | Bin 0 -> 5876 bytes pd/doc/8.topics/slop-slew-limit.png | Bin 0 -> 8899 bytes pd/doc/8.topics/slop-slew-limiting-patch.png | Bin 0 -> 7979 bytes pd/doc/8.topics/slop-tilde-1-curves.png | Bin 0 -> 7004 bytes pd/doc/8.topics/slop-tilde.htm | 70 +++++++++++++++++++ 7 files changed, 70 insertions(+) create mode 100644 pd/doc/8.topics/slop-compander-patch.png create mode 100644 pd/doc/8.topics/slop-peak-meter-graph.png create mode 100644 pd/doc/8.topics/slop-peak-meter-patch.png create mode 100644 pd/doc/8.topics/slop-slew-limit.png create mode 100644 pd/doc/8.topics/slop-slew-limiting-patch.png create mode 100644 pd/doc/8.topics/slop-tilde-1-curves.png create mode 100644 pd/doc/8.topics/slop-tilde.htm diff --git a/pd/doc/8.topics/slop-compander-patch.png b/pd/doc/8.topics/slop-compander-patch.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef5fca4bc8701f1490f94ea4a1d49df4fb7e4a8 GIT binary patch literal 18380 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 literal 0 HcmV?d00001 diff --git a/pd/doc/8.topics/slop-peak-meter-graph.png b/pd/doc/8.topics/slop-peak-meter-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..0429ea1b41d24e9634e4f5ec4a9856a3343b0c9b GIT binary patch literal 5471 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 literal 0 HcmV?d00001 diff --git a/pd/doc/8.topics/slop-slew-limit.png b/pd/doc/8.topics/slop-slew-limit.png new file mode 100644 index 0000000000000000000000000000000000000000..fc532d1ecc205abfbbcf15ad69d954bfaf885dd0 GIT binary patch literal 8899 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 Q8ruL}O?_02hHd130d;e^p#T5? literal 0 HcmV?d00001 diff --git a/pd/doc/8.topics/slop-tilde-1-curves.png b/pd/doc/8.topics/slop-tilde-1-curves.png new file mode 100644 index 0000000000000000000000000000000000000000..903a95da4aa1a60114d2ee5631aa69c464ba7ab7 GIT binary patch literal 7004 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 literal 0 HcmV?d00001 diff --git a/pd/doc/8.topics/slop-tilde.htm b/pd/doc/8.topics/slop-tilde.htm new file mode 100644 index 000000000..de05c92ba --- /dev/null +++ b/pd/doc/8.topics/slop-tilde.htm @@ -0,0 +1,70 @@ + + + + + + + slop-tilde + + + + +

Nonlinear filtering using the [slop~] slew-limiting low-pass filter

+

Tasks such as envelope following, dynamics processing, and soft saturation often rely on low-pass filtering in which the cutoff frequency of the filter (which you can alternatively think of as its reaction speed) varies according to whether the input is rising, stable, or falling. For example, a VU meter design might call for an envelope follower whose output can rise quickly but then drops off more slowly. To make this we could use a low-pass filter to make a moving average of the instantaneous signal level, but the moving average should react faster on rising inputs than on falling ones.

+

The simplest type of digital low-pass filter can be understood as a moving average:

+


y[n] = y[n − 1] + k ⋅ (x[n] − y[n − 1])

+

where 0 ≤ k ≤ 1 is an averaging factor, usually much closer to zero than one. When the value of k is small enough (less than 1/2, say), it is approximately equal to the filter’s rolloff frequency in units of radians per sample. (The theory behind this is explained in Theory and Techniques of Electronic Music, section 8.3, “designing filters”).

+

For our purposes we’ll rewrite this equation as:

+


y[n] − y[n − 1] = f(x[n] − y[n − 1])

+

where the function f is linear:

+


f(x) = k ⋅ x

+

In words, this equation says, “increment your output by k times the distance you have to travel to reach the goal x[n]”. (So far, we’ve described the action of the linear [lop~] object.) In the [slop~] object, this linear function is replaced by a nonlinear one with three segments, one for an interval ( − n, p) containing zero, and two others joining this one at the input values  − n and p. The three segments have slopes equal to kn, k, and kp for the negative, middle, and positive regions:

+
+response curve for [slop~]
response curve for [slop~]
+
+

Rationale. In general, k could depend on both the previous output y[n − 1] and on the current input x. This would require that the invoking patch somehow specify a function of two variables, a feat for which Pd is ill suited. In [slop~] we make the simplifying assumption that adding an offset to both the filter’s state and its input should result in adding the same offset to the output; that is, the filter should be translation-invariant. (As will be seen below, through a bit of skulduggery we can still make translation-dependent effects such as soft saturation). One could also ask why we don’t allow the function f to refer to a stored array instead of restricting it to a 5-parameter family of piecewise linear functions. The reason for choosing the approach taken is that it is often desirable to modulate the parameters at audio rates, and that would be difficult if we used an array.

+

The following four examples are demonstrated in subpatches of the [slop~] help file. (If your browser is set up to open “.pd” files using Pure Data then you can open it with this link; alternatively you can create a [slop~] object in a patch and get help for it, or navigate to it using Pd’s help browser.)

+

example: slew limiter

+

The output signal y[n] has a time-varying slope equal to (y[n] − y[n − 1])/τ, where τ denotes the elapsed time between two samples, equal to one over the sample rate R. The slope can be rewritten as R ⋅ (y[n] − y[n − 1]). Suppose we wish to create an output signal whose slope is limited between two values  − sn and sp (so sn and sp, both greater than zero, are the maximum downward and upward slope). This implies that we should limit the difference between successive outputs, y[n] − y[n − 1] to lie between  − sn/R and sp/R. We therefore increment the output by a quantity x[n] − y[n − 1] as long as that increment lies between those two limits. Beyond those limits the response speed should be zero so that the increment doesn’t vary past those limits. To do this we set the five filter coefficients to [slop~] to k = 1, n = sn/R, p = sp/R, and kn = kp = 0. Since the three speed inputs to [slop~] are in units of Hz, we can set k = 1 by giving a linear-response frequency higher than the sample rate. (In practice, “1e9”, meaning a billion, will do fine for any sample rate we expect to encounter.)

+

A patch to do this is shown here:

+
+slew-limiting patch from [slop~] help file
slew-limiting patch from [slop~] help file
+
+

A sample input and output are shown here:

+
+slew-limiter input (at top) and its output (bottom)
slew-limiter input (at top) and its output (bottom)
+
+

The input is a square pulse of unit height lasting 0.7 msec, at a sample rate of 48000. The upward maximum slope is set to 9000. For the first 5 samples of the pulse, the upward increment is limited to 9000/48000 units. At the sixth sample of the pulse the input is within that limit of the previous output, and so the increment becomes exactly what is needed to make the output reach the input in value.

+

Note: slew limiting is useful for conditioning time-varting controls to avoid discontinuities. It’s not so useful as a way to generate triangle waves from rectangular pulse trains, because the rising and falling edges are quantized to an integer sample number, making audible (and ugly) non-periodicities.

+

example: peak meter

+

To make a peak meter, we need an estimate of how strongly a signal has peaked in the recent past. This can be done using [slop~] as shown:

+
+instant-rise, controlled-decay envelope follower
instant-rise, controlled-decay envelope follower
+
+

Here the [abs~] object takes the input’s absolute value (known in electronics as “rectification”) and the [slop~] object is set to have no linear region at all, but a rise region with an infinite (1e9) cutoff (so that it follows a rise in the input instantly), and a decay region with a controllable cutoff frequency that sets the speed of the decay. Here is the response to the same rectangular pulse input as the example above:

+
+response to a square pulse
response to a square pulse
+
+

(In order to keep the same time scale, 100 samples, as above we have here set the decay speed to 1000 Hz, but for an envelope follower this will normally be between 0.1 and 5 Hz. Lower values will result in a less jittery output when an audio signal is input, but higher ones will cause the output to react faster to falling signal levels.) The result is in linear amplitude units, and can be converted to decibels for metering as shown in the help patch.

+

using [slop~] in a compander-limiter

+

Audio engineers make frequent use of dynamics processors such as companders (compressors/expanders) and limiters. Companders are most often used to compress the dynamic range of an audio signal to make it less likely that the level falls outside a useful range, but are also sometimes configured to expand dynamic range below a chosen threshold, so that they act as noise gates. Limiters are often used with instruments such as percussion and guitars whose attacks can have much higher amplitude than the body of the note. To hear the body one turns the gain up, but then one has to limit the attack amplitude in order to avoid distortion.

+

There is no one standard design for a dynamics processor, and few makers of modern ones have divulged their secrets, which might take the form of nonlinear transfer functions, carefully tuned filter parameters, and perhaps many other possible fudge factors. There is also a whole industry in which software designers try to emulate analog hardware dynamics processors. There are also stereo compressors (for mastering CDs and LPs) and multi-band ones. Engineers frequently allow one signal to control the level of a different one, in a technique popularly known as “side chaining”. If one is working from recorded tracks (as opposed to live sound), it’s possible to look ahead in the recorded sound to reduce the distortion that inevitably occurs when a limiter is hit too hard. And so on.

+

Here we’ll describe a fairly straightforward design based on the instant-attack envelope follower described in the previous example. (This is somewhat atypical; the implications of this approach are discussed a bit later.) Once the envelope is determined (and converted to decibels), a table lookup gives the desired dynamic, and the necessary gain is computed and applied. Thus:

+
+compander using instant-rise envelope follower
compander using instant-rise envelope follower
+
+

Since the envelope follower has an unlimited rise speed, it will report rises in the signal amplitude without delay. Its output is thus always at least equal to the absolute value of the input. A dynamic curve is then used to compute the desired gain - this gain (in decibels) is equal to the difference between the curve value and the envelope follower output itself. When this gain is applied the resulting signal level is at most what is shown on the curve (equal to it when the signal and the envelope follower agree exactly).

+

In effect, rising edges of the input signal, when they push outside the currently measured envelope, will be soft-clipped according to the dynamic curve. When the signal drops in amplitude the envelope follower relaxes at a speed decided by the user, and this is heard as a gradual change in gain. (Specifically, a decrease in gain if we are compressing and/or limiting.)

+

Because the dynamic curve acts as a saturation curve when the signal level is rising, in a situation when we are using it as a limiter (so that the curve is flat at the right-hand end), it is often desirable to make the dynamic curve level off smoothly. In this patch there are three parameters to configure limiting: the limit itself, a boost in DB to apply before limiting, and a “knee” which is the interval, in decibels, over which the dynamic curve bends from the 45-degree angle at low levels to the flat region where we reach the limit.

+

in addition there is a compander function controlled by two other parameters, “thresh” (a threshold, in decibels, below which companding is to be done) and the percentage, normally between 0 and 200, by which the dynamic range should be altered below that threshold. The “speed” parameter is the speed, in tenths of a Hz., at which the envelope follower output decays.

+

using [slop~] to remove signal jitter

+

By setting the linear cutoff frequency to zero and the linear region to an interval of length a (either by setting n = 0, p = 1 or n = p = a/2), and then setting kn = kp = inf , we get a filter that allows its input to jitter over a range of a units before the filter responds to it. This is sometimes useful for quieting down noisy control sources (such as envelope followers or physical sensors). This is analogous to a loose physical linkage.

+ +