-
Notifications
You must be signed in to change notification settings - Fork 1
Bank Settings Data
Any user-configurable setting that can be configured on a bank-by-bank basis is considered to be part of the Bank Settings. Note that whilst the device will always respond with the complete bank settings list, partial global settings may be sent to the device provided it conforms to correct JSON formatting, as well as the formatting detailed below.
Label | Values | Description |
---|---|---|
bankName |
string | Displayed name for the bank* |
bankId |
string 32-bit | This ID is used to determine if a change to the bank data has occurred for synchronization between the device and the host application |
* The length of the bank name string must be less than the maximum name length as given in the target device specifications
Label | Values | Description |
---|---|---|
midiClockATempo |
float (1dp) - 0 Inherits from previous bank- 45.0 - 240.0 Valid tempo range |
Preset tempo for MIDI Clock A |
midiClockBTempo |
float (1dp) - 0 Inherits from previous bank- 45.0 - 240.0 Valid tempo range |
Preset tempo for MIDI Clock B* |
* Number of MIDI clocks available depends on the device
Label | Values | Description |
---|---|---|
switchGroups[m][n] |
||
[m][n].switch |
int | Index of the switch |
[m][n].isPrimary |
bool | True: Primary, False: Secondary |
[m][n].broadcastMode |
string - txRx - tx - rx
|
Mode for broadcasting primary switch events to the group |
[m][n].respondTo |
string - onOff - on - off
|
Type of group events which the primary side responds to |
[m][n].responseType |
string - or - and - toggle - on - off
|
Response of the primary side to group events |
Label | Values | Description |
---|---|---|
bankMesssages |
Messages sent when entering the bank | |
numMessages |
int | Number of messages in the bank stack. Cannot exceed the maximum number |
messages[i] |
Message stack for each action type. i = number of messages in the stack | |
[0]...[i-1].statusByte |
string 8-bit hex | Standard MIDI 1.0 message status byte |
[0]...[i-1].dataByte1 |
string 8-bit hex | Standard MIDI 1.0 message data byte 1 |
[0]...[i-1].dataByte2 |
string 8-bit hex | Standard MIDI 1.0 message data byte 2 |
[0]...[i-1].outputs.midi0 * |
booltrue false
|
MIDI 0 output selection |
[0]...[i-1].outputs.flexi1 * |
booltrue false
|
Flexiport 1 MIDI output selection |
[0]...[i-1].outputs.flexi2 * |
booltrue false
|
Flexiport 2 MIDI output selection |
[0]...[i-1].outputs.usb * |
booltrue false
|
USB MIDI output selection |
* The length of the bank name string must be less than the maximum name length as given in the target device specifications.
Label | Values | Description |
---|---|---|
footswitches[n] |
Footswitch data. n = number of footswitches | |
[0]...[n-1].name |
string | Displayed name of the footswitch |
[0]...[n-1].primaryState |
bool | Primary toggle state. Read only. |
[0]...[n-1].secondaryState |
bool | Secondary toggle. Read only. |
[0]...[n-1].primaryMode |
string - toggle - momentary - tapTempo - sequential - sequentialLinked - scrolling - scrollingLinked
|
Primary mode of the footswitch |
[0]...[n-1].secondaryMode |
string - doublePressToggle - holdToggle - doublePressMomentary - holdMomentary
|
Secondary mode of the footswitch |
[0]...[n-1].primaryColor |
string 24-bit hex | Primary (left) LED color |
[0]...[n-1].secondaryColor |
string 24-bit hex | Secondary (right) LED color |
[0]...[n-1].primaryLedMode |
string - onOff - dim
|
Primary LED mode |
[0]...[n-1].secondaryLedMode |
string - onOff - dim
|
Secondary LED mode |
[0]...[n-1].sequentialPattern |
string - forward - reverse - pendulum - random
|
Direction for sequential and scrolling modes |
[0]...[n-1].sequentialRepeat |
string - all - last2 - last3
|
Repeat type for sequential and scrolling modes |
[0]...[n-1].sequentialSendMode |
string - always - primary - secondary
|
Send action for sequential and scrolling modes |
[0]...[n-1].linkedSwitch |
int | Footswitch index to link to for sequential and scrolling linked modes |
[0]...[n-1].currentStep |
int | Current step in the sequence. Read only |
[0]...[n-1].midiClock |
int | Index of the assigned MIDI clock for Tap Tempo mode. When in Tap Tempo, the corresponding MIDI clock must have this footswitches corresponding index to function correctly. null if not previously configured |
[0]...[n-1].toggleOnMessages |
Toggle on messages | |
[0]...[n-1].toggleOffMessages |
Toggle off messages | |
[0]...[n-1].secondaryToggleOnMessages |
Secondary Toggle on messages | |
[0]...[n-1].secondaryToggleOffMessages |
Secondary Toggle off messages | |
[0]...[n-1].pressMessages |
Press messages | |
[0]...[n-1].releaseMessages |
Release messages | |
[0]...[n-1].doublePressMessages |
Double press messages | |
[0]...[n-1].holdMessages |
Hold messages | |
[0]...[n-1].holdReleaseMessages |
Hold release messages | |
[0]...[n-1].sequentialMessages |
Sequential messages. Note the special properties listed below | |
[0]...[n-1].scrollingMessages |
Scrolling messages. Note the special properties listed below | |
.numMessages |
int | Number of messages in the parent object stack. Cannot exceed the maximum number |
.messages[i] |
Message stack for each action type. i = number of messages in the stack | |
[0]...[i-1].statusByte |
string 8-bit hex | Standard MIDI 1.0 message status byte |
[0]...[i-1].dataByte1 |
string 8-bit hex | Standard MIDI 1.0 message data byte 1 |
[0]...[i-1].dataByte2 |
string 8-bit hex | Standard MIDI 1.0 message data byte 2 |
[0]...[i-1].outputs.midi0 * |
booltrue false
|
MIDI 0 output selection |
[0]...[i-1].outputs.flexi1 * |
booltrue false
|
Flexiport 1 MIDI output selection |
[0]...[i-1].outputs.flexi2 * |
booltrue false
|
Flexiport 2 MIDI output selection |
[0]...[i-1].outputs.usb * |
booltrue false
|
USB MIDI output selection |
sequentialMessages.numSteps |
int | Number of sequential steps. Sequential messages only |
sequentialMessages.steps[numSteps] |
Data for each step in the sequential stack | |
sequentialMessages.steps[k].numMessages |
int | Array of integers detailing the number of messages for each step (k) |
sequentialMessages.steps[k].label |
string | Labels for each sequential step (k) |
sequentialMessages.steps[k].color |
string 24-bit hex | Color for each sequential step (k) |
sequentialMessages.steps[k].messages[l] |
Sequential messags for each step (k) | |
scrollingMessages.stepInverval |
int 1-32
|
Step size. Scrolling messages only |
scrollingMessages.minScrollLimit |
int 0-126 *** |
Minimum value. Scrolling messages only |
scrollingMessages.maxScrollLimit |
int 1-127 *** |
Maximum value. Scrolling messages only |
[0]...[n-1].lfo |
Configuration for the footswitch LFO | |
.lfo.state |
bool - true = running- false = stopped- null = not active |
Running state of the LFO. Read only |
.lfo.frequency |
string Free: 0.1 - 10 Sync: - 1/4 - 1/4T - 1/4. - 1/8 - 1/8T - 1/8. - 1/16 - 1/16T - 1/16.
|
Frequency of the LFO. In free running mode, frequency can be stepped in 0.1Hz increments between 0 - 1.0, then between 1 - 10 in 1.0 increments. When synced to a MIDI clock, the frequency is assigned a clock subdivision |
.lfo.minLimit |
int 0-126 *** |
Minimum threshold for value scaling |
.lfo.maxLimit |
int 1-127 *** |
Maximum threshold for value scaling |
.lfo.trigger |
string - primary - secondary
|
Trigger action for LFO |
.lfo.waveform |
string - sine - triangle - saw - ramp - square - random
|
Waveform of the LFO |
.lfo.resolution |
int - 1 - 2 - 4 - 8 - 16 - 32
|
Step size for LFO waveform |
.lfo.resetOnStop |
bool | Whether the LFO counter resets to 0 when restarted |
.lfo.messages |
string - toggleOn - toggleOff - press - release - doublePress - hold - holdRelease - null
|
Message stack to modulate with the LFO |
.lfo.clock |
int | Index of the MIDI clock source for the LFO, or null for free running |
* The exact MIDI port configuration may be different depending on the target device. Standard MIDI outputs are referenced as midi0...midi(n-1), Flexiport MIDI outputs are referenced as flexi1...flexi(n).
** The number of Flexiports may change on different devices, so be sure to check the target device specifications.
*** The minimum limit must be less than the maximum limit.
Label | Values | Description |
---|---|---|
.auxMessages[k] |
Message stack for each action type. k = corresponding Flexiport index of the aux switch | |
.auxMessages[k].tip |
||
.auxMessages[k].ring |
||
.auxMessages[k].tipRing |
||
.pressMessages |
||
.holdMessages |
||
.toggleOnMessages |
||
.toggleOffMessages |
||
.numMessages |
int | Number of messages of each type |
.messages[i] |
Message stack for each action type. i = number of messages in the stack | |
.statusByte |
string 8-bit hex | Standard MIDI 1.0 message status byte |
.dataByte1 |
string 8-bit hex | Standard MIDI 1.0 message data byte 1 |
.dataByte2 |
string 8-bit hex | Standard MIDI 1.0 message data byte 2 |
.outputs.midi0 * |
booltrue false
|
MIDI 0 output selection |
.outputs.flexi1 * |
booltrue false
|
Flexiport 1 MIDI output selection |
.outputs.flexi2 * |
booltrue false
|
Flexiport 2 MIDI output selection |
.outputs.usb * |
booltrue false
|
USB MIDI output selection |
Label | Values | Description |
---|---|---|
expMessages[n] |
Bank expression pedal message stack. n = number of expression inputs | |
[0]...[n-1].numMessages |
int | Number of messages in the indexed expression pedal stack |
[0]...[n-1].messages[0]...[k-1] |
Bank expression pedal messages. k = number of messages in the stack | |
.messages[0]...[k-1].minLimit |
int 0-126 * |
Minimum threshold for value scaling |
.messages[0]...[k-1].maxLimit |
int 1-127 * |
Maximum threshold for value scaling |
.messages[0]...[k-1].statusByte |
string 8-bit hex | Standard MIDI 1.0 message status byte |
.messages[0]...[k-1].dataByte1 |
string 8-bit hex | Standard MIDI 1.0 message data byte 1** |
.messages[0]...[k-1].sweep |
string - linear - log - reverseLog - invLinear - invLog - invReverseLog
|
Sweep shape for the MIDI message value |
* The minimum limit must be less than the maximum limit.
** The expression pedal sweeps the value of the MIDI message, so no second data byte is required. In some cases (such as pitch bend), the first data byte is also ignored.
Example packet
{
"bankName": "My Bank",
"bankId": "0",
"bankMessages": {
"numMessages": 2,
"messages": [
{
"statusByte": "90",
"dataByte1": "30",
"dataByte2": "20",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": true
}
},
{
"statusByte": "b0",
"dataByte1": "35",
"dataByte2": "22",
"outputs": {
"midi0": false,
"flexi1": true,
"flexi2": false,
"usb": false
}
}
]
},
"expMessages": [
{
"numMessages": 1,
"messages": [
{
"minLimit": 0,
"maxLimit": 127,
"sweep": "linear",
"statusByte": "b0",
"dataByte1": "30",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": true
}
}
]
},
{
"numMessages": 0,
"messages": []
},
{
"numMessages": 2,
"messages": [
{
"minLimit": 0,
"maxLimit": 127,
"sweep": "log",
"statusByte": "b0",
"dataByte1": "30",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": true
}
},
{
"minLimit": 5,
"maxLimit": 127,
"sweep": "linear",
"statusByte": "b0",
"dataByte1": "30",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": true
}
}
]
},
{
"numMessages": 0,
"messages": []
}
],
"auxMessages": [
{
"tip": {
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "b0",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdMessages": {
"numMessages": 0,
"messages": []
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
},
"ring": {
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "b0",
"dataByte1": "3e",
"dataByte2": "29",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdMessages": {
"numMessages": 0,
"messages": []
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
},
"tipRing": {
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "b0",
"dataByte1": "2f",
"dataByte2": "10",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "b0",
"dataByte1": "1f",
"dataByte2": "10",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
}
},
{
"tip": {
"pressMessages": {
"numMessages": 0,
"messages": []
},
"holdMessages": {
"numMessages": 0,
"messages": []
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
},
"ring": {
"pressMessages": {
"numMessages": 0,
"messages": []
},
"holdMessages": {
"numMessages": 0,
"messages": []
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
},
"tipRing": {
"pressMessages": {
"numMessages": 0,
"messages": []
},
"holdMessages": {
"numMessages": 0,
"messages": []
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
}
}
}
],
"switchGroups": [
[
{
"switch": 0,
"isPrimary": true,
"broadcastMode": "txRx",
"respondTo": "onOff",
"responseType": "off"
},
{
"switch": 0,
"isPrimary": false,
"broadcastMode": "txRx",
"respondTo": "onOff",
"responseType": "off"
}
],
[],
[],
[],
[],
[],
[],
[]
],
"footswitches": [
{
"name": "FS 1",
"primaryState": false,
"secondaryState": false,
"primaryMode": "toggle",
"secondaryMode": "holdToggle",
"primaryColor": "f08080",
"secondaryColor": "ffff",
"primaryLedMode": "onOff",
"secondaryLedMode": "dim",
"sequentialPattern": "forward",
"sequentialRepeat": "all",
"sequentialSendMode": "always",
"linkedSwitch": 0,
"currentStep": 0,
"midiClock": null,
"lfo": {
"state": false,
"frequency": "1.0",
"minLimit": 0,
"maxLimit": 127,
"trigger": "secondary",
"messages": "holdRelease",
"waveform": "sine",
"resolution": 1,
"resetOnStop": true,
"clock": null
},
"toggleOnMessages": {
"numMessages": 2,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
},
{
"statusByte": "70",
"smartType": "switchOn",
"dataByte1": 0,
"dataByte2": 0
}
]
},
"toggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"releaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"doublePressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdReleaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"sequentialMessages": {
"numSteps": 0,
"steps": []
},
"scrollingMesssages": {
"stepInterval": 1,
"minScrollLimit": 0,
"maxScrollLimit": 127,
"numMessages": 0,
"messages": []
}
},
{
"name": "FS 2",
"primaryState": false,
"secondaryState": false,
"primaryMode": "sequential",
"secondaryMode": "holdToggle",
"primaryColor": "f08080",
"secondaryColor": "ffff",
"primaryLedMode": "onOff",
"secondaryLedMode": "dim",
"sequentialPattern": "forward",
"sequentialRepeat": "all",
"sequentialSendMode": "always",
"linkedSwitch": 0,
"currentStep": 0,
"midiClock": 0,
"lfo": {
"state": null,
"frequency": "1.0",
"minLimit": 0,
"maxLimit": 127,
"trigger": "primary",
"messages": null,
"waveform": "sine",
"resolution": 1,
"resetOnStop": true,
"clock": null
},
"toggleOnMessages": {
"numMessages": 0,
"messages": []
},
"toggleOffMessages": {
"numMessages": 0,
"messages": []
},
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"releaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"doublePressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdReleaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"sequentialMessages": {
"numSteps": 3,
"steps": [
{
"numMessages": 1,
"label": "Guitar1",
"color": "ed823e",
"messages": [
{
"statusByte": "b0",
"dataByte1": "1",
"dataByte2": "7f",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": true
}
}
]
},
{
"numMessages": 2,
"label": "Synth",
"color": "ff00ff",
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "12",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
},
{
"statusByte": "0",
"dataByte1": "0",
"dataByte2": "0",
"outputs": {
"midi0": false,
"flexi1": false,
"flexi2": false,
"usb": false
}
}
]
},
{
"numMessages": 1,
"label": "Bass",
"color": "ad323c",
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "61",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
}
]
},
"scrollingMesssages": {
"stepInterval": 1,
"minScrollLimit": 0,
"maxScrollLimit": 127,
"numMessages": 0,
"messages": []
}
},
{
"name": "FS 3",
"primaryState": false,
"secondaryState": false,
"primaryMode": "toggle",
"secondaryMode": "holdToggle",
"primaryColor": "f08080",
"secondaryColor": "ffff",
"primaryLedMode": "onOff",
"secondaryLedMode": "dim",
"sequentialPattern": "forward",
"sequentialRepeat": "all",
"sequentialSendMode": "always",
"linkedSwitch": 0,
"currentStep": 0,
"midiClock": 0,
"lfo": {
"state": false,
"frequency": "1.0",
"minLimit": 0,
"maxLimit": 127,
"trigger": "secondary",
"messages": "toggleOn",
"waveform": "sine",
"resolution": 1,
"resetOnStop": true,
"clock": 0
},
"toggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"toggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"releaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"doublePressMessages": {
"numMessages": 0,
"messages": []
},
"holdMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdReleaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"sequentialMessages": {
"numSteps": 0,
"steps": []
},
"scrollingMesssages": {
"stepInterval": 1,
"minScrollLimit": 0,
"maxScrollLimit": 127,
"numMessages": 0,
"messages": []
}
},
{
"name": "FS 4",
"primaryState": false,
"secondaryState": false,
"primaryMode": "toggle",
"secondaryMode": "holdToggle",
"primaryColor": "f08080",
"secondaryColor": "ffff",
"primaryLedMode": "onOff",
"secondaryLedMode": "dim",
"sequentialPattern": "forward",
"sequentialRepeat": "all",
"sequentialSendMode": "always",
"linkedSwitch": 0,
"currentStep": 0,
"midiClock": 0,
"lfo": {
"state": null,
"frequency": "1.0",
"minLimit": 0,
"maxLimit": 127,
"trigger": "primary",
"messages": null,
"waveform": "sine",
"resolution": 1,
"resetOnStop": true,
"clock": 0
},
"toggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"toggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"pressMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"releaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"doublePressMessages": {
"numMessages": 0,
"messages": []
},
"holdMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"holdReleaseMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOnMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "90",
"dataByte1": "3f",
"dataByte2": "64",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"secondaryToggleOffMessages": {
"numMessages": 1,
"messages": [
{
"statusByte": "80",
"dataByte1": "3f",
"dataByte2": "0",
"outputs": {
"midi0": true,
"flexi1": true,
"flexi2": true,
"usb": false
}
}
]
},
"sequentialMessages": {
"numSteps": 0,
"steps": []
},
"scrollingMesssages": {
"stepInterval": 1,
"minScrollLimit": 0,
"maxScrollLimit": 127,
"numMessages": 0,
"messages": []
}
}
]
}