Description of the Elect-RO-Clar 
                Derived From Various letters to WindList
                        c. Bouvard Hosticka, 1996


A. Key Work Mechanics.

     I built the ERC on the carcass of an old clarinet. The first one was
a worn-out, old, hard-rubber one. When that proved to work well but the
sloppiness of the keywork became a hinderance, I went to the pawn shop
and selected a nice, not-too-used plastic Artly as the carcass for the next
one which remains the current one.

     Clarinets have 7 open holes (6 with rings), 14 pads controlled
directly by keys, and a few intonation correction holes controlled by the
rings. The total number of switches normally would be 21 (intonation
holes are not needed for electronics as such but can be used for ring
pressure as described in an addendum) but due to my sloppy habits, I
subdivided the hole for the first-finger-left-hand into two switches. {To
get the upper register on a regular clarinet you often have to half-hole
this one (lower part covered) and I drag on it when hitting the a-key at
the break (upper part covered) thus to properly get it to respond on the
ERC, I have to have both halves covered.} thus there are a total of 22
tone hole switches needed on the ERC, The below discussion describes
the various ways that these are sensed.

      All of the keywork is grounded, including the rings. To do this,
several holes are drilled through the wall to bring fine wire (silver plated
wire-wrap wire) through the bore to the posts holding the keywork. The
wires are then soldered to the posts (the ones carrying the springs
whenever possible). 

     For the seven open finger holes, I made thin wall brass bushings
that are pressed (after a wire is attached) into the hole. These are
shaped on the outside like a small balance weight, the handle of which is
used as a soldering lug which caries the wire to the inside of the bore.
The bushings are hollow and the net effect is to make the hole slightly
smaller than normal but conductive. For the thumb hole, I just soldered
onto the existing bushing. The wires go to switch amplifiers in the bell
made from CMOS gates that sense a small leakage current from the
bushing through the finger and to the grounded keywork. I cut the
bushing for the first-finger-left-hand in two and cast the halves in epoxy
such that the original circular dimension was maintained but the saw
kerf was filled with insulating epoxy. This made the double contact
mentioned above. I use 10 meg-ohm pull-ups at five volts so the current
is about one-half microamp. This value works well for me since I have
generally moist skin but other have had to use hand cream on occasion
to get the switches to work reliably. Other values of resistance could be
chosen to change the sensitivity. 

     For the padded holes the ERC has two different switch designs,
each of which works well for their particular application. 
     The original design (still used for the short-lever, sprung closed
keys) consists of a gold plated piece of felt as a pad with a gold drain
wire connecting the pad to the cup as the ground side of the switch and
a sewing needle across the tone hole as the line contact. The felt is the
normal key pad felt reglued to the backing card of the pad. (Normally
the felt is held on with the bladder skin.) To plate the felt, I spread a
VERY thin layer of RTV on a card, press the felt onto the card to pick
up the RTV, then press the felt onto a sheet of gold leaf a few times
until no further gold sticks. Then I buff up the gold with a bit of pallet
leather. The drain wire is soldered (using Sn-2 or indium based solder,
normal solder will dissolve the gold) to the key cup in two places so that
it traverses the pad.
     This pad makes contact with a sewing needle (Dritz-betweens)
broken to length with the point stuck into one side of the tone hole and
the body of the needle sprung in a shallow arch over the hole to the
opposite side of the hole. The signal wire is soldered to the needle and
passes into the bore of the instrument. It is interesting to note the
difference between Japanese needles and English needles. The Japanese
needles that I tried were very brittle and would break every time I
attempted to put them in place. The English steel has just the right
elasticity and can be installed without bending permanently (plastic
deformation) or breaking. This switch is very good, quiet, and
bounceless. The only problem is, that as a switch, when it is not closed it
is open (i.e. no hysteresis). Since it opens as soon as the player begins to
press the key, but closes only after the key has moved through its entire
swing (for the normally closed holes as are all but two on a clarinet),
there is an uncomfortable difference between the feeling of opening and
closing a key. This is compensated by incorporating a small delay in the
buffer amplifier to the switch-open response with no corresponding delay
in the switch-closed response. An experimentally determined delay of 11
ms feels just right. This timing was confirmed by playing trills into a
sequencer and checking the time that each note of the trill is on.
     An alternate design used on the side trill keys and the two
normally open keys at the bottom consists of a Hall-effect-switches set
into the tone hole (these look like small transistors but are magnetic-
switch IC's) and a rubber magnet under a piece of pallet leather as the
pad. The magnet is trimmed to give the proper feel to the key. The
advantage of this design is its hysteresis. The switch-on point has the
pad lower than the switch-off point so no delays are needed in the
amplifier. The keys do not have a faster feel because the pad must still
move a certain distance to actuate the switch going in either direction.
They feel better than the other design for the two open keys at the
bottom and the slop associated with the LONG trill keys is
accommodated in the hysteresis. The time spent trimming the magnets
to be just right and fitting the sensor in the hole is considerable.


B. Keywork Electronics:

     There are 22 individual switches/contacts on the ERC for the
keywork plus a special right hand thumb stud that has various
programmable functions which is independent of the keywork and is not
decoded. Two pairs of switches (Eb side and cross keys, and the divided
contact for the first finger left hand, All note names refer to the lowest
register.) are reduced by gates so there are ONLY 20 signals needing to
be decoded. This is one million permutations of which about 128 are
"used" on a clarinet to produce about 45 different semitone notes. At this
point in the design process, I really began to appreciate the repeating
octave scheme. If you have only 14 keys (as on a WX-7?) then you only
have to deal with 16-thousand combinations which can easily fit on a
single memory chip with room to spare for other things such as the
controlling program.... 

     An important consideration in working out the fingerings is that
the length of a resonant tube is largely defined by the placement of the
first open hole (note the qualifier "largely", I do not want to get into a
discussion of cross fingerings and shadings possible with a real tube).
Thus in practice, the instrument does not care about whether the lower
holes are covered or not when playing a note higher on the tube.
Electronics do not understand the concept of 'Don't Care' (also not quite
true, programmable logic arrays do have explicit 'don't care' states. I
seriously considered using PLA's for decoding for that reason, but the
expense of the programmer made it un-attractive).

     To decode the keywork, I use a pair of Erasable Programmable
