I made a patch with some objects dedicated for wind controllers. My interest was mostly to understand how breath control can be used to add expressiveness to an instrument. To learn more, I attempted to imitate the internal synth of the EWI4000s based on the Vyzex (EWI sound editor) manual. But with a focus on replicating the control of the instrument, not the sounds. On the contrary, the strength of Axoloti is to use different oscillator, filter and effects objects, different methods of synthesis, etc.
EWI_internal.axp (14.2 KB)
The ewi_in object draws in the midi signal from the EWI, but can probably also be used for other breath controllers. The object can be finetuned for glide and bend behaviour. The bendsens number indicates the min/max k-rate value of the bend plates associated with the max bend interval.
ewi_in.axo (3.6 KB)
The breath block modifies the k-rate breath signal, first to a bilinear signal with the threshold and then transforms it into an exponential curve. The subpatch includes two objects for bilinear conversion: ewi_thresh keeps the signal at zero until the threshold value; from there on the signal rises linearly to 1 at max breath value. ewi_xfade initially follows the breath signal until the threshold value and from then goes down linearly to 0 at max breath value.
The exp_curve transforms the signal in such way that a negative control value gives higher output at intermediate breath input and a positive control value gives lower output at intermediate breath values with a high slope towards max breath value.
ewi_breath.axs (2.6 KB)
ewi_thresh.axo (783 Bytes)
ewi_xfade.axo (845 Bytes)
The pitch block controls the tuning for the subsequent oscillator and the initial sweep of the pitch when a new note is blown (not legato, see gate): max. time and pitch (sweep time and sweep depth) of the sweep and the influence of the breath on it: time and pitch (breath attain and breath depth). In fact, the velocity signal is used instead of the breath signal. Velocity for a breath controller is the first breath value whenever a new note is blown. The velocity value is kept constant throughout a legato run.
ewi_pitch.axs (4.0 KB)
The PWM block is used only for the square oscillator in the EWI4000s, but could be used for various controls on other oscillators/objects. Just a straightforward and output-only PWM control.
ewi_pwm.axs (1.4 KB)
The filter control block contains modulation control for the filter cutoff frequence by breath strength, as well as an LFO. The strength of the LFO modulation can either increase with breath strength (pos. LFO depth values) or decrease (neg.)
Key follow for the filter cutoff frequency is centred on note C6. Positive key follow value will cause the cutoff frequence to be raised for notes higher than C6 and lowered for lower notes. Negative key follow does the reverse.
I haven't included a time sweep for the filter controls (yet).
ewi_filtctrl.axs (5.9 KB)
ewi_lfodepth.axo (762 Bytes)
The effects chain is still very rudimentary and doesn't contain any modulation by breath. This can be added quite easily with different objects though.
And now I'll try to find some good sounds with it. I also intend to build a foot controllor with 2 expression pedals and some switches. Possibilities with Axoloti are just endless
If anyone with a breath controller wants to try it out, I'm very interested in feedback and fresh ideas.