Skip to content

Commit

Permalink
docs: add 'docs' folder
Browse files Browse the repository at this point in the history
Don't include it in sdist

Signed-off-by: Christopher Arndt <[email protected]>
  • Loading branch information
SpotlightKid committed Apr 5, 2024
1 parent c21915a commit b55cd7b
Show file tree
Hide file tree
Showing 5 changed files with 209 additions and 1 deletion.
192 changes: 192 additions & 0 deletions docs/Akai EWI USB works in Linux - USB MIDI commands.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
# Akai EWI USB works in Linux - USB MIDI commands

From: wzab
Date: Jul 8, 2011, 11:44:41 AM

I just started to play the Akai EWI USB.
Unfortunately with the original Windows software it does
not work satisfactory on the hardware I have with me
on my holidays ;-) (Compaq nx7300 with built-in Audio device:
Intel Corporation N10/ICH 7 Family High Definition Audio Controller).
The latency is simply too high.
Therefore I decided to try to use it in Linux/jackd/zynaddsubfx
and in Linux/jackd/qsynth environment.

EWI USB produced correct MIDI commands right after pluging it into
my machine, and the latency on the same hardware was really low,
but I was not able to switch fingering mode and other
controls.

Therefore I decided to investigate how the original Aria software
controls the EWI.
1. I installed software from the CD accompanying the EWI
under wine in Linux
2. I loaded the "usbmon" module and run "wireshark"
3. I started capture of USB transfers with the USB EWI (which
I first "located" with the "lsusb" command.

Then I started to change settings in the Aria program and checked
what USB MIDI commands are sent to the EWI USB.

Below are results of my investigation, but before you try to use them
please read the following disclaimer:

==================== DISCLAIMER =======================
Information below was obtained by analysis of MIDI commands
generated by Aria software with my EWI USB.
I don't know if tampering with your EWI USB in this way is safe!
I know that some special MIDI commands are used for
firmware upgrade, so maybe you may accidentally send a command
causing firmware erasure :-(.
If you use the information below YOU DO IT ON YOUR OWN RISK!
I do not assume any responsibility for any damage of your
hardware (either EWI USB or your computer or other
hardware) neither for any other damages or losses resulting
from your use of the information below.
=============== END OF DISCLAIMER =======================

A. Change of the fingering mode:

0b b0 63 02 0b b0 62 01 0b b0 06 nn
Values of nn:
00 - EWI standard
01 - Saxophone
02 - Flute
03 - Oboe
04 - EVI valve 1
05 - EVI valve 2
Please note, that the above are the USB MIDI commands,
so if you want to send them as standard MIDI commands e.g. with
"amidi" program, you should discard "0b" preceeding the "b0".
E.g. to change fingering to "EVI valve 1" you should execute:
$ amidi -p hw:1,0,0 -SB06302B06201B00604

The port name for EWI may be found with:
$ amidi -l
which should return something like this:
Dir Device Name
IO hw:1,0,0 EWI-USB MIDI 1

B. Change of "breath gain":
0b b0 63 00 0b b0 62 00 0b b0 06 nn (where nn is between 0x00 and
0x7f)

example: amidi -p hw:1,0,0 -SB06300B06200B0067F

C. Change of "bite gain":
0b b0 63 00 0b b0 62 01 0b b0 06 nn (where nn is between 0x00 and
0x7f)

D. Change of "bite AC gain":
0b b0 63 00 0b b0 62 02 0b b0 06 nn (where nn is between 0x00 and
0x7f)

E. Change of "pitch bend gain":
0b b0 63 00 0b b0 62 03 0b b0 06 nn (where nn is between 0x00 and
0x7f)

F. Change of "key delay":
0b b0 63 00 0b b0 62 04 0b b0 06 nn (where nn is between 0x00 and
0x0f)

G. Change of "Breath CC1" setting:
0b b0 63 02 0b b0 62 04 0b b0 06 nn (where nn is between 0x00 and
0x7f)

H. Change of "Breath CC2" setting:
0b b0 63 02 0b b0 62 05 0b b0 06 nn (where nn is between 0x00 and
0x7f)

I. Change of "Bite CC1" setting:
0b b0 63 02 0b b0 62 07 0b b0 06 nn (where nn is between 0x00 and
0x7f)

J. Change of "Bite CC2" setting:
0b b0 63 02 0b b0 62 08 0b b0 06 nn (where nn is between 0x00 and
0x7f)

K. Change of "Velocity" setting:
0b b0 63 02 0b b0 62 03 0b b0 06 nn (where nn is between 0x00 and
0x7f)
(0x00 means "dynamic" velocity)
L. Pitchbend UP control:
0b b0 63 02 0b b0 62 09 0b b0 06 nn (where nn is between 0x00 and
0x7f)

M. Pitchbend DOWN control:
0b b0 63 02 0b b0 62 0a 0b b0 06 nn (where nn is between 0x00 and
0x7f)

N. Switching of MIDI channel (examples)
from 1 to 10: 0b b9 63 02 0b b9 62 00 0b b9 06 09
from 10 to 3: 0b b2 63 02 0b b2 62 00 0b b2 06 02
from 3 to 1: 0b b0 63 02 0b b0 62 00 0b b0 06 00
As you can see, only the new channel is given in the USB MIDI
command.

O. Switching of "Transpose":
0b b0 63 02 0b b0 62 02 0b b0 06 nn (where nn is between 0x34
[for -12] to 0x4c [for +12])
examples:
to -12: 0b b0 63 02 0b b0 62 02 0b b0 06 34
to +12: 0b b0 63 02 0b b0 62 02 0b b0 06 4c

To restore default settings I issue the following commands:
$ amidi -p hw:1,0,0 -s ControllerSetupDefaults.syx
$ amidi -p hw:1,0,0 -s SensorSetupDefaults.syx

(the ControllerSetupDefaults.syx and SensorSetupDefaults.syx
files are provided with the original Aria software.)

I hope that the above information may be useful for other EWI USB
users wanting to use this instrument in Linux.
--
Best regards,
Wojtek Zabolotny
http://www.ise.pw.edu.pl/~wzab/wireless_guitar_system/
Build your own digital wireless system for electric guitar


From: Clemens Ladisch
Date: Jul 8, 2011, 2:34:26 PM

wzab wrote:
> I know that some special MIDI commands are used for
> firmware upgrade, so maybe you may accidentally send a command
> causing firmware erasure :-(.

All your listed commands are controller changes, so there is no such
danger.

> A. Change of the fingering mode:
>
> 0b b0 63 02 0b b0 62 01 0b b0 06 nn

Controllers 0x62/0x63/0x06 are the standard indirection scheme for
"non-registered parameters".

So we have these NRPNs:

0/0 breath gain
0/1 bite gain
0/2 bite AC gain
0/3 pitch bend gain
0/4 key delay
2/0 MIDI channel
2/1 fingering mode
2/3 Velocity
2/4 Breath CC1
2/5 Breath CC2
2/7 Bite CC1
2/8 Bite CC2
2/9 Pitchbend UP
2/10 Pitchbend DOWN
2/11 Transpose

Most sequencers allow to set these parameters directly (instead of
entering three controller change command) when given the NRPN MSB/
LSB values.


Regards,
Clemens
Binary file added docs/ControllerSetupDefaults.syx
Binary file not shown.
Binary file added docs/SensorSetupDefaults.syx
Binary file not shown.
15 changes: 15 additions & 0 deletions docs/ewi-usb-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Akai EWI USB MIDI Wind Controller Notes

## MIDI implementation

### Reset

If you press the "RESET" button on the lower backside, the EWI will sent the
following MIDI messages on its configured MIDI channel:

* Pitch bend. value 0
* Control change #121, value 0
* Control change #7, value 100
* Control change #11, value 127
* Channel aftertouch, value 0
* Note Off for all notes 0-127
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ packages = ["ewi_usb_config"]

[tool.hatch.build.targets.sdist]
exclude = [
".github",
"/.github",
"/docs",
]


Expand Down

0 comments on commit b55cd7b

Please sign in to comment.