Read Only Memory chips (EPROM) each of which has 64-thousand
addresses. But you will notice that this only gives 128-thousand out of
the million possible key combinations. By dividing the keywork between
the two EPROMS with the first-finger-left-hand, I can stagger the inputs
such that three of the four lowest holes (B, C#, G#) are not used on the
EPROM which is selected when the first-finger-left is open and the two
upper side trill keys along with the A-key at the break are not used on
the EPROM which is selected when the first-finger-left is closed. Now we
have all million combinations covered. The keys NOT on a particular
EPROM are 'don't cares' for that EPROM. The break down for the
twenty signals is: 13 signals go to BOTH EPROMS, 3 go to EPROM 0
only, 3 go to EPROM 1 only, and 1 signal selects which EPROM is
active.

     There is no way that I could specify the key combinations for a
million combinations even if all but 128-thousand are implied 'don't
cares'. What I did was make a table of all of the standard fingerings
from the Klose (miscalled Boehm) system, some alternates discover in
the course of playing Clarinet for 30 years, and a few borrowed from
German systems. Then, with a great deal of experimentation on a real
clarinet to decide which keys are essential for defining a note, I worked
out a HUGE table. The playable notes of a clarinet go down the table
(often several lines for a given note due to alternate fingerings) and the
20 keys go across the table. The values of 1's (closed), 0's (open), or x's
(don't care) fill in the matrix defining the fingerings.  
     If you have been following along to this point, You will recognize
that this is really two tables, one for each EPROM. I wrote a program to
run on my PC that fills in all the possible permutations of the 'don't
care' states, assigns a note number to each fingering, checks for conflicts
between notes, and generates the appropriate file for blasting the
EPROM. If there are any conflicts reported by the program, they must
be manually resolved. Such conflicts indicate that what I thought was
the minimum essential fingering for a note in fact needs more definition.
After all conflicts are resolved, the EPROMS are blasted and tested. This
is where the fun begins. To this day, I have not found all of the key
combinations on the instrument. I have a special "test mode" where if I
hit an undefined combination, it generates a high MIDI note to signal its
presence. Normally an undefined combination is ignored in legato and
silent in staccato. Early in the development, I found a lot of
combinations that were wrong, undefined, or otherwise did not feel
right. By now I've gone through 15 revisions of the EPROMS and things
feel pretty good although now and again, I will come across a dud, and
note it down to be eventually corrected.

     The output of the EPROMs is a number from 1 to about 45 with 1
being the lowest E on a clarinet and counting up from there. This
number forms the lowest six bits of an eight bit word. The highest bit
hold the state of the special performance right-thumb touch stud. This
eight bit word is sent via a self re-triggering serial port (UART) at
standard MIDI speed (31.25 kbaud) every 1.5 ms to the brain box where
it is further processed. 

     There is room in this scheme to include quarter tone fingerings if I
had the patients to work out the tables (semitones were hard enough).
Even multiphonics are a possibility as well as special trill keys as on a
WX. As far as quarter tones go, when I need them now, I can use the
thumb stud to shift to a different MIDI channel where I can have a
multi-timbral synthesizer set to play the same patch a quarter tone
sharp (or flat) thus the right-thumb stud becomes a universal quarter
tone shifter. I have never gotten the hang of multiphonics on an
acoustical clarinet so have not spent the time to develop them on the
ERC. The decision not too  map chords or incorporate WX style trill keys
s a sign of my basic (musical) conservative state of mind.

     The electronics on the stick consists of the switch amps, the serial
port, and the EPROMs for the keywork, plus the instrument amps,
current regulators, and dc-dc converters necessary for the Mouthpiece
transducers. These are mounted on two circular circuit boards (one for
digital and one for analog signals) in the rather inelegant, oversized bell.




C. Sensing Key Pattern Changes

     Glitches between notes played legatoed can occur because the
computer servicing the wind controller is far faster than the person
playing it. Thus YOU might think that you put three fingers down
simultaneously to go from g to d but the COMPUTER may have read it
as three separate events. How to convince the computer that you meant
only one event is a bit of a problem. Acoustic instruments take time to
go from one stable oscillation mode to the next or the intermediate
fingering may not define a stable mode so the intermediate notes may
not ever sound.
     What I do on the Elect-RO-Clar is read the keywork status every
1.5 milliseconds (ms) and compare it to the current note being played. If
there is any CHANGE in the note defined by the status of the keywork,
a timer is started and the keywork is ignored until the timer runs out.
This time is referred to as the blank time. Continuous control
information is still processed and the note off flag is accepted during this
blank time. At the end of the blank time, the keywork is read again. If it
is the same as the note playing before the blank time started, nothing
happens; but if it is different, a new note-on MIDI message is generated
(followed by a note-off for the old note). Staccato notes go through a
different process altogether.
     The blank time is setable from the control menu of the instrument
and is probably the most important parameter of all in defining
payability. I find that after practice with the ERC, 21 ms will allow
playing with no (minimal) between note glitches. If I have been playing a
different clarinet (acoustical) for a long time, I will have to use slightly
longer times (30ms) until I again get use to the feel of the electronic
instrument and its springs. Some demanding double stops (played with
grace-and-hold) with patches with free envelopes may also require long
blank (30 ms) times. Unnecessarily long blank times make the
instrument feel like its is stuffed with oatmeal gruel. (Actually I have
never tried to play an instrument stuffed with gruel but I can use my
imagination).
     
     I experimented at first with just looking to see if a new note
pattern persisted for a given time before declaring it a new note but
found this to be VERY uncomfortable. The response depended upon how
many unintentional in-between notes (glitches) were generated during a
transition. I found that consistency was more important to smooth
playing and a good feel than finding the absolute minimum response
time.      

D. Mouth-Piece Mechanics:


     I am a clarinettist, therefore I like the ERC to feel like a clarinet.

     The ERC mouthpiece is built upon a normal clarinet mouthpiece
complete with reed and ligature.  The mouthpiece itself is filled with red
sealing wax with various slots carved into the wax and a few air
passages cast through it. Red sealing wax has a high melting point and is
quite rigid compared to most waxes. The red traditionally comes from
either cinnabar or the chitin of a beetle. I checked for cinnabar on the
stuff that I use and it was not present. I have no information on the
alternative. The mouthpiece is filled to minimize the free air volume in
the system. This is necessary for quick articulation response since it
takes a noticeable amount of time to bleed the pressure off from a
significant volume through a nozzle small enough to give a good back-
pressure feel to the instrument. A nozzle carries the air from behind the
reed (a Vanduren #3 works well) through the wax  and out the front of
the mouthpiece just above the ligature. This makes it a "Blow Through"
design. By plugging this nozzle, it can be run as a static mouthpiece al.
la. EWI (1000), but as I said, I am a clarinettist and like to move air as I
play. The nozzle is actually a plastic pipet tip that originally tapered
down almost to a point (to handle volumes as low as 1 microliter).
Trimming the tip up the taper allows me to adjust the back pressure and
feel of the mouthpiece. If I cut it too far back, a twist of fine wire in the
tip will bring it back down for further adjustments until it can be
replaced. The nozzle is highly convergent which minimizes breath noise.
I tried running a tube down through the bore but found that it acted a
bit like a inertial mass in the articulation of the instrument. 

     Near the tip of the beak of the mouthpiece is a small hole that
communicates to a passageway in the wax and eventually to a small tube
that connects to a pressure transducer in the barrel of the clarinet. This
beak transducer allows me to continuously monitor the pressure in the
mouth even when the slit of the reed is blocked by the tongue or is
squeezed shut (the stiff reed I mentioned makes it improbable to squeeze
the slit shut which will normally cut a note off as described below).
Behind the reed is another small tube that connects directly to a second
pressure transducer mounted in the cylindrical portion of the
mouthpiece (reed transducer).

     These transducers are pizeo-resistive diaphragm types that have a
VERY fast slew rate (1 psi/30 microseconds). The transducers can handle
being wet since the 'back of chip port' on them has only silicon and gold
in contact with the measured system. Moisture turned out not to be as
much a concern as I originally anticipated since there is no flow through
the tubes leading to the transducers. Thus there is little opportunity to
get water (spit) down into the transducer. Even the occasional suck on
the mouthpiece is of little concern. The tube from the beak to the barrel
passes outside the body of the instrument for an inch and is clear
allowing me to keep track of any moisture working its way down the
tube towards the transducer. 
     Each transducer require a constant-current source to excite its
bridge and an instrument amplifier to read its imbalance. The
electronics to do this are on a small circuit board mounted in the bell
above the larger one that handles the keyword. The bell is somewhat
larger than on a normal clarinet to accommodate these boards and lacks
the graceful curve associated with a clarinet bell. 
     
E. Mouth-Piece Signals

     The signals from the amplifiers for the pressure transducers are
run to the brain box where they undergo a lot of processing that:
     1: filters out the cross talk from the digital key-work serial port
     that runs in the same small-unshielded cable from the stick to the
     box (25 feet).
     2: normalizes offsets and gain of the transducers.
     3: extracts the slope of the reed transducer.
     4: extracts a threshold signals from each transducer.
     5: extracts the difference signal between the transducers (beak
     transducer minus reed transducer) and sends it to the Analog to
     Digital Converter (ADC)
     6: scales the raw signal of the beak transducer by means of several
     potentiometer and sends them (different scaling for different
     functions) to the ADC on several different channels.
     7: scales and send the raw signal from the reed transducer (just
     one) to the ADC.

Articulation:

     At first I triggered a note (generated the gate) with a threshold
detector on the reed transducer. This did not have the right feel (and in
fact had the same 'wrong' feel as a WX-7 which makes me suspect that
is how they generate the gate). After studying the output of the
transducers with a storage O'scope for days as I played, I began to
understand why it did not feel right.
     While playing loudly, fast articulation (staccato between notes)
never really allows the pressure to go to zero, so if I set the threshold
high enough to catch the dip, it was uncomfortably high while playing
softly. If I set it low enough to be right while playing softly, I missed
some staccato while playing loudly. 
     The solution was, of course, not to use a threshold at all but to
sense the rate of change of the air pressure behind the reed. Thus I
extract the slope of the pressure and use that for the gate. Increasing
pressure turns a note on, decreasing pressure turns it off. By empirically
(trial and error, lots of error) adjusting the time constants on the slope
extractor (different time constants for going up and down) I finally
achieved an articulation that was quick and felt RIGHT. It is sensitive
enough to allow flutter and double tongue reliably and works with all
clarinet playing styles.
     This is not quite the whole story. There are slow die-outs in music
(often at the end of a phrase) which the slope detector cannot catch. For
this reason, I still have to have a threshold on the reed transducer so if
the pressure falls down all the way, the note stops. But the threshold
can now be set to essentially zero and is not used except in these die-out
situations.

     In addition to the normal articulation mode described above, the
ERC has three other modes available in each setup. 
     
     1) BAGswitch: This freezes the signals from the mouthpiece in
their current state when one of the performance switches is contacted
(either the thumb stud for the right hand or a foot pedal). A note is
turned on if not already on. It is not required to blow into the
mouthpiece to play legato passages (hence the name BAG). The bend,
aftertouch, and breath pressure (from the mouthpiece) do not change
until the switch is released. This is more of a NO-ARTICULATION
mode than an articulation mode. When I put this mode in operation, I
thought that I might use it for breathing during long held notes but I
have not incorporated that technique into my playing style. Instead, I
find it fun to play it like a bagpipe and sing along while I play (Bellow
Pipes). By other shenanigans you can get a drone to sustain through
while playing a canter line above the drone.

     2) Switched Demi-legato: A logical extension of the BAGswitch.
This defeats normal articulation while one of the performance switches
is contacted but otherwise keeps the mouthpiece alive. Thus when you
staccato to repeat a given note, no note-off->note-on messages are sent
but the breath pressure will go low during the time that the note would
normally be off. This allows very gentle demi-legato and is quite effective
especially when using a monophonic patch where new envelopes are not
generated when changing notes. For the cases where a poly patch is used
and where velocity controls the timbre of the attack, the transition
between the gentle demi-legato to the next legato note with its new
envelope can be disconcerting. To limit this problem, the ERC has
another parameter to de-emphasize the velocity when in this mode. Note
that this mode is turned on and off on the fly by use of the performance
switch so the de-emphasize is only active when Switched Demi-legato is
switched on.

     This requires co-ordination between the right thumb and the
thought of articulation so is not directly analogous to playing the real
thing unless the synthesizer is set to a MONO mode with breath
pressure sensitivity high enough to cause essentially zero audio output
at a MIDI signal level near zero.

     3) Mouth Demi-legato: This is confusing even to me so follow
