
The MC6Pro has presets, but FootSmart augments these with added functionality making them easier to use.
A preset is a list of fields:
type: One of vanilla (the default), bypass, scroll, cycle or empty.palette:type.
empty: no additional fieldsvanilla:
short_name: The display name of the presetactions: A list of preset actionsbypass:
device: The name of the device to be bypassed/enabledscroll:
actions: The list of preset actions to be scrolled throughcycle:
action: An action that is a CC or PC MIDI message.values: A list of values to cycle throughnames: A list of names to display as the values are changedprefix: A prefix applied to all namesshow: current or nextA preset action is two fields, very similar to a bank action:
name: the message nametrigger: the trigger for the actiontriggers are Press, Release, Long Press, Long Press Scroll, Long Press Release,
Release All, Double Tap, Double Tap Release, Long Double Tap,
Long Double Tap Release, On First Engage, On First Engage (send only this),
On Disengage. The default is Press.
The palette applies to all presets except the empty type. It determines the color.
If the preset doesn't specify a palette, then the bank palette is used.
If the bank also does not have a palette, the default palette is used.
The empty preset has no actions, and is just a blank space. It is used for spacing only.
The vanilla preset is a normal preset, just a name and a list of actions. vanilla
is the default preset type, so there is no need to explicitly declare it.
The bypass preset is used to manage a device that supports bypassing/enabling.
It can be used in multiple locations/banks, and the state of the device is managed so that
if the device is enabled, all presets will reflect that. This is done by
using a unique toggle group for each device, and enabling toggle mode for the preset.
The label is either ... Enable if the device is currently bypassed, or
... Bypass if the device is currently enabled. The ... will be the device name.
The scroll preset scrolls through messages, one per click of the footswitch.
The preset name is the name of the current state. When entering the bank, the first action
is executed and the preset name is set to that. Tapping the footswitch will execute the next
action and change the name. A long press of the footswitch will reverse direction, going to the
previous message. While this preset type is complex to explain, it is very intuitive to use.
See the examples below.
group messages are a single MIDI message (engage preset)
this makes the scroll feature much more usable.The cycle preset is similar to the scroll preset, but it cycles through
different values for a CC or PC MIDI message.
action is the action that defines the MIDI message. The value field of this
message is not used (it is replaced by the values specified in the values field.show field determines the behavior. If it is current (or missing, as this is
the default), then the preset name is the current state, and tapping the footswitch moves to the next
state. If it is next then the preset name is the next state. If current then the preset is initialized
on bank entry.values and names are linked. The values are the values used in the PC or
CC MIDI message, and the names are the names displayed on the preset for those values. The two lists
must be the same length.prefix is optional, if present it is prepended to the name of the preset.Example 1:
devices:
# The Strymon Iridium amp-in-a-pedal
- name: Iridium
channel: 1
enable: {type: CC, number: 102, value: 127}
bypass: {type: CC, number: 102, value: 0}
messages:
- {name: Drive, type: CC, number: 13, value: 0}
- {name: Sound One, type: PC, number: 0}
- {name: Sound Two, type: PC, number: 1}
- {name: Sound Three, type: PC, number: 2}
- {name: Sound Four, type: PC, number: 3}
...
groups:
- name: Clean
messages: [...]
- name: Burry Rhythm
messages: [...]
- name: Distorted Rhythm
messages: [...]
- name: Distorted Plexi
messages: [...]
banks:
- name: example
presets:
- short_name: Clean
actions: [{name: Iridium Clean}]
- short_name: Clean showing explicit type
type: vanilla
actions:[{name: Iridium Clean}]
- type: bypass
device: Iridium
- type: empty
- type: empty
- short_name: Next Page
actions: [{name: Next Page}]
- type: scroll
actions: [Iridium Clean, Iridium Burry Rhythm, Iridium Distorted Rhythm, Iridium Distorted Plexi]
- type: cycle
action: Iridium Drive
values: [0, 32, 64, 96, 127]
names: [none, 1/4, 1/2, 3/4, full]
prefix: Drive
- type: cycle
action: Iridium Sound One
values: [0, 1, 2, 3]
names: [One, Two, Three, Four]
prefix: Sound
show: next
The first preset, Clean, shows a simple single action preset, activated by a Press.
The second preset, Clean showing explicit type is exactly the same, except the type is explicit.
The third is a bypass preset.
The fourth and fifth presets are spacers, to make the next preset appear on the upper right of the pedal.
The sixth preset navigates to the next page.
The seventh preset shows scrolling. When the bank is entered, the Iridium Clean message is sent and the preset name is set.
Pressing switches to Iridium Burry Rhythm etc.
The eighth preset shows using cycle to sample a range of values. The Iridium Drive takes values from 0 to 127.
This preset cycles through 5 of them
The ninth preset shows cycling with show: next. This preset doesn't have any effect on bank entry (as a normal
cycle or scroll does). It shows what will happen after a press.
The first press sends the Iridium Sound One PC message, and switches the preset name
to Iridium Sound Two
Example 2:
For many examples (except possibly for vanilla presets), see
my config file.
It would be nice to use bypass and enable messages as part of group messages. Doing this, however, means that the toggle group cannot be used (since a group message could enable multiple devices), and that the state is not reflected in other presets.
There are a couple of approaches: