October 2024: Fractal Audio's VP4 Virtual Pedalboard has been added to the wiki.

Difference between revisions of "Expression pedals and external switches"

From Fractal Audio Wiki
Jump to navigation Jump to search
 
(418 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 +
=Remote control of Fractal Audio devices=
  
[[image:Ev-1-both.png|link=|175px]] [[image:switches.png|175px|link=]] [[image:RJM1024.png|200px|link=]] [[image:MIDI.png|link=]]
+
Fractal Audio's processors can be remotely controlled in various ways. This includes the use of <q>expression pedals</q> such as Fractal Audio's EV-1 and EV-2 pedals, (see below) and/or external switches, either connected directly to a pedal port on the device, to a MIDI controller or to Fractal Audio's [[FC-6 and FC-12 foot controllers]].
  
=Remote control of Fractal Audio's processors=
+
The number of ports, as well as support for a single switch or dual switch, varies per product.
  
Fractal Audio's hardware processors can be remotely controlled in the following ways:
+
Read the following pages for more information:
 +
* [[Axe-Fx_III,_FM9_and_FM3#Pedal_ports|PEDAL ports for pedals and switches]]
 +
* [[VP4#Pedal_ports|PEDAL ports for pedals and switches]]
 +
* [[FC-6 and FC-12 foot controllers]]
  
* Software (MIDI or MIDI-over-USB)
+
=Fractal Audio expression pedals=
* Directly connected expression pedals, and latching or momentary switches (TS or TRS cables)
 
* MIDI
 
* Fractal Audio's foot controllers (MIDI, Ethernet, EtherCON, FASLINK), including connected pedals and switches
 
  
The possibilities depend on the processor.
+
==EV-1 expression pedal==
  
More information:
+
The EV-1 is the large version of Fractal Audio’s expression pedal/analog volume pedal.
  
* [[EV-1 and EV-2 pedals]]
+
Product information:
* [[FC controllers]]
+
<blockquote>
* [[FASLINK]]
+
<HR>
* [[MIDI]]
+
<blockquote>
* [[Software editors]]
+
The EV-1 is an all new EXPRESSION PEDAL, perfect for use with all Fractal Audio Systems products (and many 3rd-party devices). Unlike most expression pedals it has a true linear response with planetary gearing and a long, smooth pedal throw. The EV-1 doubles as an analog volume pedal, with separate IN and OUT jacks connected to an audio-taper pot. It features a sturdy cast metal housing, comfortable non-slip rubber tread, and is available in Black.
* [[RJM Mastermind GT]], [[FAMC Liquid Foot+]]
+
</blockquote>
* [[FracPad]]
+
</blockquote>
* [[Modifiers_and_controllers#Control_Switches|Control Switches]]
 
* [[USB connections and audio]]
 
* [[Connecting and setting levels]]
 
* [[AxeForLemur]]
 
  
=Controlling other devices=
+
Specifications:
 +
* Planetary Gear Drive
 +
* High-quality dual potentiometer rated for 1M rotations
 +
* Durable cast aluminum chassis
 +
* Adjustable pedal tensioner
 +
* 3 jacks at the front: In, Out and Expression. In and Out are for volume
 +
* Requires TRS-to-TRS cable when used as an expression pedal
 +
* Not spring-loaded
 +
* Built-in analog volume pedal (500K high-impedance)
  
Fractal Audio's hardware processors can control other devices through MIDI. The FX8 also provides relays to control other gear.
+
Read the [[Owners_Manuals|Product Guide]] for more information.
  
See:
+
<blockquote>
 +
'''FRACTAL AUDIO QUOTES'''<HR>
 +
<blockquote>
 +
The planetary gear drive solves the dead zone problem.
 +
</blockquote>
  
* [[MIDI]], [[Scene MIDI block]], [[Modifiers_and_controllers#Control_Switches|Control Switches]]
+
<blockquote>
* [[Connecting_and_setting_levels#Relays:_switch_amp_channels_and_more|Relays]]
+
[http://forum.fractalaudio.com/posts/1107283]
 +
They also work as a traditional volume pedal. There are two ganged pots inside, one is a high-impedance log-taper volume pot and the other is a low-impedance linear-taper expression pot. The design is our own.
 +
</blockquote>
  
=AxeForLemur=
+
<blockquote>
 +
[http://forum.fractalaudio.com/posts/1217151]
 +
We make tour-grade equipment. The potentiometer in the EV-1 has a conductive plastic element with IP67 ingress protection. It is rated for 1,000,000 rotations and probably costs 10 times what the pot in other products cost. The housing is cast aluminum which is then powder coated for extra protection. You're getting something you can give to your grandchildren.
 +
</blockquote>
  
AxeForLemur is a Lemur Template designed by David Sorlien to control the Axe-Fx. The Template runs on the Lemur APP by Liine, and connects wirelessly through a logical midi connection to the AxeFx. <BR>This page is intended for users and developers of this template.  
+
<blockquote>
 +
The EV-1s are fully made in China except for the pots which are made in USA as nothing in China or Japan met our lifespan requirement (1 million rotations minimum).
  
==Usage==
+
(May 2021) The EV-1 expression pedal will be manufactured in black only going forward.
 +
</blockquote>
 +
</blockquote>
  
AxeForLemur is a JZML script, licensed by Creative Commons to be a non-commercial, free to use script. The script runs on IOS and Android devices with the [http://liine.net/en/products/lemur/ Lemur Application from Liine]. The Lemur Application communicates with the Axe-Fx either through direct MIDI connection, or through Wifi to a Host Computer, that is connected either through USB or MIDI to the Axe-Fx.
+
==EV-2 expression pedal==
  
To configure an IOS/Android Patch Editor for the  AxeFx:
+
The EV-2 is the smaller version of Fractal Audio’s expression pedal/analog volume pedal.
# Purchase the [http://itunes.apple.com/ca/app/lemur/id481290621?mt=8 Lemur App] ( $20-$35 ) and install it on your Tablet or iPAD.
 
# Go to the [http://liine.net/assets/files/lemur/Lemur-Installer-5.3.2WIN.exe Liine Website] and register yourself as a user, then download, the Lemur Editor and Daemon Software.
 
# Connect your Tablet to your computer's IP network. Verify IP address, and ping your tablet to verify.
 
# Start the Lemur App on your Tablet or IPad.
 
# Download an AxeForLemur.jzml script.  Current version is 3.08.
 
# On your PC run the LemurEditor and load the AxeForLemur.jzml script, Click Connect to send the script to your Tablet or IPAD.
 
# You should see the AxeForLemur Script on your IPAD, on the Default AMP page.
 
# If your AxeFx is connected to your PC/MAC through a USB cable, run the LIINE LEMUR DAEMON on your machine. This DEAMON will provide an IP Socket on the Network for MIDI and OSC communications from the IPAD to any MIDI devices on your PC/MAC.
 
# Within Lemur on your Tablet Open the Settings drop down list and select "More Settings...", Setup Midi Targets, From: and To:. You may need tap Add Target. You should see a list of network computers, with MIDI devices high lit. Choose AxeFx from the computer that is running the LEMUR DAEMON, for both "From: and "To:. If no devices show up, please verify the IPAD is connected to the IP network, and that the Lemur Daemon is running, and the AxeFX is turned on, and it is connected with USB or MIDI cable.
 
# On the Preset Select page of the AxeForLemur script, configure the midi settings to match your setup.  Example, Column-A should Device should be set to AxeFxII or AxeFxXL+ etc, midi channel to '1' to match your MIDI settings, and Lemur target set to the Target within the Lemur Menu.
 
# Test by Tapping the Preset Up/Down.
 
# Troubleshooting can be a bit challenging and might require a bit of system debug and tweaking.
 
  
==Design==
+
Specifications:
 +
* Planetary Gear Drive
 +
* High-quality dual potentiometer rated for 1M rotations
 +
* Durable cast aluminum chassis
 +
* Adjustable pedal tensioner
 +
* 1 jack at the front: expression
 +
* In and Out jacks at the sides for volume (analog, 500K high-impedance)
 +
* Requires TRS-to-TRS cable when used as an expression pedal
 +
* Not spring-loaded
  
Design background into key elements of the AxeToLemur script:
+
See the [[Owners_Manuals|Product Guide]] and [http://www.fractalaudio.com/downloads/misc/EV-2-dimensions.pdf Layout Drawing] for more information.
  
Axe For Lemur is a comprehensive Lemur script based in Quasi XML, Objector based C-Script with out pre-processor, structures, pointers etc. The Script is object based, and exists in the JazzInterface tab object AxeForLemur.  Global references exist in this scope.
+
==Dimensions==
  
===Design Initialization===
+
EV-1, Ernie Ball and Mission pedals:
  
===Design Device Selection===
+
[[image:exppedals sizes.png|200px]]
  
The preset page (AxeForLemur/dlgProgChange/T1) Contains a Matrix of Midi settings for up to 4 target devices.
+
EV-1, Mission and EV-2 pedals:
  
For each 'Target Device'  The user can select and increment/decrement (cTargets/padUpDn) the following (cTargets/swSettings):
+
[[image:Pedals.jpg|200px]]
  
* Type : { AxeFx, AxeFx II, Gen Midi, No Bank, Eclipse } = aUser.cMidi.devtypes[ ]
+
=Expression pedal=
  
* Display Offset : { 0 or 1 } = aUser.cMidi.dispoffset[ ]
+
==Connect a pedal==
  
* MIDI Channel : { 1 .. 16} = aUser.cMidi.chans[ ]
+
The requirements for an expression pedal are:
 +
* linear resistance taper
 +
* max resistance of 10-100 kOhm
 +
* TRS-to-TRS cable connection (<q>stereo jack</q>)
  
* Lemur Target : { 0.. 3 } = aUser.cMidi.targets[ ]
+
From the Owners Manual:
  
The user can select one of A,B,C, or D target devices; only one is active at a time.
+
<blockquote>
 +
<HR>
 +
<blockquote>
 +
<q>TRS</q> stands for <q>TIP-RING-SLEEVE</q> and describes the configuration of a 1/4" end plug or jack with three connectors. Normal guitar cables are <q>TS</q> (Tip-Sleeve) since they lack the ring required for a third contact. Expression pedals require TRS cables because full control voltage is transmitted to them on one contact (the tip), while less than full voltage is returned to on another (the ring) so the host device is able to sense and utilize the pedal position. The third contact (sleeve) is connected to ground.
 +
</blockquote>
 +
</blockquote>
  
'''The objective is to integrate  AxeFxXL and AxeFxXL+ into the list of supported Device Types.
+
==Configure a pedal==
  
Since this template was last updated by David Sorlien, two new AxeFx devices have been created.    The XL and XL+ have more or less the same SysEx protocols as the AxeFx ( subject to change ), but have New SysEx device ID codes.  The following is a break down of work required to make AxeForLemur support other Fractal Audio Devices.
+
Pedals which are connected directly to the Fractal Audio device can be configured and calibrated on the Pedal page of the [[Setup menu]]. On the VP4, this is the Setup > Pedals menu.
  
Essentially the T1/cTargets/swSettings is a 4 x 4 Switch matrix.  Pressing a button will provide a 0..16 button index within the T1/cTargets/swSettings/x variable.  Pressing one of the T1/cTargets/padUpDn will cause the selected T1/cTargets/swSettings/x indexed value to be Incremented/decremented.  The padUpDn/tap() changesbutton matrix.
+
Pedals which are connected through another connected device, such as [[FC-6 and FC-12 foot controllers]] or MIDI controllers, must be configured in the configuration menu of that device, including calibration. For the FC controllers, use the FC controllers menu in the [[Setup menu]].
  
Add two more values to devtypes
+
Always calibrate the pedal before use. This makes sure that the pedal's full sweep range is being used.
  
  change:
+
You can assign the pedal directly to parameters in the preset. Or you can assign an [[External controller]] to that parameter, and then assign the pedal to that specific external controller. The latter option provides more flexibility.
    aUser.cMidi.devtypes[a] = clamp(aUser.cMidi.devtypes[a]+1, 0, 4);
 
    aUser.cMidi.devtypes[a] = clamp(aUser.cMidi.devtypes[a]-1, 0, 4);
 
  to:
 
    aUser.cMidi.devtypes[a] = clamp(aUser.cMidi.devtypes[a]+1, 0, 6);
 
    aUser.cMidi.devtypes[a] = clamp(aUser.cMidi.devtypes[a]-1, 0, 6);
 
  
Add two more strings to button objet lablels
+
==What happens if the pedal is not connected==
  
  swSettings/updatelabels()
+
If a parameter is controlled by a switch or pedal, and that pedal or switch is not connected at startup, the processor needs to know what value to use. Disconnecting a pedal that operates as a Volume pedal should not mute the device, for example.
  for(i=0;i<4;i++){
 
    if(aUser.cMidi.devtypes[i]==0) a[i] = 'AxeFX';
 
    else if(aUser.cMidi.devtypes[i]==1) a[i] = 'AxeFX II';
 
    else if(aUser.cMidi.devtypes[i]==2) a[i] = 'Gen MIDI';
 
    else if(aUser.cMidi.devtypes[i]==3) a[i] = 'No Bank';
 
    else if(aUser.cMidi.devtypes[i]==4) a[i] = 'Eclpse';
 
    else if(aUser.cMidi.devtypes[i]==5) a[i] = 'AxeXL';
 
    else if(aUser.cMidi.devtypes[i]==6) a[i] = 'AxeXL+'; }
 
  
Change Device ID's within SysEx messages to include devie ids { 6 and 7 }
+
For parameters that have been assigned to an [[Controllers and modifiers|External controller]], the desired initial value can be set in the [[Setup menu]] under Initial Value.
  
  <SCRIPT name="IsAxeSysex(msg)" ..
+
Current firmware also features activity sensing for internal pedals, FC pedals and external controllers. This stops Auto-Engage from activating an effect if the pedal/controller is not connected. This prevents, for example, a Wah being engaged if Auto-Engage is on but no pedal is connected (i.e., you left your expression pedal at home).
  if(msg[0]==0 && msg[1]==1 && msg[2]==0x74 && ( msg[3]<=3 || msg[3]==6 || msg[3]==7 )
 
  ...
 
  else if(msg[3]==3) st = 'Axe-FX II';
 
  else if(msg[3]==6) st = 'Axe-FX XL';
 
  else if(msg[3]==7) st = 'Axe-FX XL+';
 
  
and change all hard coded device id's "0x74,3" with "0x74,6" or "0x74,7" in
+
<blockquote>
 +
'''FRACTAL AUDIO QUOTES'''
 +
<hr>
  
  SendSetParam(b, p, v)
+
<blockquote>
  SendGetParam(b, p)
+
[https://forum.fractalaudio.com/threads/controller-issue.203213/post-2540843]
  SendGetPresetName()
+
[…]
  SendGetBypState()
+
The expression pedal inputs on the Axe-Fx and on the FC6/12 have pullup resistors. If a pedal is unplugged the value goes to 100%. This is done so that if a pedal is connected to volume and you forget your volume pedal you'll still have sound.
  SendGetPresetNumber()
+
</blockquote>
  SendLooperMonEn(en)
+
</blockquote>
  SendGetSceneState()
 
  SendSetModifier(b, p, m, v)
 
  SendGetModifier(b, p, m)
 
  SendPlaceEffect(b, pos, flag)
 
  SendConnectEffect(p1, p2, f)
 
  SendSetPresetName(name)
 
  SynthMidiNoteOnIn(MIDI_ARGS)
 
  SendSavePatch(program, bank)
 
  SendGetCabName(cabnum)
 
  
It makes sense to define a class variable like cV.DevID, and make sure it is set on startup by the AxeFx device ID selected by the A,B,C,D device selector.
+
==Factory presets and pedals==
  
===Design Modifiers===
+
Many factory presets let you use an expression pedal, for example as a Wah. Search the [[Factory presets]] page in the wiki for "External".
  
Modifiers provide a means to dynamically change a subset of the block parameters with automatic, and external functions.    The AxeToLemur Script has a partial implementation of Modifiers.  The AxeToLemur.pdf describes 'double tapping' the intended modify-able' control to enable modifier, but this doesn't appear to be within the implementation.
+
==Create a volume pedal==
  
Within the 'control's bps[] array, for hw==0, element at index==6 is the Modifier number, if this value is >= 0, then the control should have modify-able values.  This applies to 'bps' of sliders, custom buttons, muxed-sliders.  If the 'control's bps[8] is set to 1, then there is an active modifier on the control.
+
To set up a volume pedal in a preset, read [[Volume/Panner block]].
  
It is assumed that 'double tapping' the 'Zoom' button will enable a RED "MOD" feature on the Zoom button.  cS.DoubleTap() captures double tap event. This sets cV.dbltapzoom[2] = 1;  A parameter that is 'Modify-able' has a Green 'txt' value.
+
To set up a <q>global</q> volume pedal that works across all presets, read the section in the [[Owners_Manuals|Owner's Manual]].
  
As of 3.08, the repainting logic within the APP did not support GREEN 'txt' labels.
+
==Create a Wah pedal==
  
cS.psmxfdr(obj, p, p, m, t), and cS.psmxcb(obj,b,p,m,t) used to set/map a 'muxed fader' to an AxeFx control.  This function also sets the colour of the text of a control
+
Read [[Wah block]] for more information.
  
Notes:
+
==Create a Whammy pedal==
  
ResetModifierText(..), called when changing pages in Lemur, to clear out cV.modlistlast
+
Read [[Pitch_block#Whammy|Pitch block]] for more information.
  
(cV.rState==5) modifiers are being queried
+
==Control the amount of Delay and/or Reverb==
SendGetModifier(..)
 
  
(cV.rState==6) modifiers are being queried
+
You can use an expression pedal to control the amount or delay or reverb. Assign the pedal as an [[External controller]] to the INPUT GAIN parameter in the Delay and/or Reverb Block.
SendGetModifier(mbps[hw], mbps[hw+6], a[i]); response in HandleModifierValMsg(msg), calls UpdateModifier(b, p, m, v);
 
  
(cV.rState==7) modifiers are being reset
+
==Morph between clean and dirty tones==
SendSetModifier(..)
 
  
buildModCtlList() saves cV.modlist[] to cV.modlistlast[], iterates through all objects in cMain. To find build a cV.modlist[] of modifyable parameters within objects that 1. contain a bps[], 2. are in a visible block, 3. the block is active in the preset, the bps[6] is >= 0.  cV.dbltapzoom[] is filled with same array of objects
+
Watch the video below.
  
cS.DoubleTap() appears to be implemented to open a Modifier Dialog: dlgModifiers.showme(1); but it is not called within the Script.  This function will trigger a 'DoEveryFrame' midi query of the Modifier setting.
+
==Display the tuner at heel down==
  
3.09 TODO List:
+
Read [[Tuner#Display_Tuner_on_heel_down|Tuner]] for more information.
  
1. confirm all modifier indexes on Fractal Parameters
+
==Auto-engage an effect==
  
2. call cS.DoubleTap() when Zoom == MOD and a modifyable control is Tapped.
+
Read [[Auto-Engage]] for more information.
  
3. verify control's txt value is rendered RED when control modified control is active (previously engaged, polled through DoEveryFrame())
+
==Use a pedal for multiple tasks==
  
===Project Globals===
+
You can dedicate a single expression pedal to multiple tasks, within a single preset. Below are various examples to accomplish this.
  
Var blkd=
+
'''Control either Wah or Whammy''':
 +
# Insert a Wah block.
 +
# Insert a Pitch block, directly above or below the Wah in a parallel row. Connect it back to the main row.
 +
# In the Modifier menu of BOTH effects (Wah:Frequency parameter, Pitch:Control) set Source to External 1. Enable Auto-Engage.
 +
# Add a Mixer block to the main row, just after Wah and Pitch.
 +
# Edit Mixer: enter the modifier menu of the Gain parameter for the row that connects to the Wah. Set Source to another External controller (which will be attached to an IA-switch to switch between Wah and Whammy). Set Start Value to 100% and End Value to 0.
 +
# Do the same for the row that connects to the Pitch block. But: set Start Value to 0% and End Value to 100%.
 +
# Program an IA switch to switch between Wah and Whammy, using the Mixer rows. Use the CC of the external controller that you specified while editing the Mixer block, and send "127" for the Wah, and "0" for the Whammy.
 +
# Moving the pedal should activate both the Wah and the Pitch block. But thanks to the Mixer block you'll only hear one of these effects. If you're hearing the Wah and the Whammy effects simultaneously, you need to press the IA-switch to get the Mixer block to work.
  
Var blksq=
+
'''Control Volume and Wah''': (source: Bakerman)
 +
# Place a Volume block on the grid.
 +
# Assign an IA switch to an external controller's CC.
 +
# Assign another external controller the Wah and Volume control knobs.
 +
# Set the first external controller as a Bypass modifier for both blocks and reverse the slope of one (start 100, end 0).
 +
# Now the IA switch will toggle between Wah/Volume and the pedal will control both.
  
Var blok=
+
'''Using Scenes and channels''':
 +
# Put Wah and Pitch and Volume in one vertical column.
 +
# Assign an external controller (pedal) to the effects. Enable Auto-Engage in Wah and Pitch.
 +
# Configure channel A, then copy it to channel B.
 +
# In Wah and Pitch turn down Level in Channel B.
 +
# Scene 1 is for Wah. Set Wah to Channel A, set Pitch to channel B, bypass Volume.
 +
# Scene 1 is for Whammy. Set Wah to channel B, set Pitch to channel A, bypass Volume.
 +
# Scene 3 is for Volume. Set Wah and Pitch to channel B, engage Volume.
  
Var blx=
+
'''Using the Multiplexer block''':
  
Var debugflag=
+
: Read [[Multiplexer block]] for more information.
  
Var hw= 'hardware version =0 AxeFx, =1 others, Ultra etc.
+
'''Control Volume and Wah with an expression pedal that has a switch''':
 +
# Put the Wah and Volume blocks on the grid.
 +
# Configure both blocks to be controlled by the pedal. Set the Wah to Auto-Engage.
 +
# Attach the pedal's switch to the Bypass parameter of both blocks. Set Min/Max in the modifier menu in one block to 0/100 and in the other block to 100/0.
 +
# The switch now switches between Wah/Volume duty.
  
Var Querying=
+
=External switch=
  
tidx=
+
==Connect a switch==
  
'''Script BuildParamList()'''
+
The FC controllers and FM3 support a dual-button switch per port when using a TRS cable, or a single-button switch when using a TS-TS cable.
  
:Sets cV.bpobj to first object in cMain, and iterates through all objects to build cV.BlocksToRefresh list. For Block numbers (99..200) that are in the preset values are added to a refresh list
+
The Axe-Fx III, FM9 and VP4 limit each PEDAL port to a single switch (TS cable).
  
Script RefreshSequencer()
+
==Configure a switch==
  
Script SendCCAxe(ccnum, ccval)
+
You can connect external switches to the device or to [[FC-6 and FC-12 foot controllers]] to expand switching possibilities. External switches can perform the same tasks as "local" switches on an FC controller, FM3 or FM9, like:
  
Script SendConnectEffect(p1, p2, f)
+
* use [[Tempo |Tap Tempo]]
 +
* engage the [[Tuner]]
 +
* switch [[Presets]]
 +
* switch [[Scenes]]
 +
* switch [[Channels]]
 +
* engage or bypass effect blocks
 +
* increase or decrease volume and save the preset
 +
* duplicate the function of onboard switches on the FM3, FM9 or FC controller
 +
* and more.
  
Script SendGetByState()
+
Configure the switch(es) in the [[Setup menu]].
  
Script SendGetCabName(cabnum)
+
; Switch Behavior : determines how an external switch operates. With the default setting of "Follow Hardware" a switch  behaves as you might expect. If you want a momentary switch to behave like a latching/toggle switch instead, use the "Virtual Toggle" option. Now, every time you tap the switch, its state on the Axe-Fx or FM3 will flip from ON to OFF, or OFF to ON. Note that if you accidentally apply the Virtual Toggle setting to a physical latching switch, you'll need to tap the switch twice for it to toggle.
  
Script SendGetModifier(b, p, m)
+
; Switch Polarity : allows reversing the polarity of any connected switch. The option <q>Normal</q> assumes a <q>momentary make</q> switch. Use the option <q>Reverse</q> when using a <q>momentary break</q> switch, or for creative applications.
  
Script SendGetParam(b,p)
+
An external switch can operate globally as a copy of an onboard switch in any layout by assigning it as a '''Stand In switch'''. It's an exact surrogate for the onboard switch, and can even be used with per-preset functions. Momentary switches are preferred for use as stand-ins, because they more closely mimic the behavior of the on-board switches.
  
Script SendGetPresetName()
+
You can assign the switch directly to parameters in the preset. Or you can assign an [[External controller]] to that parameter, and then assign the switch to that specific external controller. The latter option provides more flexibility.
  
Script SendGetPresetNumber()
+
==Scroll through presets==
  
Script SendGetRoutingGrid()
+
A single button switch, connected to the pedal port, can be used to scroll through the first bank of presets. This works fine if you have just a few presets to switch between. And if the processor has more than one PEDAL jack, you can assign one to increment and the other to decrement.
  
Script SendGetSceneState()
+
==Engage and bypass an effect==
  
Script SendLooperMonEn(en)
+
To engage or bypass a specific effect, using an external switch, assign the switch to the effect block in the [[Setup menu]].
  
Script SendPG2Axe(pgnum)
+
==Maintain bypass state when switching scenes==
  
Script SendPlaceEffect(b,pos,flag)
+
You can use an external switch to maintain the bypass state of an effect when switching through presets and scenes.
  
Script SendSavePath(program, bank)
+
# Connect the switch.
 +
# Assign the Bypass Mode parameter of the effect to the switch through an [[External controller]].
 +
# Repeat this in each preset which you want to control.
 +
# Now the switch will control the effect's engaged/bypass state, regardless of the effect's saved state per preset or scene, and stay in sync.
  
Script SendSetModifier(b, p, m, v)
+
=Tips, tricks and troubleshooting=
  
Script SendSetParam(b, p, v)
+
==Pedal ports: ADC levels==
  
Script SendSetPresetName(name)
+
Check the ADC (Analog-to-Digital Converter) levels of the pedal ports in the [[Setup menu]].
  
Script SynthMidiNoeOffIn(MIDI_ARGS)
+
==Zipper noise==
  
Script SynthMidiNoteOnIn(MIDI_ARGS)
+
If moving the expression pedal creates choppy sounds or zipper noise, increase the Damping parameter in the [[Controllers and modifiers|modifier menu]].
  
Script sxoutHandler(b,p, s, val)
+
==Pedal operates only for a part of the sweep==
  
Script UserMidiCCIn(MIDI_ARGS)
+
If an expression pedal only seems to operate for a part of its sweep, make sure that it's connected with a TRS-TRS cable and that it has been calibrated properly. Also, make sure that it really is an expression pedal and not a volume pedal.
  
Script UserMIDINOTEIn(MIDI_ARGS)
+
=Videos=
 
 
==Objects==
 
 
 
Major AxeForLemur Objects:
 
 
 
===aUser===
 
User specific settings, like favorite presets, midi channel. These can be persistent if the user re-saves the script after mondifications are made through the script itself. Global midi CC's are stored in gen1.cc*
 
 
 
Querying : set to 1 during referesh, most likely to prevent re-triggering
 
 
 
'''aUser.cMidi.gen2''' :: MIDI CC # numbers for different MIDI CC parameters
 
 
'''..scenescc[0]'''  :  MIDI CC # number for 'scene select'
 
 
 
===cMain===
 
User interface for Axe-Fx blocks. 
 
 
 
cMain contains UI design and configuration for each Block (pair) Tab within AxeForLemur script
 
 
 
IntState3(..) macro, configures button labels within the UI interface.  Typically these buttons are for Block instance selection, but some are for selecting other aspects of each' block Tab.
 
 
 
Each AxeForLemur Block Tab contains multiple containers, one for each UI element.  These containers more or less contain a symetrical set of attributes, functions and UI controls that allow for support from a common set of functions (else where in the code).
 
 
 
Each UI Element contains:
 
  bps: Midi / UI control structure
 
  ctl: the lemur screen object
 
    x : Primary value for this control
 
    z : ???
 
  txt:  A screen description of the parameter. Example ('volume')
 
  txtval: text object on screen to describe the object parameter value.  Example (0..127)
 
  Optional: 
 
    cbDlg: a pop up dialog object
 
        x : value for the selected value of the dialog
 
        tap(..) : function called to initialize the dialog
 
 
 
When a control changes a 'magic' must be called to send the ctl's value to the bps[..] defined midi destination
 
 
 
===cS===
 
Common Scripting Object. 
 
 
 
Common Script Object Container
 
 
 
'''addRefreshParam( b, p) : Adds a parameter to one of:
 
 
 
  (cV.blist[0..249],    cV.plist[0..249]),
 
  (cV.blist2[250..499], cVplist2[250..499]),
 
  (cV.blist3[500..749], cV.plist3[500..749]) at position cV.numcontrols,
 
 
 
But doesn't appear to increase cV.numcontrols, called from Project.BuildParamList()
 
 
 
'''cS.psmxfdr(obj, b, p, -1, 'label')'''
 
 
 
===cScanX===
 
 
 
===AxeForLemur cShow===
 
Group of scripts to refresh Axe Block Tabs. 
 
 
 
===cTabSel===
 
 
 
===cV===
 
Group of global variables.
 
 
 
'''blist, plist, blist2, plist2, blist3, plist3'''  250 entry lists of active 'b==block id's and p==parameter ids.  each list has a physical limit of 250 elements.  These 6 arrays constitute a 2D array of 750 items.
 
 
 
===AxeForLemur ...===
 
Pop Up Dialogs. 
 
 
 
Lesser Objects (for now)
 
 
 
cbHideRoutes :
 
 
 
cbHideRoutes :
 
 
 
cbProgName : Button on bottom of UI to display dlgProgChange.showme(x)
 
 
 
cbRefresh :
 
 
 
cbTapTempo : Sends a CC 14 value 127 to currently selected Axe target, method cbTapTempo.hdlSxin(..) sets the lemur Tap button different colors
 
 
 
cbZoom:  A double tap 'Zoom' function for sliders, dont know how this works.
 
 
 
aUser.cMidi.gen2.ccTapTempo
 
 
 
''' Global Functions
 
 
 
SendCC2Axe(..)
 
 
 
==Development Tools==
 
 
 
[http://www.firstobject.com/dn_editor.htm firstobject XML Editor Application.]
 
This is a light weight free XML editor that doesnt get confused by the Lemur script. The Editor has a good dual view ( one view is an XML object tree, the other side is the pure text.  Using F7 allows you to sync between the two.
 
 
 
KDIFF3 [http://kdiff3.sourceforge.net/ http://kdiff3.sourceforge.net]
 
Since the AxeForLemur is a large monolithic text file, having a good DIFF tool allows you to see the changes LemurEditor and text editors have applied to your file. The LemurEditor does some strange things to this template when it is edited, the preference is to make clean edits with FirstObject Editor, and not use the Lemur Editor directly, as it has a habit of changing many unintended parameters throughout the script.
 
 
 
SVN or Git are good tools to manage progressive changes to the script.
 
 
 
==Releases and Resources==
 
 
 
[http://forum.fractalaudio.com/axe-fx-ii-discussion/98926-return-lemur-support-here.html return-lemur-support-here]
 
  
 +
[[video:Leon-ExpPedal-Functions]]
 +
[[video:Rosh-ExpPedal-Multiple]]
 +
[[video:Sus-EV2]]
 +
[[video:French-EV]]
 +
[[video:Cooper-EV-Blend]]
 +
[[video:Cooper-Wah-Volume]]
 +
[[video:Rosh-ExpPedals]]
 +
[[video:Cooper-WahWhammyOnePedal]]
  
 
[[category:Axe-Fx2]]
 
[[category:Axe-Fx2]]
 
[[category:Axe-Fx3]]
 
[[category:Axe-Fx3]]
 +
[[category:FM3]]
 +
[[category:FM9]]
 +
[[category:VP4]]
 
[[category:AX8]]
 
[[category:AX8]]
 
[[category:FX8]]
 
[[category:FX8]]
 
[[category:Remote]]
 
[[category:Remote]]
[[category:Software]]
+
[[category:All]]

Latest revision as of 12:37, 1 November 2024

Remote control of Fractal Audio devices

Fractal Audio's processors can be remotely controlled in various ways. This includes the use of expression pedals such as Fractal Audio's EV-1 and EV-2 pedals, (see below) and/or external switches, either connected directly to a pedal port on the device, to a MIDI controller or to Fractal Audio's FC-6 and FC-12 foot controllers.

The number of ports, as well as support for a single switch or dual switch, varies per product.

Read the following pages for more information:

Fractal Audio expression pedals

EV-1 expression pedal

The EV-1 is the large version of Fractal Audio’s expression pedal/analog volume pedal.

Product information:


The EV-1 is an all new EXPRESSION PEDAL, perfect for use with all Fractal Audio Systems products (and many 3rd-party devices). Unlike most expression pedals it has a true linear response with planetary gearing and a long, smooth pedal throw. The EV-1 doubles as an analog volume pedal, with separate IN and OUT jacks connected to an audio-taper pot. It features a sturdy cast metal housing, comfortable non-slip rubber tread, and is available in Black.

Specifications:

  • Planetary Gear Drive
  • High-quality dual potentiometer rated for 1M rotations
  • Durable cast aluminum chassis
  • Adjustable pedal tensioner
  • 3 jacks at the front: In, Out and Expression. In and Out are for volume
  • Requires TRS-to-TRS cable when used as an expression pedal
  • Not spring-loaded
  • Built-in analog volume pedal (500K high-impedance)

Read the Product Guide for more information.

FRACTAL AUDIO QUOTES


The planetary gear drive solves the dead zone problem.

[1] They also work as a traditional volume pedal. There are two ganged pots inside, one is a high-impedance log-taper volume pot and the other is a low-impedance linear-taper expression pot. The design is our own.

[2] We make tour-grade equipment. The potentiometer in the EV-1 has a conductive plastic element with IP67 ingress protection. It is rated for 1,000,000 rotations and probably costs 10 times what the pot in other products cost. The housing is cast aluminum which is then powder coated for extra protection. You're getting something you can give to your grandchildren.

The EV-1s are fully made in China except for the pots which are made in USA as nothing in China or Japan met our lifespan requirement (1 million rotations minimum).

(May 2021) The EV-1 expression pedal will be manufactured in black only going forward.

EV-2 expression pedal

The EV-2 is the smaller version of Fractal Audio’s expression pedal/analog volume pedal.

Specifications:

  • Planetary Gear Drive
  • High-quality dual potentiometer rated for 1M rotations
  • Durable cast aluminum chassis
  • Adjustable pedal tensioner
  • 1 jack at the front: expression
  • In and Out jacks at the sides for volume (analog, 500K high-impedance)
  • Requires TRS-to-TRS cable when used as an expression pedal
  • Not spring-loaded

See the Product Guide and Layout Drawing for more information.

Dimensions

EV-1, Ernie Ball and Mission pedals:

Exppedals sizes.png

EV-1, Mission and EV-2 pedals:

Pedals.jpg

Expression pedal

Connect a pedal

The requirements for an expression pedal are:

  • linear resistance taper
  • max resistance of 10-100 kOhm
  • TRS-to-TRS cable connection (stereo jack)

From the Owners Manual:


TRS stands for TIP-RING-SLEEVE and describes the configuration of a 1/4" end plug or jack with three connectors. Normal guitar cables are TS (Tip-Sleeve) since they lack the ring required for a third contact. Expression pedals require TRS cables because full control voltage is transmitted to them on one contact (the tip), while less than full voltage is returned to on another (the ring) so the host device is able to sense and utilize the pedal position. The third contact (sleeve) is connected to ground.

Configure a pedal

Pedals which are connected directly to the Fractal Audio device can be configured and calibrated on the Pedal page of the Setup menu. On the VP4, this is the Setup > Pedals menu.

Pedals which are connected through another connected device, such as FC-6 and FC-12 foot controllers or MIDI controllers, must be configured in the configuration menu of that device, including calibration. For the FC controllers, use the FC controllers menu in the Setup menu.

Always calibrate the pedal before use. This makes sure that the pedal's full sweep range is being used.

You can assign the pedal directly to parameters in the preset. Or you can assign an External controller to that parameter, and then assign the pedal to that specific external controller. The latter option provides more flexibility.

What happens if the pedal is not connected

If a parameter is controlled by a switch or pedal, and that pedal or switch is not connected at startup, the processor needs to know what value to use. Disconnecting a pedal that operates as a Volume pedal should not mute the device, for example.

For parameters that have been assigned to an External controller, the desired initial value can be set in the Setup menu under Initial Value.

Current firmware also features activity sensing for internal pedals, FC pedals and external controllers. This stops Auto-Engage from activating an effect if the pedal/controller is not connected. This prevents, for example, a Wah being engaged if Auto-Engage is on but no pedal is connected (i.e., you left your expression pedal at home).

FRACTAL AUDIO QUOTES


[3] […] The expression pedal inputs on the Axe-Fx and on the FC6/12 have pullup resistors. If a pedal is unplugged the value goes to 100%. This is done so that if a pedal is connected to volume and you forget your volume pedal you'll still have sound.

Factory presets and pedals

Many factory presets let you use an expression pedal, for example as a Wah. Search the Factory presets page in the wiki for "External".

Create a volume pedal

To set up a volume pedal in a preset, read Volume/Panner block.

To set up a global volume pedal that works across all presets, read the section in the Owner's Manual.

Create a Wah pedal

Read Wah block for more information.

Create a Whammy pedal

Read Pitch block for more information.

Control the amount of Delay and/or Reverb

You can use an expression pedal to control the amount or delay or reverb. Assign the pedal as an External controller to the INPUT GAIN parameter in the Delay and/or Reverb Block.

Morph between clean and dirty tones

Watch the video below.

Display the tuner at heel down

Read Tuner for more information.

Auto-engage an effect

Read Auto-Engage for more information.

Use a pedal for multiple tasks

You can dedicate a single expression pedal to multiple tasks, within a single preset. Below are various examples to accomplish this.

Control either Wah or Whammy:

  1. Insert a Wah block.
  2. Insert a Pitch block, directly above or below the Wah in a parallel row. Connect it back to the main row.
  3. In the Modifier menu of BOTH effects (Wah:Frequency parameter, Pitch:Control) set Source to External 1. Enable Auto-Engage.
  4. Add a Mixer block to the main row, just after Wah and Pitch.
  5. Edit Mixer: enter the modifier menu of the Gain parameter for the row that connects to the Wah. Set Source to another External controller (which will be attached to an IA-switch to switch between Wah and Whammy). Set Start Value to 100% and End Value to 0.
  6. Do the same for the row that connects to the Pitch block. But: set Start Value to 0% and End Value to 100%.
  7. Program an IA switch to switch between Wah and Whammy, using the Mixer rows. Use the CC of the external controller that you specified while editing the Mixer block, and send "127" for the Wah, and "0" for the Whammy.
  8. Moving the pedal should activate both the Wah and the Pitch block. But thanks to the Mixer block you'll only hear one of these effects. If you're hearing the Wah and the Whammy effects simultaneously, you need to press the IA-switch to get the Mixer block to work.

Control Volume and Wah: (source: Bakerman)

  1. Place a Volume block on the grid.
  2. Assign an IA switch to an external controller's CC.
  3. Assign another external controller the Wah and Volume control knobs.
  4. Set the first external controller as a Bypass modifier for both blocks and reverse the slope of one (start 100, end 0).
  5. Now the IA switch will toggle between Wah/Volume and the pedal will control both.

Using Scenes and channels:

  1. Put Wah and Pitch and Volume in one vertical column.
  2. Assign an external controller (pedal) to the effects. Enable Auto-Engage in Wah and Pitch.
  3. Configure channel A, then copy it to channel B.
  4. In Wah and Pitch turn down Level in Channel B.
  5. Scene 1 is for Wah. Set Wah to Channel A, set Pitch to channel B, bypass Volume.
  6. Scene 1 is for Whammy. Set Wah to channel B, set Pitch to channel A, bypass Volume.
  7. Scene 3 is for Volume. Set Wah and Pitch to channel B, engage Volume.

Using the Multiplexer block:

Read Multiplexer block for more information.

Control Volume and Wah with an expression pedal that has a switch:

  1. Put the Wah and Volume blocks on the grid.
  2. Configure both blocks to be controlled by the pedal. Set the Wah to Auto-Engage.
  3. Attach the pedal's switch to the Bypass parameter of both blocks. Set Min/Max in the modifier menu in one block to 0/100 and in the other block to 100/0.
  4. The switch now switches between Wah/Volume duty.

External switch

Connect a switch

The FC controllers and FM3 support a dual-button switch per port when using a TRS cable, or a single-button switch when using a TS-TS cable.

The Axe-Fx III, FM9 and VP4 limit each PEDAL port to a single switch (TS cable).

Configure a switch

You can connect external switches to the device or to FC-6 and FC-12 foot controllers to expand switching possibilities. External switches can perform the same tasks as "local" switches on an FC controller, FM3 or FM9, like:

  • use Tap Tempo
  • engage the Tuner
  • switch Presets
  • switch Scenes
  • switch Channels
  • engage or bypass effect blocks
  • increase or decrease volume and save the preset
  • duplicate the function of onboard switches on the FM3, FM9 or FC controller
  • and more.

Configure the switch(es) in the Setup menu.

Switch Behavior 
determines how an external switch operates. With the default setting of "Follow Hardware" a switch behaves as you might expect. If you want a momentary switch to behave like a latching/toggle switch instead, use the "Virtual Toggle" option. Now, every time you tap the switch, its state on the Axe-Fx or FM3 will flip from ON to OFF, or OFF to ON. Note that if you accidentally apply the Virtual Toggle setting to a physical latching switch, you'll need to tap the switch twice for it to toggle.
Switch Polarity 
allows reversing the polarity of any connected switch. The option Normal assumes a momentary make switch. Use the option Reverse when using a momentary break switch, or for creative applications.

An external switch can operate globally as a copy of an onboard switch in any layout by assigning it as a Stand In switch. It's an exact surrogate for the onboard switch, and can even be used with per-preset functions. Momentary switches are preferred for use as stand-ins, because they more closely mimic the behavior of the on-board switches.

You can assign the switch directly to parameters in the preset. Or you can assign an External controller to that parameter, and then assign the switch to that specific external controller. The latter option provides more flexibility.

Scroll through presets

A single button switch, connected to the pedal port, can be used to scroll through the first bank of presets. This works fine if you have just a few presets to switch between. And if the processor has more than one PEDAL jack, you can assign one to increment and the other to decrement.

Engage and bypass an effect

To engage or bypass a specific effect, using an external switch, assign the switch to the effect block in the Setup menu.

Maintain bypass state when switching scenes

You can use an external switch to maintain the bypass state of an effect when switching through presets and scenes.

  1. Connect the switch.
  2. Assign the Bypass Mode parameter of the effect to the switch through an External controller.
  3. Repeat this in each preset which you want to control.
  4. Now the switch will control the effect's engaged/bypass state, regardless of the effect's saved state per preset or scene, and stay in sync.

Tips, tricks and troubleshooting

Pedal ports: ADC levels

Check the ADC (Analog-to-Digital Converter) levels of the pedal ports in the Setup menu.

Zipper noise

If moving the expression pedal creates choppy sounds or zipper noise, increase the Damping parameter in the modifier menu.

Pedal operates only for a part of the sweep

If an expression pedal only seems to operate for a part of its sweep, make sure that it's connected with a TRS-TRS cable and that it has been calibrated properly. Also, make sure that it really is an expression pedal and not a volume pedal.

Videos