closely. When this mode is selected, the articulation is transferred to the
sensor that monitors the pressure inside the mouth (via the beak
transducer) where a simple threshold turns notes on an off. The breath
pressure is transferred to the reed sensor. This is the opposite of the
normal mode. Thus when using hard tonguing where the breath stream
is cut off on the palate, Note-Off -> Note-On messages are generated.
but if you close the reed off with the tip of the tongue while maintaining
pressure in your mouth, the breath pressure will fall and a very nice
demi-legato effect is generated in an almost instinctive manner. The
velocity signal in this mode is derived from the mouth pressure as per
normal and the velocity de-emphasis works on all legato notes (or can be
set to zero in which case it is off). Different normalization curves from
those used in the normal articulation mode are used for breath pressure
so that the feel is about the same as the normal articulation mode. This
mode can also be turned on and off an the fly while playing with either
one of the performance switches.

F. Continuous Controllers:


     The ERC presently can process three and a half continuous
controls. They are: 1) Breath pressure, 2) Lip Pressure, 3) Continuous
pedal (or other CV input), and 3.5) Aftertouch interleaved with breath
pressure based upon the same transducer but using an independent
response curve.  
     These controllers can be mapped to various MIDI controllers. The
breath pressure and pedal can be mapped to any one of several MIDI
controllers in addition to aftertouch while the lip pressure can only go to
either aftertouch or pitch bend. (I plan on loosening up this last
restriction and allow various MIDI controls). 

     For those of you not familiar with the nitty gritty of the MIDI
standard, Continuous Controllers are 3 byte messages starting with the
status byte (&hB+chn#) then the controller number then 7 bits of data.
Aftertouch is two byte starting with its status byte (&hD+chn#) then 7
bits of data. Pitch bend is 3 bytes, starting with its status byte
(&hE+chn#) then 14 bits of data divided between Low 7 bits then High
7 bits. I make use of 8 bits of pitch bend although most synthesizers can
only use 7. (Even the famed VL1 is a 7 bit pitch bender). Running status
can thin out the stream by not retransmitting status bytes until they are
changed. Thus the FASTEST means of getting control data out is using
aftertouch by itself using running status. This allows 3000 control
changes per second. But speed is really not the limiting factor. I cannot
imagine needing to change things at a rate higher than the fundamental
frequency of the highest note on a clarinet. Most synthesizers get bogged
down at these rates while sequencer fill up in no time at all.

     So with 3 DIFFERENT controllers to process and about 1 ms per
full MIDI message, I decided upon a 3 ms cycle time on the ERC. During
each cycle, the Analog to Digital Converter (ADC) is read for the
appropriate parameter and some math is performed on the data to get
lip pressure. (To get lip pressure i.e. reed to beak orifice constant, I take
the differential pressure across the reed and divide it by the upstream
pressure. This is the only floating point operation in the whole program.)
At this point all, of the data is in an eight bit byte. The data is filtered
using a selectable-width, selectable-sample-time (increments of 3 ms)
rectangular convolution filter. Usually a 24 ms width (3 ms per sample
by 8 samples deep) is sufficient to get a fast, smooth response with no
zipper noise. Sometimes when I use a clangorous patch with a noticeable
release time, I have to go as high as 96 ms so that the release envelope
is not radically affected by changing volumes too quickly.  

Convolution Filters:

     Convolution filters are very versatile and are used in almost all
aspects of digital signal processing. They are not limited to time domain
data but because that is the topic at hand I will limit my discussion to
the simple case of a single signal changing in time.  The idea is to make
the current data point the WEIGHTED average of the previous data
points. The shape of the convolution mask determines the weighting of
the data. Usually masks are chosen such that the most recent data is the
most important. Such a mask could be described by a SAW TOOTH or a
RAMP. Different masks would theoretically provide different response
feels but in reality I find that a simple rectangular mask works very well
for the data in a wind controller and is one of the few jobs that is as
easy to implement in assembly language as in a high level language. 
The weighting in a rectangular mask is: All data from present to n
samples back in time have a weighing of Unity, older data has a
weighing of Zero. N multiplied by the sample time is the with of the
mask. 
     The way I coded the filters is to have two eight bit memory pointer
registers incrementing at each sample. The value of these are 2^n apart
where n is between 0 and 8 (thus 2^n is between 1 and 256). The most
recent raw, unfiltered data is stored at the location of the "upper"
pointer and is arithmetically added to a 16 accumulator. The data stored
at the memory location pointed to by the "lower" pointer is subtracted
from the 16 bit accumulator. The value in the 16 bit accumulator is then
shifted n bits to the left (effectively dividing by 2^n). Thus the final
value in the accumulator is the average of the data between the two
pointer in memory. By incrementing only the lower byte of both pointers
every sample time, the pointers roll over at 255 back to zero, and a block
of 256 memory locations is used by each filter. This by itself does
nothing to thin out the data stream since the filter generates a data
point out for every data point in. After going through a lookup table to
generate a response curve, the data is compared with the previously
transmitted data and if the value is different from the results of the last
transmitted, a new MIDI message is transmitted. 
     The output of applying a rectangular mask to a step change in the
signal is a ramp.  While this smooth out any radical change it also forces
the data to have an unbroken stream of integers (ie. no skipped data
numbers; you cannot go from 10 to 20 without first going through 11,
12, 13, ..., 18, 19) no matter how you play as long as the mask is wide
enough. Applied uniformly, these filters would trash staccato attacks
making sfortzando impossible. The way out of this problem is to
initialize the filters at each staccato note by loading the entire 256 block
of memory with the value called for at the attack of the note. The filter
then runs normally. Since there is no attack associated with the pedal,
and it is active whether the instrument is playing or not, no
initialization is performed on its filter.

Lookup Tables:

     The Lookup tables use the 8 bit data from the filter as the lower
byte of an address in memory. The stored value at that address is a the
final 7 bits (or 8 bits for pitch bend) used in the MIDI message. I have
several response curves (all normalized between MIDI data 1 and 127)
stored in EPROM to allow the instrument to be tailored to the patch
and the synthesizer. I find that a curve with a square root response is
generally comfortable for both velocity and breath pressure. This makes
it respond linearly to the air flow rate through the mouth-piece rather
that the pressure (flow is proportional to the square root of pressure in
fixed geometry system). For pitch bend, I use lookup tables that are
linear with varying slope. Some of the curves have a small plateau at
zero bend. The limit on bend is related to the slope. 
     I also use lookup tables to generate the response for attack and
release velocity. No filtering is needed but there is a small delay (6 ms)
between when the articulation circuit senses an attack and the pressure
that is used for velocity is read. This allows time for the players "real"
pressure to be developed before sensing since the air pressure often
ramps up on an attack. Because I use the pressure detected in the
mouth, it is possible to have the pressure fully developed before the
attack and then I could have eliminate the time delay. But in real life
performance, that would mean that I would have to be careful always to
articulate "on the reed" alone and never articulate "on the palate". It
would also make double tonguing have an uneven response. The 6 ms
delay is not noticeable at all (equivalent to the speakers 6 feet away
from the player) so I use it for the comfort of playing with my normal
sloppy style. I have an additional parameter called "Staccato Accent" that
will add a selected number to the data from the pressure transducer
before the look-up table for velocity on articulated notes. This often
helps the music by making the first note of a slurred phrase have a
higher note-on velocity than the subsequent notes. Note-off release
velocity is not correspondingly modified and  use the same look-up table
as note-on velocity

G. Additional Notes:

Integral Control Amps

     There are eight digitally controlled amplifiers in the ERC that
respond to values ranging from 0 to 127 with about 1/3 db per step. 
(actually they go from 0 to 255 with a non-linear db response but I
linearized the db response as best I could via a LUT so that each of 127
steps is close to but uniformly less than 1/3 db.)  They can attenuate or
amplify 15 db giving a 30 db swing. The signal for these can be from the
non-MIDI Local Breath, Local Pedal (or other CV); or one of several
MIDI controllers (As well as OFF=0db and MUTE=-48db).  The control
source (and MIDI channel or OMNI) can be selected independently for
each amplifier through the menu structure of the ERC. The output of
the synthesizer loops through the ERC on its way to the mixer thus
there are sixteen 1/4 inch jacks on the back of the ERC for these
amplifiers.
     As an added bonus, I put in a MIDI BIAS on Continuous
Controller #0. When used, I subtract the value on MIDI CC#0 from 127
and then subtract that value from the normal control signal going to the
amplifier (avoiding underflow). This allows some post performance
adjustments of volume with a sequencer when doing MIDI overdub
sequencing but ultimately diminishes the dynamic range since underflow
values are not allowed.
     There is no digital filtering on the control value for the amplifiers,
I rely upon the normal convolution filtering of the ERC thus implicitly
assuming that the ERC was the source of the varying MIDI signal (It
may sound ragged if an unfiltered MIDI-stream is sent to it).
     I have also used these amps as a Control Voltage Source by placing
a small DC at the input of about 0.8 volts. The output is then an
exponential signal between 0.14 and 4.5 volts.   

Hold Functions:

     Preliminary Note: All functions of the performance stud for the
right thumb can also be mapped to a performance pedal switch.
Different functions can be performed by the two switches as needed. The
performance stud relates to the "hold button" on some other wind
controllers

1) It can send any one of several MIDI controller switches such
as Hold (64), Portemento (65), Sostonuto (66), Hold 2 (67), or a
special half hold (data=2 on controller #64) recognized by some
Roland instruments.

2) It can act like a sostonuto pedal such that the note being
played when the stud is hit sustains until the stud is
released. I use this extensively for playing over Drones. The
Drone of course can change through the piece with some quick
thumb and grace note co-ordination. Notra-Dame Organum type
music works exceeding well with this mode.                    

3) It can gate the BAGswitch mode so you can play without
blowing.

4) It can work in conjunction with legato playing so that the
first note in a slurred phrase is held through until the end of
the phrase. This is mind boggelingly useful and allows double
stops to be played with ease. There are several refinements to
this mode such as once a phrase is started, changes in the
switch are ignored. It can be setup to either ignore
repeats on the sostonuto note or retrigger it if played again
within the phrase.

