General

Lemur Axe Fx Ultra (Sysex input): Beginner

Started by gotmilo on .

Sign in or create an account to join the conversation.

17 posts

Topic starter
Hi, I've just bought Lemur app. Can anyone please guide me to setup sysex for Amp 1 Level Settings? Midi Touch uses this: F0 00 01 74 01 02 0A 06 05 01 00 CV 01 F7, but it doesn't seem to work with Lemur app. A template as guide from anyone would be more than welcome. Thanks in advance!
Here is an example showing how to control an AxeFX Standard or Ultra parameter using sysex.

In the example is a script SendSetParam(b,p,v) which takes three arguments:
b is the block number
p is the parameter number
v is the parameter value
midiout(0,{0xF0,0,1,0x74,1,2,
 floor(b%16),floor(b/16),
 floor(p%16),floor(p/16), 
 floor(v%16),floor(v/16),
 1, 0xF7});
The attached template uses this script to control Amp1 Level.

amp1level.jzml.zip
Here is a template I've been using to observe the AxeFX Ultra response to sysex commands. More specifically, I was interested in three command types:
- GetParameterValue
- GetPresetName
- GetBypassStates

This template can easily send commands to the AxeFX that it won't recognize, so please be careful. I have found that querying a block that does not exist in the currently loaded preset can cause my AxeFX Ultra to lock up. There could be a risk of data loss, so be sure to back up the AxeFX before experimenting with this template.

sysex_monitor_06.jzml.zip
Hi Dsorlien, thanks for the monitor. I can get the sysex but how do i impliment the sysex? I as hoping i can have a GET PATCHES button to call up all bypass states with one button. Would that be possible? I suppose to prevent Axe from crashing i can call up the usual blocks like drive, delay and reverb. Also, for the amp settings would it be possible to have a button that calls up the settings as well? Will be great help is you can share a template that demonstrate this....pleassseee.....thank you!!!! :cry:
gotmilo wrote:Hi Dsorlien, thanks for the monitor. I can get the sysex but how do i impliment the sysex? I as hoping i can have a GET PATCHES button to call up all bypass states with one button.
Bypass state message is very tricky. Search the AxeFX forum for details on the message format of the bypass state response. I have not yet written Lemur code to parse this message. The bypass response message is variable size, and can be very large. To implement this, I will need Liine to increase the max size of incoming sysex, and also will need them to fix the bug that can corrupt incoming sysex messages (not all bytes in message are received).
Would that be possible? I suppose to prevent Axe from crashing i can call up the usual blocks like drive, delay and reverb. Also, for the amp settings would it be possible to have a button that calls up the settings as well? Will be great help is you can share a template that demonstrate this....pleassseee.....thank you!!!! :cry:
It took me a while to come up with an example that is not too complex. I am using a much different technique in my large AxeFX template to query the parameters one-by-one.

This example has six faders and one knob for:
AMP1 drive, bass, mid, treble, master, level, and balance

Each control is enclosed in a container. Copy and paste to add more controls. Read the comments in the scripts, hopefully I did an OK job describing how this works.

axefx_gen1_sysex_01.jzml.zip
I've made some major changes to the example Lemur template, now called: "Axe for Lemur Lite".

http://dl.dropbox.com/u/54889552/AxeForLemurLite.1.00.jzml.zip

screenshots:
http://images.lilypix.com/albums/userpics/10075/IMG_0038.gif

Auto-detects Standard, Ultra, or Axe-FX II
Quickly switch between controlling two attached AxeFX units
LED progress indicator when reading parameters
Tabbed interface (add more tabs if you want, it is easy)
Example now includes a few Drive1 parameters on a second tab
Preset name display
Tap tempo display & control

Adding controls is now very easy. Copy and paste one of the containers holding a knob or fader. Be sure you paste it into one of the tabs of the myContainer object, otherwise my scripts won't find the new controls. Change the 'bid' and 'pid' values to specify the block and parameter ID that you want to control. Change the text legend that appears above the control. Save the template under a new name, then test to be sure it is working.
Hi, patch works fine with my setup and also able to call up a lot more parameters. Fantastic! However, I noticed that whenever i change presets via axe fx, lemur would hang and I think as a result of that axe fx would freeze as well. Everything works fine if I were to change presets from iPad. Not sure if this applies to the patch that was uploaded but mine has about 40 parameters including knobs and faders.
Cool! I am glad it is working for you.

I think the new template would support up to 256 knobs/faders. This limitation is set by the max array size in Lemur.

The polling rate can be adjusted in the DoEveryFrame() script. At the very end of the script, a line starting with "NextQueryTime = time + 0.2;". You could try a larger number, like 0.25 to give the AxeFX more time between commands. Or lower the number to see how fast you can get it to work reliably.

AxeFX freezing can occur if the preset in the AxeFX does not contain the blocks the template is trying to query. As soon as Liine fixes the incoming sysex issues, I'll add support for the GetBypassState message, and that should make a lockup less likely.