Using a Breath Controller


Tutorial home




Breath controllers can make wind instrument patches come alive.  Although the G2 doesn’t have a built-in breath controller jack, it can receive MIDI control signals, opening up other possibilities.




Breath Controllers


Yamaha WX5 Wind Controller:  A standalone controller that uses woodwind fingering.  It transmits MIDI signals, and no additional interface is required.  But you must know woodwind fingering to play it.



Yamaha BC3A Breath Controller:  A breath controller with a variable-voltage output.  Additional hardware is required to convert the voltage to a MIDI data stream (see some interface boxes below).





BC3A Interface Boxes


A BC3A breath controller requires an interface box to convert the output voltage into a MIDI signal.  Some possibilities include:


MIDI Solutions Breath Controller:  A MIDI merge box that contains a BC3A input, a MIDI input, and a MIDI output.  It converts the voltage from a BC3A into a MIDI signal, and then merges that with the MIDI input signal.



Kurzweil ExpressionMate:  A very flexible controller that contains inputs for a BC3A, a foot pedal, a foot switch, and a ribbon controller.  All signals can be converted to MIDI signals.  Unfortunately, the ExpressionMate is no longer being manufactured.





A Basic Breath-Controlled Patch


Below is a basic breath-controlled patch.  A breath controller (MIDI CC#2) is assigned to morph group 8.  Then, that morph group is assigned to control the value of a Constant Module, which controls the amount of air directed into the pipe.  As the breath controller is played, the constant can vary from 0 to 64.





Making It More Playable


That patch has a serious problem:  it’s difficult to play.  The reason is that the range of air pressure values where good-sounding oscillation occurs is quite narrow: from about 41 to 44 Clavia units.  It’s too difficult to keep the air pressure within this range.


Below is an improvement.  A limiter keeps the input from rising above 43 units, so that the instrument won’t saturate.  Also, a gain booster helps us reach that magic value of 41 without having to blow too hard.





Making It More Responsive


That was a big improvement over the first patch, but there’s one remaining drawback:  the G2 automatically smoothes incoming MIDI control data, so that very fast attacks are difficult to achieve.  Although this smoothing cannot be turned off, it can be bypassed, by using the MIDI Control Receive Module.


The MIDI Control Receive Module gives us direct access to incoming MIDI control data, with no smoothing applied.  In fact, this module is so fast that we’ll need to add some of our own smoothing.  The patch below shows how it can be done.





This patch is similar to the above, but no morph group is required.  Instead, we’ll get our breath controller data directly from MIDI CC#2, the control number commonly assigned to a breath controller.  If your breath controller outputs its signal on CC#7 (MIDI volume), just change the Ctrl value from 2 to 7.  Notice that a smoothing Glide Module has been added, so that we can adjust the amount of smoothing applied to the input signal.




Controlling Multiple Parameters At Once


On the Yamaha VL1, the breath controller can be programmed to control many parameters at once.  We’d like to do that too, and it’s easy on the G2:  we’ll just combine both of the control methods described above:  we’ll use the MIDI Control Module to control air pressure (where quick responsiveness is required), and use morph group 8 to control additional parameters.  One breath controller can do it all at once.


The patch below demonstrates this:  not only does the breath controller create air pressure using the MIDI Control Receive Module, it also controls volume and EQ using morph group 8.





Adding chiff


We can always add chiff like we did before, using the keyboard velocity.  But a wind player adds chiff by generating an explosive attack.  Can we detect such an a attack on a breath controller?


Yes, we can, using a differentiator.  A differentiator measures the rate of change of a signal.  During a sudden attack, the input changes faster.  A differentiator can detect this and produce a pulse during the attack.  And the more sudden the attack, the greater the pulse.


In electronic music, differentiators are often implemented using highpass filters:  if you send a step waveform through a highpass filter, you’ll get a pulse at every step.  We’ll take advantage of that, and use those pulses as a control signal to a VCA.  The VCA will gate a Noise Oscillator, like the earlier chiff circuit.  Below is a patch that demonstrates this.





The chiff circuit is in purple.  Here’s a description of the process, step by step:


  1. The breath control signal first goes through a Glide module.  This smoothes the attack transients in the breath controller.  If this is missing, or set to a small value, like it is in the patch, the instrument will chiff on almost every note.
  2. The signal then goes through a highpass filter.  This is what generates a pulse when the input changes rapidly.  The frequency of the filter determines the length of the pulse.  Because the frequency of the filter must be very low, we’ll tune the filter to its minimum value, and then control the frequency with a separate Constant module.
  3. Not only will the highpass filter generate a positive pulse during sudden attacks, it will also generate a negative pulse during sudden releases.  We don’t want that, so will remove the negative pulses with a Rectifier module.
  4. The pulses tend to have sudden attacks.  We’ll use an additional Glide module to smooth them out.
  5. This signal will then be used to gate a Noise Oscillator.  From here on, the circuit is the same as the keyboard-driven chiff circuit.