Other Non-hold functions that it can perform are:

5) It can select an alternate MIDI channel. Together with the
pedal, you can select one of four channels while playing. The
channel does not change until the present note is terminated.

6) Shift the whole instrument down an octave. Note that other
than this, the ERC plays the normal range of a clarinet
(3 1/2+ octaves) with suitable transposition anywhere in the 128
note MIDI field.

7) It can gate Switched Demi-Legato which bypasses the normal
articulation. In MONO modes, this will eliminate new envelopes form
being triggered on a synthesizer allowing ALL volume and timbre
control to come from the player.

8) It can gate Mouth Demi-Legato which reverses the sensing
transducers for articulation and breath control.

Several modes can be chosen at once leading to some VERY
CONFUSING responses of the instrument when hitting the thumb stud.

Patches

     There are 30 patch locations in the ERC where all of the modes,
response curves, and control options that I have described are saved. A
link pedal will step through these so that at a concert, I can shift from
one setup to the next (including sending program change messages) with
just a tap of the pedal. The only restriction is that the patch cannot be
changed while a note is being played. If the pedal is hit while playing, it
will wait until the end of any slurred passage before changing the ERC
and synthesizer patch.

Ring Pressure

History:
     Someone on the list mentioned the desire for Key Aftertouch. I had
a few private communications with a member of the list where the
discussion
led to pinky keys with me countering that the RINGS on a
clarinet seem an ideal opportunity for use as aftertouch sensors and
aired the preliminary design for implementing control
parameters based upon how hard the rings are pressed. I had to
leave it there for a month. The trial described below was in place for two
months but because it was still in a test phase and not integrated into
the depths of the controller, it had to be removed for a concert. One of
my projects for over the Christmas break is to incorporate it
permanently in the ERC. 

