Devices are a major difference between the Morningstar MC6Pro on its own vs. the MC6Pro plus FootSmart. On its own, there is not much support other than the MIDI channel portion of Controller Settings. With FootSmart, devices are entities in their own right. They have names, are strongly tied to a MIDI channel, have an associated set of PC and CC messages, and have properties (including enable/disable messages and startup messages).
Instead of remembering CC 42 1 on channel 4, you just say "H9 Chorus type Classic".
The Devices section is the keyword devices
with a list of devices as a value.
A device is a set of fields:
name
Required: The name of the device (used in building message names)channel
Required: The MIDI channel (1-16)messages
Optional: A list of messages for this deviceenable
Optional: An enable message for this devicebypass
Optional: A bypass message for this deviceinitial
Optional: A list of messages to set the initial state of the devicegroups
Optional: A list of message groupsA message (including enable or bypass messages) is a set of fields:
name
: The name of the message. Not present for enable/bypass messagestype
: PC, CC or Delaynumber
: The PC or CC numbervalue
:The CC numberms
: The number of milliseconds to wait (Delay only)setup
: The name of a message required to set up this messagefollowup
: The name of a message required to follow this messageA message group is two fields:
name
: The name of the groupmessages
: A list of message names for this group
A device has a name (used in building message names (see below)), and the MIDI channel (a value from 1 to 16).
Each device should have a set of messages defined - these are PC, CC or Delay messages. These messages must have a name.
A device can also have an enable and bypass message. They are also PC or CC messages, but should not have a name defined.
Instead the enable name is automatically set to Enable
and the bypass name is Bypass
.
This is explained further in the bypass
preset.
PC, CC and Delay messages can have a setup
or followup
field. This is the name of another message that is executed first (or after), to set
up (or followup) for the current message. A common use is when using the PC message to select a preset, to have the setup
field
choose a bank that the preset exists in. Or if a CC messages needs a time buffer, using the followup
field to specify a delay message.
The device can have a set of initializing messages. These are executed on power on by making them Bank 1 messages with trigger
On Bank Entry (execute once)
.
The device can have a set of group messages. A group message is a message that consists of several other messages.
They are executed in left to right order. Each group is assigned to a preset in an unused bank (added to the end of the bank list) and
is executed via the engage preset
MC6Pro message. This allows much longer scroll
presets.
Enable
is a short name, and Iridium Enable
is a long name.
The short name is used within the device definition, and the long name is used in the banks section.
Example 1:
This is an abbreviated version of a Strymon Iridium pedal, for demonstration purposes. See the second example for a full implementation.
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:
# Choose a Iridium preset
- { name: Set Bank 0, type: CC, number: 0, value: 0 }
- { name: Set Bank 1, type: CC, number: 0, value: 1 }
- { name: Set Bank 2, type: CC, number: 0, value: 2 }
- { name: Preset 0, type: PC, number: 0, setup: Set Bank 0 }
- { name: Preset 128, type: PC, number: 0, setup: Set Bank 1 }
- { name: Preset 256, type: PC, number: 0, setup: Set Bank 2 }
# Choose the amp type
- {name: Deluxe Reverb, type: CC, number: 19, value: 1}
- {name: AC30, type: CC, number: 19, value: 2}
- {name: Plexi, type: CC, number: 19, value: 3}
# Level
- {name: Level, type: CC, number: 12, value: 0}
- {name: Clean Level, type: CC, number: 12, value: 106}
- {name: Burry Level, type: CC, number: 12, value: 40}
- {name: Distorted Level, type: CC, number: 12, value: 32}
- {name: Plexi Level, type: CC, number: 12, value: 32}
# Drive
- {name: Drive, type: CC, number: 13, value: 0}
- {name: Clean Drive, type: CC, number: 13, value: 0}
- {name: Burry Drive, type: CC, number: 13, value: 70}
- {name: Distorted Drive, type: CC, number: 13, value: 96}
- {name: Plexi Drive, type: CC, number: 13, value: 127}
groups:
- name: Clean
messages: [Deluxe Reverb, Clean Drive, Clean Level]
- name: Burry Rhythm
messages: [AC30, Burry Drive, Burry Level]
- name: Distorted Rhythm
messages: [AC30, Distorted Drive, Distorted Level]
- name: Distorted Plexi
messages: [Plexi, Plexi Drive, Plexi Level]
initial:
[Enable]
This shows several features:
Enable
and Bypass
messagessetup
field, so that when choosing an Iridium preset you also set
the Iridium bank.Deluxe Reverb
) instead of a CC value/number pair.groups
choosing four different sounds, without using on-Iridium presetsinitial
state of the Iridium is enabled.Example 2:
For a fully functional Iridium definition (and a couple of other devices), see
my config file.
In the future, I plan for this to be broken into two sections: