SysEx Explorations

MisterE said:
I think I know what you mean.
It would be like having a virtual rack within the Axe-fx.

Yeah, that's the idea. It wouldn't be good to eat all the MIDI channels,
but I'm sure something could be worked out with a little thought.


javajunkie said:
How are you planning to reconfigure your delays?

A couple examples:

One "over-the-top" delay, with a lot more feedback than my
regular setting. Feedback is currently not available as CC.

One "modulated swirly" delay. The modulation settings are not CC-able.

One slapback, with fixed short time and feedback=0. Again, feedback is not CC-able.

Along with a "standard" setting, this is already four configurations. I would actually
like one or two more. So three is really a bare minimum, that I will settle for, if forced.
These are the delays I like to have available in general. That includes for clean, crunchy,
and lead tones.

My current patches use both delay blocks, usually one of them dedicated to slapback.
Of course, only one of the blocks is active at any time, in normal use.
That removes one of the variations, but leaves the others. And those
two delays eat up resources. If you try to get other variations by including
multidelay blocks, you eat up even more CPU. Sometimes
I end up cutting corners elsewhere to make it all fit.

Delays are really the most important example, at least for me.

By the way, the way I like to control these is to use the link feature on the FX1
(I'm sure the Liquid Foot does this too) to set up a mini preset bank which
just switches delay types. That's how I do it in my big rack, using PC's or
CC's to reconfigure delay settings on the fly (depending on the unit).
 
gjungman said:
Again, feedback is not CC-able.

Ack. I'm an idiot. Ignore the comments about feedback; I forgot
about the master feedback control. I should think before typing.

The other statements and the general idea still stand though.

I'm going to go back to the drawing board for my delay configurations.
Might be able to get most of what I want with what's there. Main
problem is being able to switch from fixed-time to tap-tempo mode.
The TEMPO parameter is not controllable... any way to do this
other than using the TEMPO sysex?

Also, there is a completely different way to solve the organizational
problem, which is to have much more powerful patch management
tools. I would do it myself if I had solid documentation for the
bank file format. But that's another discussion.
 
Looks like the parameter id codes and values for each effect can be derived from XML files in the Axe Edit application directory (Win) or package (Mac).

Look for the following files
...\profiles\standard\default.profile
...\profiles\ultra\default.profile
...\configs\standard\default.axeml
...\configs\ultra\default.axeml
 
gjungman said:
gjungman said:
Again, feedback is not CC-able.

Ack. I'm an idiot. Ignore the comments about feedback; I forgot
about the master feedback control. I should think before typing.

The other statements and the general idea still stand though.

I'm going to go back to the drawing board for my delay configurations.
Might be able to get most of what I want with what's there. Main
problem is being able to switch from fixed-time to tap-tempo mode.
The TEMPO parameter is not controllable... any way to do this
other than using the TEMPO sysex?

Also, there is a completely different way to solve the organizational
problem, which is to have much more powerful patch management
tools. I would do it myself if I had solid documentation for the
bank file format. But that's another discussion.

That why I asked :) the other delays have feedback directly controlable (other than the dual delay - at least on the editor)
I do a lot w/ CC configurations with delay, plus we have two if them (if they don't put the cpu over the limit). Yeah the liquid foot can allow you to to a ton of CC or PC changes plus it has great support for sysex messages.


I use my foot controller for patch organization
 
godprobe said:
I'm not sure where you get the translation of SysEx ID to an actual name (what software are you using, simply out of curiosity?, or is that part of OxED?), but you can change the Axe-Fx's SysEx ID.
SysEx Librarian. See screen cap:

sysexlibrarian.png


I know I can change it. And that's the problem: I've changed mine to 1. So the first three bytes after the start-sysex byte in a patch dump are 00 00 01 instead of the 00 00 7D that everyone using the default of 125 has. Makes my patch dumps useless for others. :)

More a reported curiosity than anything else. I'm still wondering what the first two bytes in the head are for.
 
quonsar said:
Yup. I was also referencing http://www.opensource.apple.com/source/ ... gdir/sysex to get manufacturer byte IDs used on my Mac. No doubt linked to by SysEx Librarian.

A Midi manufacturers association purports to issue assigned ID's to various companies, a service for which they charge a fee. This is your basic marketing bunk. There's no real need for it, if you are addressing messages to a rack full of devices, you just need to make sure no two use the same ID, and you need to know what ID each is using.
Semi-agreed on the bunk part. They started out by trying to assign manufacturer IDs and catalog the manufacturer SysEx formats. But manufacturers weren't standard across all their products with formats so its pretty much all gone to hell. And good riddance. It was unnecessary.

Perhaps some brain-dead devices do not allow you to configure the ID, I don't know. I doubt the patches iarcee tried to load were rejected by the Axe-Fx, if that were the case it surely would have rejected the one he edited, since it no longer contained the ID 7D (125). More than likely it was the librarian software that refused to send it, which, in my opinion, makes it brain-dead software.
They were rejected! If the 4th byte in the file didn't match my SysEx ID on my Axe-Fx the file wasn't received by my unit on playback in SysEx Librarian. This explains why people were having trouble with my Mysterious Ways sysex patch I put in the thread where Philip used a YouTube video to show his settings. SysEx Librarian sent it a-okay. MIDI out light on my interface was solid. The Axe-Fx ignored it. Changed the 4th byte to my SysEx ID: not ignored.
 
iaresee said:
godprobe said:
I'm not sure where you get the translation of SysEx ID to an actual name (what software are you using, simply out of curiosity?, or is that part of OxED?), but you can change the Axe-Fx's SysEx ID.
SysEx Librarian. See screen cap:

I know I can change it. And that's the problem: I've changed mine to 1. So the first three bytes after the start-sysex byte in a patch dump are 00 00 01 instead of the 00 00 7D that everyone using the default of 125 has. Makes my patch dumps useless for others. :)

More a reported curiosity than anything else. I'm still wondering what the first two bytes in the head are for.
The MIDI 1.0 spec explains that the fist byte after F0 in a sysex message specifies the manufacturer. But since there are more than 127 manufacturers of MIDI gear, the MIDI spec was amended to allow 3-byte manufacturer ID, where the first byte is always 00. Manufacturer IDs are assigned by the Midi Manufacturer's Association (http://www.midi.org/).

Bottom line here is that Fractal appears to have not have their own Manufacturer ID, so they are not following the MIDI spec wrt their Sysex message format. This is not unusual, and not a problem unless you have another device that uses the same Sysex manufacturer ID.
 
Scrutinizer said:
Looks like the parameter id codes and values for each effect can be derived from XML files in the Axe Edit application directory (Win) or package (Mac).

Look for the following files
...\profiles\standard\default.profile
...\profiles\ultra\default.profile
...\configs\standard\default.axeml
...\configs\ultra\default.axeml
I ran the "Profile" command on my Axe-Fx when it had 7.18 on it and here's what the Axe-Editor produced:

Code:
<PROFILE model="0" majorVersion="7" minorVersion="18">
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="0"
             default="127" minimum="-80" maximum="0" precision="1" unit="dB"
             numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LOG" paramID="1"
             default="59" minimum="1" maximum="20" precision="2" unit="" numVals="255"/>

Which looks useful. But if you compare it against the Compressor Block Paramaters that chase posted here as well as the Comp1 and Comp2 block IDs here you'll see that, while this information gives you the useful range and type of the parameter, it doesn't tell you the sysex identification information you need to access the parameter with a message.

So the question I'm asking myself now is: how would it be for me to script gluing together chase's sysex block parameter lists with this XML output so that the wiki would hold the sysex plus the meta-data about the parameter? Probably not that hard. But not tonight.

chase: I took all the sysex stuff you dumped this thread and ran it through a wiki formatter. Output is in the updated wiki page starting here: http://axefxwiki.guitarlogic.org/index. ... er_Numbers
 
iaresee said:
They were rejected! If the 4th byte in the file didn't match my SysEx ID on my Axe-Fx the file wasn't received by my unit on playback in SysEx Librarian. This explains why people were having trouble with my Mysterious Ways sysex patch I put in the thread where Philip used a YouTube video to show his settings. SysEx Librarian sent it a-okay. MIDI out light on my interface was solid. The Axe-Fx ignored it. Changed the 4th byte to my SysEx ID: not ignored.

I guess I am not understanding: you said the Axe rejected the file with the sysex 125, but accepted it when you changed it?
 
iaresee said:
Scrutinizer said:
Looks like the parameter id codes and values for each effect can be derived from XML files in the Axe Edit application directory (Win) or package (Mac).

