Trills and Slurs
Tutorial home
Trills and slurs are common features in music written for
bowed strings, and it would be nice to include those features in our
model. We’ll do trills first, since
they’re simpler, and then slurs.
Adding Trills
A trill is just a rapid, fluttering alternation of two
notes. They are usually limited to one
or two semitones.
In a monophonic patch, a trill can be played directly on the
keyboard. Our string model is
polyphonic, so any attempt to play a trill results in the attack and release
being heard on each note. Those attacks
and releases are what we’re trying to get away from.
Below is a patch that plays trills using two of the G2’s
front panel buttons.
The intervals of the trills are specified in semitones, using the knobs
above the buttons. These buttons and
knobs are mapped to the two Momentary Constant modules in the top left of the
patch. The glide time of the trill is
mapped to a third panel knob. For the
sake of simplicity, the bow model itself has been replaced by a simple patch
containing an oscillator, an envelope generator, and a VCA.
Adding Slurs
A slur is just a smooth change in pitch from one note to
another. In a monophonic patch, slurs are
usually implemented using portamento. Once
again, our string model is polyphonic, so that technique can’t be used.
What we desire is this:
- Some
buttons on the G2 front panel that will trigger a slur to another note
when they’re pressed.
- The amount
of the slur, in semitones, to be specified by the knob above each button.
- An
additional knob that specifies the speed, or time, of the slur.
- Once a
button has been pressed, and the slur performed, we want to be able to
release the button without the
pitch returning to the original note.
To accomplish this, we’ll use a logic module called a “set-reset
flip-flop”. It’s a mouthful, but the
module isn’t very complicated. It has
two inputs, labeled “Set” and “Reset”, and an output. When a logic pulse appears at the Set input,
the output goes high. When the Set input
falls back to zero, the output remains high, until a pulse appears at the Reset
input. So, it’s basically a kind of
latch, where the Set input latches the output high, and the Reset input latches
the output low.
The patch is below.
We have four slur buttons, each one with its own programmable
interval. There’s a glide module that
controls the speed of the slur. Once
again, the audio portion of the patch has been simplified down to the bare
minimum.
How does it work?
It’s not as complicated as it looks. Nevertheless, there are some little tricks in
there, so we’ll go through it step by step.
- A slur
is triggered by pressing a momentary pushbutton on one of the four Constant
modules, at the top of the patch.
The value assigned to the knob is the amount of the pitch change
that’s sent to the oscillator. The
fourth button, for example, will slur up
12 semitones. All four buttons are
summed together for simplicity.
- This
change in pitch travels downward to the “Latch & Glide” section. This section does two things: it contains a glide module that
specifies the speed of the slur, and it contains a sample/hold latch. This latch is important, as it prevents
the slur from falling back to the original pitch after the button is
released.
- The
three sections on the left, “Button Pulse”, “Logic Stuff”, and “Keyboard
Pulse”, are all part of a circuit that controls the speed of the slur. It makes sure that the slur doesn’t fall
back to the original pitch after the button is released. Also, it immediately resets the pitch
change to zero when the note is first started.
Step by step
When the musician presses a note on the keyboard:
- In the
“Keyboard Pulse” section, the gate signal goes high. This gate is converted to a short pulse
by the Kbd Pulse modules.
- This
pulse is used to reset the flip-flop.
The output of the flip-flop goes low. This turns off the VCA, setting any
previous pitch change to zero. It
also turns off the Glide module, so the pitch change to zero is immediate.
- So
now, any previous pitch change due to a pre-existing slur has been immediately
forced to zero.
When the musician presses the top-most Slur pushbutton, with
a value of -2:
- This value
of -2 goes to the S&H latch, but proceeds no further, since the latch
hasn’t been triggered.
- This value
of -2 goes to the “Button Pulse” section.
Here, it gets rectified to a +2, and then turned into a short
pulse.
- This
short pulse goes to the “Logic Stuff” section. Here, the pulse is delayed by a very
short time, and then triggers the S&H latch. This lets the original -2 signal proceed
to the VCA. The delay is so that we
know that the -2 signal has reached the S&H latch before the pulse
does.
- This
short pulse also turns on the flip-flop.
The flip-flop’s output enables the glide in the Glide module. It also turns on the VCA, after a tiny
delay, so that the -2 signal proceeds to the Glide module. The reason for the tiny delay is so that
we know that the Glide is enabled before the -2 signal reaches it.
- The
output of the Glide module sweeps from 0 to -2. This is applied to the oscillator’s
pitch input, so that the pitch slurs down 2 semitones.
When the musician releases the top-most Slur pushbutton,
transmitting a value of zero:
- This value
of 0 goes to the S&H latch, but proceeds no further, since the latch
hasn’t been triggered.
- This value
of 0 goes to the “Button Pulse” section.
It proceeds no further, since a value of zero doesn’t trigger the
pulse module.
- Since
the S&H latch doesn’t get triggered, its output remains at -2. So, releasing the button has no effect
on the oscillator’s pitch.