Design at fist prototype stage:
     The design uses the Eb/Bb pad connected directly to the
ring for the second finger left hand. This is connected through
the clutch to all of the rings on the right hand and by
soldering on a special bridge, it could be made to work on the other left
hand rings as well. Thus as things develop, a great many options
are open. I mounted a linear hall effect transducer that I had
on hand in the sound hole under the pad. Imbedded into the pad,
I put an incredibly strong but tiny magnet from Radio Shack.  By adding
a few bits of cork to 1) hold the rings down at rest to the start of the
pressure range and 2) provide resilience to pressing down on
the rings, I got it to give a swing of about 0.2 volts with a
travel of about 0.02 inches on the rings. 

     An amplifier with offset and gain adjustment converts it
into a 0-5 volt linear signal that can be plugged into the
CV/Pedal input of the ERC which in turn can be mapped to several
MIDI controllers or aftertouch. 
     IT WORKS but needs a great deal of refinement. Right
now I have a twisted pair of wires hanging out the bell going
to a bread-board, an amplifier that is a bit temperamental,
extra power supplies for the breadboard... It is a mess, but
fun to play with.

     What I will have to do to make it nice is, 

1) add more channels (multiplex) to the brain box ADC so I do not
sacrifice
the pedal input. Also add its filter and mapping parameters
into the brain's firmware and menus.  

