Programming A Synth For Wind Control (Part 1 of 2)
Programming A Synth For Wind Control (Part 1 of 2)
So…, you just returned from a musician’s yard sale where you scored a MIDI gadget
that looks like Darth Vader’s clarinet. You plug it into your keyboard synth, select
your favorite patch, and then risk a toot. In exchange, you get the musical equivalent
of a bucking bronco, or maybe nothing at all.
No, you probably were not taken by the purveyor of yardly treasures. You’ve simply
discovered that the stock patches in most keyboard and modular synthesizers are not
particularly well-suited to wind controllers. In this article, we’ll look at why, as well
as a bit of theory for bringing harmony to your wind controller and sound generator.
A MIDI stream can contain many types of data. We’ll be concerned with two: “one-
shot” messages, such as those occurring when a key or patch change button is
pressed, and “continuous controller” messages, which comprise a stream of values
corresponding to the position of a sensor or control (e.g., a pitch bend or modulation
wheel).
In addition, patches often contain tone modifiers such as LFO, filter, or key-follow
curves that determine how the sound plays out during key-down. These
modifications occur programmatically over time, but some can also be tied to a
continuous controller. The MIDI stream may include “active sense” messages, which
www.windworksdesign.com/blog/programming-a-synth-for-wind-control-part-1-of-2/ 1/3
10/11/2019 Programming a Synth for Wind Control (part 1 of 2) | WindWorks Design/Blog
simply confirm that the connection is intact between a separate keyboard controller
and external synth module. For the purposes of patch control, you can ignore active
sense.
A MIDI blabbermouth
A typical wind controller (“WC” here out) is a different animal. When you blow into
the mouthpiece, the WC sends a constant stream of continuous controller data for as
long as you maintain breath pressure. The continuous controller is usually “Breath”
(CC02), but it can be aftertouch and/or volume (CC07); it depends on the wind
controller. This relative glut of MIDI data is the chief reason it is difficult to sequence
a WC; many sequencers can’t process that much data in real time.
For the sake of discussion, let’s assume the WC is a Yamaha WX7, and it is set up to
send breath data (“CC02” for the rest of this article). When you blow into the
mouthpiece, the WX7 sends a note-on message that turns on the fingered note with
an attack velocity dependant on initial breath pressure, and it pumps out a
continuous stream of CC02 data that tracks the intensity of breath pressure. The
WX7 also sends pitch bend values, which correspond to how hard you squeeze the
mouthpiece “reed.” This plastic tab is there to act as a miniature pitch bend wheel —
it does not vibrate. There is also a pitch bend rocker located near the spot where the
right thumb rests.
Arguably, the wind controller’s greatest asset is the ability to control patch volume
smoothly and subtly to produce sounds that, compared to a keyboard, are more
expressive and organic. While you have just one continuous controller and pitch
bend to work with, you can apply them simultaneously to volume and several other
patch parameters, such as filter cut-off, resonance, LFO pitch and depth, effects, and
more. It all depends on the synth architecture and where the breath-related CC and
pitch bend can be assigned.
Right now is a good time for the standard “YMMV” disclaimer. The following
information is derived from working with several generations of Roland sample
players and a Yamaha wind controller set up to send CC02 in response to breath
pressure. Roland’s patch architecture is organized as four “tones,” each of which can
www.windworksdesign.com/blog/programming-a-synth-for-wind-control-part-1-of-2/ 2/3
10/11/2019 Programming a Synth for Wind Control (part 1 of 2) | WindWorks Design/Blog
1. Disable the tone’s sensitivity to velocity. The note-on message’s attack velocity
component can affect initial volume, or any other parameter the synth’s
architecture associates with velocity. It is near impossible to consistently attack
successive notes with the same velocity using a wind controller, effectively
making velocity-related effects unpredictable. The fix is to remove velocity
dependence. Later, you can reapply velocity sensing to selectively control patch
behaviors.
2. Initially, set pitch, filter, and amplifier envelopes to zero. These time-variant
elements determine how the tone “mutates” while it sounds. They are extremely
useful for patches intended for the keyboard, but can have limited value for a
wind controller. Like velocity sensitivity, you might later decide to apply an
envelope to a tone to shape the tone at the same time it is being controlled by
CC02.
3. Assign CC02 to the tone’s level and set CC02’s effect to maximum.
4. Set the sustain level of the tone’s amplifier envelope to maximum. This enables
CC02 to produce the maximum possible volume as determined by other patch
and/or wind controller settings.
These are the basics for creating a wind-friendly patch. In Part 2, we’ll look at
applying these guidelines more specifically to the Roland JV-1010 synthesizer
module. The JV-1010 is a member of the JV 1010/1080/2080 series of modules circa
early 1990’s, which remain popular. Although out of production, they are usually
available used on eBay. The JV-1010’s half-rack footprint is a convenient addition to
the wind synthesist’s arsenal. It is small, convenient to transport and use, its
instrument waveforms are reasonably convincing, and its architecture is well suited
to creating breath-responsive patches.
www.windworksdesign.com/blog/programming-a-synth-for-wind-control-part-1-of-2/ 3/3