Look for the following files
...\profiles\standard\default.profile
...\profiles\ultra\default.profile
...\configs\standard\default.axeml
...\configs\ultra\default.axeml
I ran the "Profile" command on my Axe-Fx when it had 7.18 on it and here's what the Axe-Editor produced:

Code:
<PROFILE model="0" majorVersion="7" minorVersion="18">
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="0"
             default="127" minimum="-80" maximum="0" precision="1" unit="dB"
             numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LOG" paramID="1"
             default="59" minimum="1" maximum="20" precision="2" unit="" numVals="255"/>

Which looks useful. But if you compare it against the Compressor Block Paramaters that chase posted here as well as the Comp1 and Comp2 block IDs here you'll see that, while this information gives you the useful range and type of the parameter, it doesn't tell you the sysex identification information you need to access the parameter with a message.

So the question I'm asking myself now is: how would it be for me to script gluing together chase's sysex block parameter lists with this XML output so that the wiki would hold the sysex plus the meta-data about the parameter? Probably not that hard. But not tonight.

chase: I took all the sysex stuff you dumped this thread and ran it through a wiki formatter. Output is in the updated wiki page starting here: http://axefxwiki.guitarlogic.org/index. ... er_Numbers
The needed info is in the XML files.

For example COMP1:

The default.profile file specifies the parameter values, but does not tell us the parameter names:
Code:
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="0" default="127" minimum="-80" maximum="0" precision="1" unit="dB" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="1" default="59" minimum="0" maximum="10" precision="2" unit="" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="2" default="127" minimum="0" maximum="10" precision="2" unit="" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="3" default="127" minimum="0" maximum="10" precision="2" unit="" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="4" default="127" minimum="-20" maximum="20" precision="1" unit="dB" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="5" default="1" minimum="0" maximum="3" precision="0" unit="" numVals="4" item0="HARD" item1="SOFT" item2="SOFTER" item3="SOFTEST"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="6" default="1" minimum="0" maximum="1" precision="0" unit="" numVals="2" item0="OFF" item1="ON"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="7" default="0" minimum="0" maximum="1" precision="0" unit="" numVals="2" item0="RMS" item1="PEAK"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LOG" paramID="8" default="0" minimum="10" maximum="1000" precision="0" unit="Hz" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="9" default="0" minimum="0" maximum="0" precision="0" unit="" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="10" default="0" minimum="0" maximum="6" precision="0" unit="" numVals="7" item0="NONE" item1="ROW 1" item2="ROW 2" item3="ROW 3" item4="ROW 4" item5="INPUT 1" item6="INPUT 2"/>
  <Parameter effectType="Compressor" effectID="100" paramType="LIN" paramID="11" default="254" minimum="0" maximum="100" precision="1" unit="%" numVals="255"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="12" default="0" minimum="0" maximum="1" precision="0" unit="" numVals="2" item0="STUDIO" item1="PEDAL"/>
  <Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="13" default="0" minimum="0" maximum="2" precision="0" unit="" numVals="3" item0="MIX = 0%" item1="MUTE FX OUT" item2="MUTE OUT"/>

The default.axeml file contains effect bock ID number, parameter names, and parameter IDs. Here is the section showing effect ID numbers for COMP1 and COMP2:
Code:
<EffectPoolInstance id="100" name="Compressor 1" type="Compressor"  />
<EffectPoolInstance id="101" name="Compressor 2" type="Compressor"  />

Here's the section showing parameter names and IDs:
Code:
		<EffectParameters name="Compressor">
			<EffectParameter id="0" name="COMP_THRESH" modifierID="0"/>
			<EffectParameter id="1" name="COMP_RATIO" modifierID="0"/>
			<EffectParameter id="2" name="COMP_ATTACK" modifierID="0"/>
			<EffectParameter id="3" name="COMP_RELEASE" modifierID="0"/>
			<EffectParameter id="4" name="COMP_LEVEL" modifierID="0"/>
			<EffectParameter id="5" name="COMP_KNEE" modifierID="0"/>
			<EffectParameter id="6" name="COMP_AUTO" modifierID="0"/>
			<EffectParameter id="7" name="COMP_PEAKRMS" modifierID="0"/>
			<EffectParameter id="8" name="COMP_CONTOUR" modifierID="0"/>
			<EffectParameter id="9" name="COMP_BYPASS" modifierID="0"/>
			<EffectParameter id="10" name="COMP_SIDECHAIN" modifierID="0"/>
			<EffectParameter id="11" name="COMP_MIX" modifierID="200"/>
			<EffectParameter id="12" name="COMP_TYPE" modifierID="0"/>
      <EffectParameter id="13" name="COMP_BYPASSMODE" modifierID="255"/>
		</EffectParameters>