2) change the key work mapping so that the third finger right
hand no longer flattens the E/B on the upper joint (I never
use that ring on either the ERC or regular clarinets anyway) 

3) increase the number of conductors from the stick to the
brain 

4) workout response curves, analog clamps, corks, springs,
pads, magnets, transducer locations, amplifiers.... to make it
feel good while playing 

5) develop a playing style that utilizes it.

A Few Days Later:
     I played music on the ERC with ring pressure for
several hours and discovered a few un-expected things.

     1) Even though the open holes on the ERC use touch
switches a. la. EWI and the rings had no previous electronic
function, I found that, with the rings blocked down to the beginning
of the pressure control range, I missed trills,
in-advertently flattened E/B, and did not play as smoothly as
before when the rings traveled their normal (for a clarinet)
swing. This is because I was subliminally using the feel of the
rings as a clue to find the actual touch location of the bushings
in the holes.

     I redesigned the amplifier with a symmetric diode clamp
to eliminate the need to have the rings pre-positioned at the
beginning of the pressure control range. The re-design also made
the whole affair much more reliable and intuitive.

     2) My playing style will have to modified. I tend to
put a death grip on the instrument at times. This is not
acceptable once the rings (or keys) are sensitive to pressure. So
much of the time yesterday after re-working the amp was spent
playing a patch that I set to go into overdrive-distortion when
the ring control parameter reached about 15 (out of 127).
Practicing on this patch thus forced me to lighten up on the
rings (and keys). I went through those horrid Langenus
exercises that progress in key signature and found that the more
sharps and flats I had to negotiate, the harder it was for me
to keep a light touch (nerves I guess).

A few weeks later:
     The ring pressure is incredibly fun to play. It is still in the
prototype stage but being able to change timbre by squeezing down on
the rings seems intuitive to the intensity of the music. One more
problem was that whenever I started squeezing down on the rings, I
found myself squeezing down on the reed. With a little practice, these
two inputs can be separated.