
78
•
Click the disclosure triangle on the Default interface in the JazzEditor Project Browser
to see the objects in the patch. Then click on the disclosure triangles of each of the two
objects resfader and trig to see what’s lurking inside of them. You may want to
expand the width of the Project Browser to see everything.
We’ve added a variable called rezzo to the resfader object. Rezzo has a checkbox next to it,
indicating that we transmit this variable to the computer when it changes. We do not
transmit the x variable of the fader (its 0 to 1 value), but as you can see, the rezzo variable
uses the value of x and transforms it:
rezzo = 0.79 + (pow(resfader.x, 1.3) * .18)
Using this technique, we can make a fader that transmits values in any range we want.
As you can see, rezzo also uses a math function called pow(). The pow() function takes
two arguments—the first is a base value and the second is an exponent. For example,
pow(2,3) is 2 raised to the third power, or 8.
In the rezzo case, we’re using pow() with an exponent between 1 and 2 to “non-linearize”
the resonance fader. The output value will still be between 0 and 1, but the values will
curve upward in a convex shape. That means that more of the fader will be devoted to
controlling the lower end of the variable’s range. As the exponent gets closer to 2, the
curve is more like a square in most all of the values are close to 0. An exponent closer to 1
is more linear.
Non-linear scaling is used everywhere in music synthesis—in many cases,
to create the perceptual illusion of aural “linearity.” For example, our
ability to distinguish numerical differences in frequency decreases as
frequency increases: the difference between 440 and 460 Hz is much more
obvious than the difference between 5000 and 5020 Hz, yet the two
frequencies are 20 Hz apart in both cases.