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:

 

 

 

 

 

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.

 

 

 

 

 

 

Step by step

 

When the musician presses a note on the keyboard:

 

  1. In the “Keyboard Pulse” section, the gate signal goes high.  This gate is converted to a short pulse by the Kbd Pulse modules.

 

  1. 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.

 

  1. 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:

 

  1. This value of -2 goes to the S&H latch, but proceeds no further, since the latch hasn’t been triggered.

 

  1. This value of -2 goes to the “Button Pulse” section.  Here, it gets rectified to a +2, and then turned into a short pulse.

 

  1. 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.

 

  1. 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.

 

  1. 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:

 

  1. This value of 0 goes to the S&H latch, but proceeds no further, since the latch hasn’t been triggered.

 

  1. 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.

 

  1. 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.