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
 
(409 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 (through MIDI / MIDI-over-USB)
+
=Fractal Audio expression pedals=
* Directly connected expression pedals, and latching or momentary switches (through TS / TRS cables)
 
* MIDI
 
* Fractal Audio's MFC-101 and FC controllers (through MIDI, Ethernet, EtherCON or FASLINK), including connected pedals and switches
 
* Onboard switches on the AX8 and FX8
 
  
The possibilities depend on the processor. More information:
+
==EV-1 expression pedal==
  
* [[AX8#Buttons.2C_knobs.2C_switches|AX8]]
+
The EV-1 is the large version of Fractal Audio’s expression pedal/analog volume pedal.
* [[FX8#Buttons.2C_knobs.2C_switches|FX8]]
 
* [[EV-1 and EV-2 pedals]]
 
* [[FC controllers]]
 
* [[FASLINK]]
 
* [[MIDI]]
 
* [[Software editors]]
 
* [[RJM Mastermind GT]], [[FAMC Liquid Foot+]]
 
* [[FracPad]]
 
* Control Switches (see below)
 
* [[USB connections and audio]]
 
* [[Connecting and setting levels]]
 
* AxeForLemur (see below)
 
  
=Controlling other devices with a Fractal Audio processor=
+
Product information:
 +
<blockquote>
 +
<HR>
 +
<blockquote>
 +
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.
 +
</blockquote>
 +
</blockquote>
  
Fractal Audio's hardware processors can control other devices through MIDI. The FX8 also provides relays to control other gear.
+
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)
  
See:
+
Read the [[Owners_Manuals|Product Guide]] for more information.
  
* [[MIDI]], [[Scene MIDI block]], [[Modifiers_and_controllers#Control_Switches|Control Switches]]
+
<blockquote>
* [[Connecting_and_setting_levels#Relays:_switch_amp_channels_and_more|Relays]]
+
'''FRACTAL AUDIO QUOTES'''<HR>
 +
<blockquote>
 +
The planetary gear drive solves the dead zone problem.
 +
</blockquote>
  
=Control Switches=
+
<blockquote>
 +
[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>
  
A Control Switch is a switch on an AX8 or an FC controller that is assigned as a source in a parameter's modifier menu.
+
<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>
  
A Control Switch lets you e.g. assign a function in the Amp block, like Input Boost, directly to an onboard switch.
+
<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).
  
The state of a Control Switch is saved per scene.
+
(May 2021) The EV-1 expression pedal will be manufactured in black only going forward.
 +
</blockquote>
 +
</blockquote>
  
'''AX8''': the AX8 has two Control Switches, which can be assigned globally or per-preset like any other footswitch block from the main Footswitch (“FS”) page.
+
==EV-2 expression pedal==
  
To set up a Control Switch footswitch:
+
The EV-2 is the smaller version of Fractal Audio’s expression pedal/analog volume pedal.
# On the Footswitch (“FS”) page, use the NAV and A knobs to assign CS1 or CS2 to footswitch 1 – 8.
 
# Add a modifier to the desired effect parameter, setting “CTRL SW1” or "CTRL SW2” as the source.
 
# Adjust the modifier to work as desired.  
 
  
To set initial values for a Control Switch:
+
Specifications:
# From the main FOOTSWITCH (“FS”) page of the AX8, page right to the CONFIG page.
+
* Planetary Gear Drive
# Select the CONTROLLERS option and press <ENTER>.
+
* High-quality dual potentiometer rated for 1M rotations
# Page to the CONTROL SWITCH (“CTRL SW”) page.
+
* Durable cast aluminum chassis
# Set the initial value of each switch for each scene to either “ON” or “OFF”.
+
* 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
  
[http://forum.fractalaudio.com/threads/why-use-control-switches-vs-scenes.126562/ Forum discussion]
+
See the [[Owners_Manuals|Product Guide]] and [http://www.fractalaudio.com/downloads/misc/EV-2-dimensions.pdf Layout Drawing] for more information.
  
'''Axe-Fx III''': there are 6 Control Switches. Their states are stored per scene: On, Off, or LAST. Default is Off. The "per scene" settings can be accessed from the CS PER SCENE page in the Controllers menu.
+
==Dimensions==
  
=AxeForLemur=
+
EV-1, Ernie Ball and Mission pedals:
  
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.  
+
[[image:exppedals sizes.png|200px]]
  
==Usage==
+
EV-1, Mission and EV-2 pedals:
  
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.
+
[[image:Pedals.jpg|200px]]
  
To configure an IOS/Android Patch Editor for the  AxeFx:
+
=Expression 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==
+
==Connect a pedal==
  
Design background into key elements of the AxeToLemur script:
+
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>)
  
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.
+
From the Owners Manual:
  
===Design Initialization===
+
<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>
  
===Design Device Selection===
+
==Configure a pedal==
  
The preset page (AxeForLemur/dlgProgChange/T1) Contains a Matrix of Midi settings for up to 4 target 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.
  
For each 'Target Device'  The user can select and increment/decrement (cTargets/padUpDn) the following (cTargets/swSettings):
+
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]].
  
* Type : { AxeFx, AxeFx II, Gen Midi, No Bank, Eclipse } = aUser.cMidi.devtypes[ ]
+
Always calibrate the pedal before use. This makes sure that the pedal's full sweep range is being used.
  
* Display Offset : { 0 or 1 } = aUser.cMidi.dispoffset[ ]
+
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.
  
* MIDI Channel : { 1 .. 16} = aUser.cMidi.chans[ ]
+
==What happens if the pedal is not connected==
  
* Lemur Target : { 0.. 3 } = aUser.cMidi.targets[ ]
+
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.
  
The user can select one of A,B,C, or D target devices; only one is active at a time.
+
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.
  
'''The objective is to integrate  AxeFxXL and AxeFxXL+ into the list of supported Device Types.
+
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).
  
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.
+
<blockquote>
 +
'''FRACTAL AUDIO QUOTES'''
 +
<hr>
  
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.
+
<blockquote>
 +
[https://forum.fractalaudio.com/threads/controller-issue.203213/post-2540843]
 +
[…]
 +
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.
 +
</blockquote>
 +
</blockquote>
  
Add two more values to devtypes
+
==Factory presets and pedals==
  
  change:
+
Many factory presets let you use an expression pedal, for example as a Wah. Search the [[Factory presets]] page in the wiki for "External".
    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
+
==Create a volume pedal==
  
  swSettings/updatelabels()
+
To set up a volume pedal in a preset, read [[Volume/Panner block]].
  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 }
+
To set up a <q>global</q> volume pedal that works across all presets, read the section in the [[Owners_Manuals|Owner's Manual]].
  
  <SCRIPT name="IsAxeSysex(msg)" ..
+
==Create a Wah pedal==
  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
+
Read [[Wah block]] for more information.
  
  SendSetParam(b, p, v)
+
==Create a Whammy pedal==
  SendGetParam(b, p)
 
  SendGetPresetName()
 
  SendGetBypState()
 
  SendGetPresetNumber()
 
  SendLooperMonEn(en)
 
  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.
+
Read [[Pitch_block#Whammy|Pitch block]] for more information.
  
===Design Modifiers===
+
==Control the amount of Delay and/or Reverb==
  
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.  
+
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.
  
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.
+
==Morph between clean and dirty tones==
  
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.
+
Watch the video below.
  
As of 3.08, the repainting logic within the APP did not support GREEN 'txt' labels.
+
==Display the tuner at heel down==
  
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 [[Tuner#Display_Tuner_on_heel_down|Tuner]] for more information.
  
Notes:
+
==Auto-engage an effect==
  
ResetModifierText(..), called when changing pages in Lemur, to clear out cV.modlistlast
+
Read [[Auto-Engage]] for more information.
  
(cV.rState==5) modifiers are being queried
+
==Use a pedal for multiple tasks==
SendGetModifier(..)
 
  
(cV.rState==6) modifiers are being queried
+
You can dedicate a single expression pedal to multiple tasks, within a single preset. Below are various examples to accomplish this.
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
+
'''Control either Wah or Whammy''':
SendSetModifier(..)
+
# 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.
  
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
+
'''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.
  
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.
+
'''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.
  
3.09 TODO List:
+
'''Using the Multiplexer block''':
  
1. confirm all modifier indexes on Fractal Parameters
+
: Read [[Multiplexer block]] for more information.
  
2. call cS.DoubleTap() when Zoom == MOD and a modifyable control is Tapped.
+
'''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.
  
3. verify control's txt value is rendered RED when control modified control is active (previously engaged, polled through DoEveryFrame())
+
=External switch=
  
===Project Globals===
+
==Connect a switch==
  
Var blkd=
+
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.
  
Var blksq=
+
The Axe-Fx III, FM9 and VP4 limit each PEDAL port to a single switch (TS cable).
  
Var blok=
+
==Configure a switch==
  
Var blx=
+
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:
  
Var debugflag=
+
* 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.
  
Var hw= 'hardware version =0 AxeFx, =1 others, Ultra etc.
+
Configure the switch(es) in the [[Setup menu]].
  
Var Querying=
+
; 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.
  
tidx=
+
; 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 BuildParamList()'''
+
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.
  
: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
+
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 RefreshSequencer()
+
==Scroll through presets==
  
Script SendCCAxe(ccnum, ccval)
+
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 SendConnectEffect(p1, p2, f)
+
==Engage and bypass an effect==
  
Script SendGetByState()
+
To engage or bypass a specific effect, using an external switch, assign the switch to the effect block in the [[Setup menu]].
  
Script SendGetCabName(cabnum)
+
==Maintain bypass state when switching scenes==
  
Script SendGetModifier(b, p, m)
+
You can use an external switch to maintain the bypass state of an effect when switching through presets and scenes.
  
Script SendGetParam(b,p)
+
# 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 SendGetPresetName()
+
=Tips, tricks and troubleshooting=
  
Script SendGetPresetNumber()
+
==Pedal ports: ADC levels==
  
Script SendGetRoutingGrid()
+
Check the ADC (Analog-to-Digital Converter) levels of the pedal ports in the [[Setup menu]].
  
Script SendGetSceneState()
+
==Zipper noise==
  
Script SendLooperMonEn(en)
+
If moving the expression pedal creates choppy sounds or zipper noise, increase the Damping parameter in the [[Controllers and modifiers|modifier menu]].
  
Script SendPG2Axe(pgnum)
+
==Pedal operates only for a part of the sweep==
  
Script SendPlaceEffect(b,pos,flag)
+
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 SendSavePath(program, bank)
+
=Videos=
 
 
Script SendSetModifier(b, p, m, v)
 
 
 
Script SendSetParam(b, p, v)
 
 
 
Script SendSetPresetName(name)
 
 
 
Script SynthMidiNoeOffIn(MIDI_ARGS)
 
 
 
Script SynthMidiNoteOnIn(MIDI_ARGS)
 
 
 
Script sxoutHandler(b,p, s, val)
 
 
 
Script UserMidiCCIn(MIDI_ARGS)
 
 
 
Script UserMIDINOTEIn(MIDI_ARGS)
 
 
 
==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