Adding Bow Force

 

Tutorial home

 

 

 

The musician has control of three main parameters when drawing a bow across a string:

 

  1. The location on the string (the bow position).
  2. The speed of the movement (the bow velocity).
  3. The downward force applied to the string (the bow force).

 

Our patches have already modeled the first two parameters.  In this page, we’ll add the third:  bow force.

 

 

 

How to add bow force

 

We can model bow force by increasing the size of the bow table, in both height and width.  Both should be increased by the same factor, so that the overall shape of the bow table is unchanged.

 

Increasing the height is easy: we can just multiply the output by a value greater than one.  But it’s not obvious how to increase the width.  It turns out that what we want to do is divide the bow table’s input by the same value that we’re multiplying the output by.  In other words, if we’re multiplying the output by 2, we want to divide the input by 2.  Below is a diagram describing what we want to accomplish.

 

 

Now, the G2 doesn’t appear to have a module that divides one number by another.  But it has one that we can press into service:  the Level Scaler module.  A level scaler module has a Note input that is used as a control voltage.  It controls the gain of a VCA, which has a signal input and signal output.  If we set the slope of a level scaler module to +6dB/octave, the VCA’s input will be multiplied by 2 every time the Note input increases by 12 semitones.  Conversely, if we set the slope of a level scaler module to -6dB/octave, the VCA’s input will be divided by 2 every time the Note input decreases by 12 semitones. 

 

So, the Level Scaler can be used as either a multiplier or divider, depending on how we set its slope.

 

 

 

Bow velocity and bow force are related

 

One caveat should be mentioned now.  If the bow force is increased too much, the bow will not slide across the string smoothly unless the velocity is also increased.  So, when we increase the bow force, we should increase the velocity, as well.

 

 

 

A working patch

 

Below is a patch that implements bow force.  The bow force can be controlled from two sources:  a panel knob, and an envelope generator.  The picture doesn’t show the entire patch.

 

 

 

 

How does it work?

 

The bow table is now bracketed by two Level Scaler modules, one before the bow table, and one after it.  The first one has a negative slope, and acts as a divider.  The second has a positive slope, and acts as a multiplier.  The Note inputs are tied together, and this is where the bow force is applied.  If this value is zero, the Level Scaler modules don’t do anything at all.  If the value is positive, the bow table grows larger, and if the value is negative, the bow table grows smaller.

 

The bow force signal also goes to the Note input of a third Level Scaler, which is used to increase the bow velocity along with the bow force.

 

The bow force can be adjusted in two ways:  a Constant module that’s linked to a panel knob, and an envelope generator.

 

Notice that the values of the panel knob and the envelope generator range from 0 to 64, but that the actual value presented to the Note inputs of the Level Scalers ranges from -48 to +48.  This is done via a limiter, an offset, and a multiplier.