EWIS is a Web MIDI app that let you trigger chords and play on top of them using your EWI or similar wind controller. There is a live version running at https://ewis.netlify.com/ – but note that this app may change at any time, so don’t count on it for your live performances. I may publish versioned URLs if this is of interest to people. The source code can be found here.
This app is developed by bep and powered by Hugo, Vue and WebMIDI.
The violin patch in the video above is the SWAM Violin from AudioModeling, the synth pad for the chords comes from the Alchemy synth in MainStage 3.
It is played with an Akai EWI USB wind controller with the “thumb up” controller mapped to CC 5 (portamento, very importamt on Violin) and “thumb down” to CC 64 (sustain, to trigger a new chord seuence).
You need:
macOS
, Chrome works great (Safari does not).I have tested this on both macOS
(in both Logic X and MainStage) and on IOS
(using the Magellan synth running on an iPad Air) with an Akai EWI USB.
I have the “thumb bend down” mapped to CC 64 (sustain; see the CC Toggle
setting below), which is what I use to trigger a new chord sequence with a single tap. This plays-and-holds up to the number of notes configured by the Polyphony
setting (see below) with velocity matching the breath.
Setting | Description |
---|---|
Input | The MIDI input device. |
Input Channel | The MIDI input channel. |
Output | The MIDI output device, i.e. a synth. |
Output Channel | The MIDI output channel. |
Polyphony | How many notes to play in a chord. |
CC Toggle | The MIDI CC number to use to trigger a new chord. |
CC Breath | The MIDI CC in use for breath control. |
% Breath Forward | Percentage of the MIDI breath value that gets forwarded to the output channel. This can be used to add some life to the chord pad. |
You need Hugo installed. Then you can just git clone https://github.com/bep/ewis.git
and run hugo server
.
If you want to develop and test your tweaks on an iPad, you may want a public URL for your development server. One way would be to use ngrok and then start your server with:
hugo server --liveReloadPort=443 --baseURL=https://[your-id].ngrok.io --appendPort=false