EWIUSB.COM
Electronic Wind Instrument Information and More

Editing Aria XML to Expand It's Capabilites

I got a copy of Mr. Sax T, and was somewhat dismayed at the lack of transposition tools - it has a octave break, but that's just not what I wanted as I want it tuned to Bb with low A tuned to the+ lowest note that patch can play in Kontact player. Kontact player itself also seems to be one buggy steaming pile, but I have to admit the samples sound great and it's nice to have something that listens to growl and flatten.

The solution SHOULD be to just set the internal transpose on the EWI up another octave, but I was already at +10.

But I remembered in going through the Aria software directory it's all XML files, and since I already determined that the transposition is set via NRPN 0202, with 'zero' as 40h (64 decimal) - would that mean I could expand it further?

So I went to the \akai\ewi usb\gui directory and opened up "EWIConfiguration.xml" - which lo and behold has a section in it like this:

<StaticText text="Transpose" x="10" y="80" w="120" h="18" color_text="#ffffffFF" alignment="left" />
  <OptionMenu param="34" x="165" y="80" w="150" h="15">
    <OptionItem name="-12 = -C"  value="52" />
    <OptionItem name="-11 = -Db" value="53" />
    <OptionItem name="-10 = -D"  value="54" />
    <OptionItem name="-9 = -Eb"  value="55" />
    <OptionItem name="-8 = -E"   value="56" />
    <OptionItem name="-7 = -F"   value="57" />
    <OptionItem name="-6 = -Gb"  value="58" />
    <OptionItem name="-5 = -G"   value="59" />
    <OptionItem name="-4 = -Ab"  value="60" />
    <OptionItem name="-3 = -A"   value="61" />
    <OptionItem name="-2 = -Bb"  value="62" />
    <OptionItem name="-1 = -B"   value="63" />
    <OptionItem name="0 = C"     value="64" /> <!-- default -->
    <OptionItem name="1 = +C#"   value="65" />
    <OptionItem name="2 = +D"    value="66" />
    <OptionItem name="3 = +D#"   value="67" />
    <OptionItem name="4 = +E"    value="68" />
    <OptionItem name="5 = +F"    value="69" />
    <OptionItem name="6 = +F#"   value="70" />
    <OptionItem name="7 = +G"    value="71" />
    <OptionItem name="8 = +G#"   value="72" />
    <OptionItem name="9 = +A"    value="73" />
    <OptionItem name="10 = +A#"  value="74" />
    <OptionItem name="11 = +B"   value="75" />
    <OptionItem name="12 = +C"   value="76" />
  </OptionMenu>

Those values look like the nrpn - so if I was to add right after +C the following:

  <OptionItem name="13 = ++Db" value="77" />
  <OptionItem name="14 = ++D"  value="78" />
  <OptionItem name="15 = ++Eb" value="79" />
  <OptionItem name="16 = ++E"  value="80" />
  <OptionItem name="17 = ++F"  value="81" />
  <OptionItem name="18 = ++Gb" value="82" />
  <OptionItem name="19 = ++G"  value="83" />
  <OptionItem name="20 = ++Ab" value="84" />
  <OptionItem name="21 = ++A"  value="85" />
  <OptionItem name="22 = ++Bb" value="86" />
  <OptionItem name="23 = ++B"  value="87" />
  <OptionItem name="24 = ++C"  value="88" />

Would that give me the extra range I wanted on setting the EWI's internal transposition? The short answer is yes, yes it does. I was a little worried that expanding the range like this may go past the top value of 127 on the highest note the EWI can generate, but that uber-high open C# is returning 79h as ++C, so in theory you could expand it up the top end six more semitones, up to +++G / "94" without worrying about 'losing' any range on the instrument. With it set to -C / -12, the low Bb is coming through as 16h, meaning you could go 22 more steps down as well to ---E / -34 (in theory, let's face it not a lot of synths can produce C0 )

The only problem with this approach is that if you have a small screen, you can run out of space for menu options, BUT because you can both add and remove options, you can just set it up for the ones you actually would use - For instance I can't see myself needing more than Bb, Eb, C and F, so I changed mine to read:

<OptionMenu param="34" x="165" y="80" w="150" h="15">
  <OptionItem name="-26 = ---Bb" value="38" />
  <OptionItem name="-24 =  --C"  value="40" />
  <OptionItem name="-21 =  --Eb" value="42" />
  <OptionItem name="-19 =  --F"   value="45" />
  <OptionItem name="-14 =  --Bb" value="50" />
  <OptionItem name="-12 =   -C"  value="52" />
  <OptionItem name="- 9 =   -Eb" value="55" />
  <OptionItem name="- 7 =   -F"  value="57" />
  <OptionItem name="- 2 =   -Bb" value="62" />
  <OptionItem name="  0 =    C"  value="64" /> <!-- default -->
  <OptionItem name="+ 3 =   +Eb" value="67" />
  <OptionItem name="+ 5 =   +F"  value="69" />
  <OptionItem name="+10 =   +Bb" value="74" />
  <OptionItem name="+12 =   +C"  value="76" />
  <OptionItem name="+15 =  ++Eb" value="79" />
  <OptionItem name="+17 =  ++F"  value="81" />
  <OptionItem name="+22 =  ++Bb" value="86" />
  <OptionItem name="+24 =  ++C"  value="88" />
  <OptionItem name="+27 = +++Eb" value="91" />
  <OptionItem name="+29 = +++F"  value="93" />
</OptionMenu>

Which works great and lets me choose a much wider range of values in the keys I actually use. I also went through and labelled all instances of controller 21 as growl and 23 as flutter tongue - handy since for use in Kontact as I've been mapping the right hand pitch benders to those - up for growl, down for flutter tongue.

I also went into controls.xml, controls(th).xml and percussion.XML, and added an octave to the top and bottom of their transpose menus as well - giving a wider range of options when layering.

Don't know if this will be of use to anyone else, but I figured I'd share it. Also good research for my building my own standalone configuration applet - which I keep adding to the list of what I want it to be able to do.

In any case these XML files can be opened up in any plain text editor - when in doubt, notepad (or textedit for you mac folks) to the rescue. If you are going to attempt these sorts of changes, be certain to backup your originals first.

If I get more ambitious I may try reskinning the entire program to move options from all those separate pages into a singles, as well as try to make it fit better into a 800 wide screen by getting rid of some of the unneeded/wasteful graphics so it would be better on a first gen netbook or other older system.