EWI4000s-like patch for wind controller


#1

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 :slight_smile:

If anyone with a breath controller wants to try it out, I'm very interested in feedback and fresh ideas.


#2

I have an ewi usb, the breath control works very well. the maximum would be to use the bite (Vibrato) to modulate the lfo.
thank you so much


#3

Aha that's great to hear. For the bite sensor, that's something I wanted to have as well. But in the MIDI output from the EWI this is not assigned to a separate CC number (at least for EWI4000s, maybe different for EWI USB or EWI5000?)
The bite sensor acts as an up and down envelope on the bend signal. This bend signal also contains the input from the two bend plates. These bend plates do have their own CC number: CC48 (bend up) and CC49 (bend down). Even if you subtract these two from the bend signal to isolate the bite sensor, you're still left with the up and down pulse and not a continuous signal for bite strength.


#4

fwiw i have one of these, there's a more affordable older version too (100 vs 200 euro) if anbody is interested...
https://www.tecontrol.se/products/usb-midi-breath-bite-controller-2
after a lot of reviews, the breath and bite controls on this seemed to be amogst the best, plus it adds a gyroscope for another 2 intuivitive physical parameter controls (sideways/forward head leaning)

and it's a pure breath controller, so more suitable for additional modulation when playing synths as opposed to a full size EWI etc with the saxophone keys.

i'll try hook it up to your patch one day but no promises... haven't used that thing in a while.


#5

Good timing, I have just got an axoloti and connected my 5000 up to it last night. It doesn't seem to work too well with it at the moment, when I tried it on the mac connected to the USB it just completely died and then after that the axoloti wouldn't actually admit to being there any more! Eventually I tried it on the PC and it was working again (I think I just took my USB out!), powered from the USB there was just too much noise, and powered from external not much happened.
Eventually I just decided to use the midi and that worked better, however I think the bite sensor is broken on mine, so I was trying to see what came out of what CC. I will give yours a try and see what I can get.


#6

Hello Joaogato,
I just started last week with axoloti, the only reason why I want to get into it is because I hope to create some original sounds on my EWI. I bought it a year ago, but didn't get time to really dive in until now ...
I used your ewi_in.axo which suits my needs perfectly concerning thumb bends, lip vibrato & thumb glide. Thanks a lot for that!
I do not see how one could get the hold and octave function to work as it does with the 4000s internal synth.
I made a basic patch that I will use as a starting point for some other sounds. I didn't do it as an imitiation of the ewi 4000s synth. I made it simple, but my instrument reacts the way I like it.
Only thing I really miss is the hold & octave function. I wonder if you could give me a hint ...
Thanks for the ewi_in object anyway!
Hope to hear from you,
vdyck


#7

I found a way to do it.
Saved my patch as a polyphonic subpatch as described elsewhere.
Added 2 outlets, L en R.
In a new patch connected those to a L & R inlet of a stereo output object.
Checked the settings on the Hold en Octave buttons on the 4000s: settings as you's use the Ewi standalone: 'Oc' on 'ln' or 'oc' (interval or octave) and 'Ho' to 'LE'
Nothing needn't be connected to the yellow 'Hold' & 'Octave' outlets.
Works like a charm.
I'm becoming a real fan of this little board!!

Next thing I got to learn is being able to change the patchn°in standalone mode.


#8

Hey, great that you found how to do it already. The yellow (boolean) hold and octave outlets are there as on/off switches so they can also be assigned for another function in the patch.

I've been extremely busy with 'a new career in a new town' the past months. But now I finally got some time again to play and program. And defo wanna try more things for the EWI. If you have thoughts to improve these objects or add new functions specifically for the EWI, please post them here.


#9

One thing I forgot to mention:

I made some patches without the 'gate' function before the vca/gain. This hold and octave function only work right when an envelope object is put between the gate outlet of the ewi_in object and the gain/vca object.
I had made this (sub)patch before without this but with 'breath' outlet connected to the gain/vca object. That gives very unpredictible behaviour of the hold function of the 4000s, makes it unusable.

Its a pity because I seem to lose some of the originally intended character when I put the envelope filter there instead of a direct connection with breath ...