Note that below I will color code the important sections.
RED = Effect ID information
Green = Parameter ID information
Blue = Parameter value

Suppose I want to change the KNEE parameter in COMP1 to "SOFT". I look in the default.axeml file, and find the effect ID # and parameter ID #.

<EffectPoolInstance id="100" name="Compressor 1" type="Compressor" />
<EffectParameter id="5" name="COMP_KNEE" modifierID="0"/>

Convert to hex:
100 = 0x64
5 = 0x05

Next I need to figure out the parameter value corresponding to the "SOFT" setting of the "KNEE" parameter. I loko in default.profile, and find the following line:

<Parameter effectType="Compressor" effectID="100" paramType="INT" paramID="5" default="1" minimum="0" maximum="3" precision="0" unit="" numVals="4" item0="HARD" item1="SOFT" item2="SOFTER" item3="SOFTEST"/>

So, I need to write the value 0x01 to this parameter to select soft knee.

Finally, I can assemble the sysex message (see http://axefxwiki.guitarlogic.org/index. ... _PARAMETER)

0xF0 sysex start
0x00 Manf. ID byte0
0x00 Manf. ID byte1
0x7d Manf. ID byte2 (this value is configurable within the Axe-Fx)
0x00 Model #
0x02 Function ID
0x04 effect ID LS nibble
0x06 effect ID MS nibble
0x05 parameter ID LS nibble
0x00 parameter ID MS nibble
0x01 parameter value LS nibble
0x00 parameter value MS nibble
0x01 query(0) or set(1) value
0xF7 sysex end

Hope this helps.
 
quonsar said:
iaresee said:
They were rejected! If the 4th byte in the file didn't match my SysEx ID on my Axe-Fx the file wasn't received by my unit on playback in SysEx Librarian. This explains why people were having trouble with my Mysterious Ways sysex patch I put in the thread where Philip used a YouTube video to show his settings. SysEx Librarian sent it a-okay. MIDI out light on my interface was solid. The Axe-Fx ignored it. Changed the 4th byte to my SysEx ID: not ignored.

I guess I am not understanding: you said the Axe rejected the file with the sysex 125, but accepted it when you changed it?
Yup. Because my unit has SysEx ID = 1.
 
Scrutinizer said:
Hope this helps.
Immensely. I should have read the spec a little more carefully. :)

I thought we were looking for a two byte identifier for the block and parameter -- as in an integer in the range: 0 - 2^16-1. So looking at that block I saw "100" and though, "but that's only one byte...so it can't map".

Thanks for the detailed break down.

chase et al.: That makes it pretty easy to pull everything from an XML generated from a profile run by the editor. I'll see what I can do about that tomorrow night.
 
I know it's an old thread, but... do you think you could use a novation controller to manipulate the amp controls? I read what is written here carefully, but don't get it, to say the least.
Thanks!
 
twelve years after I posted this, I am looking at this again. Many thanks to the folks that did the heavy lifting so that complete information is readily available for the Standard, Ultra an II-series.

I am in the process of building a knobs-controller so that I can quickly adjust stuff that I want on a knob. It is a little disheartening to see that I've been plotting and plodding on this project for over 12 years but about 5 years ago I made a small pedal box with 3 knobs and a bank selector to multiply those 3 knobs times 7. The first bank is gain, delay level, reverb level. The second bank is gain, master, level, the third bank is bass, mid, treble... etc...

I have several 1U chassis and plan to put about 10 knobs and a couple of encoders for easier access. I probably should go ahead and order a 2U chassis and cut to the chase.

Its disappointing that you can't do this on the Axe-FX III or FM3 but there are 16 external controller assignments instead of 8- you can control a lot of stuff with 16 CC assignments.
 
I also want a surface with spinny knobs like a virtual pedal board. I was interested in this sort of thing when building the axefx arduino library, but I think the best way is to use standard control switches and manipulate them with CC.
 
Back
Top Bottom