John
05-18-2010, 09:43 PM
Here's a configuration for a basic footswitch MIDI controller. Each MIDI CPU input is configured as a basic switch input.
The wiring diagram:
http://highlyliquid.com/support/img/midi-cpu/midi-cpu-switch-input-90.jpg
Unneeded switches can be replaced with an open circuit. Let's assume that each foot switch is momentary.
Here's a basic SysEx configuration that assigns each switch to a different program change command. (also sometimes called patch select, etc.)
This is very basic--we can also do things like generate multiple messages from each input, different types of messages, etc.
What would everyone like to see?
// MIDI CPU Control Terminal Configuration
// 24 momentary switch inputs
// Fixed Header Identifies the Control Terminal Configuration Message
F0 00 01 5D 04 01
// This byte identifies the configuration "layer". Layer 0 is the "primary" layer.
00
// Control Terminal Configuration Chunks
// Each chunk is 6 bytes: nn tt mm ch d0 d1
// nn = terminal number
// tt = transition
// mm = mode
// ch = channel
// d0 and d1 are mode-specific parameters
// Control Terminal 0: Logic Input, Program Change (Mode 50)
// nn = 0
// tt = 0 (midi command is generated when the switch changes from open-to-closed
// mm = 50 (program change, fixed program #)
// ch = 00 (channel determined by channel jumper)
// d0 = 00 (Program 0)
// d1 = 00 (this mode ignores d1)
00 00 50 00 00 00
// this line is for switch transition from closed-to-open
// mode 7F: do nothing
00 01 7F 00 00 00
// next 23 inputs: same thing, but for program #s 2-23
// Control Terminal 1: Program #1
01 00 50 00 01 00
01 01 7F 00 00 00
// Control Terminal 2: Program #2
02 00 50 00 02 00
02 01 7F 00 00 00
// Control Terminal 3: Program #3
03 00 50 00 03 00
03 01 7F 00 00 00
// Control Terminal 4: Program #4
04 00 50 00 04 00
04 01 7F 00 00 00
// Control Terminal 5: Program #5
05 00 50 00 05 00
05 01 7F 00 00 00
// Control Terminal 6: Program #6
06 00 50 00 06 00
06 01 7F 00 00 00
// Control Terminal 7: Program #7
07 00 50 00 07 00
07 01 7F 00 00 00
// Control Terminal 8: Program #8
08 00 50 00 08 00
08 01 7F 00 00 00
// Control Terminal 9: Program #9
09 00 50 00 09 00
09 01 7F 00 00 00
// Control Terminal 10: Program #10
0A 00 50 00 0A 00
0A 01 7F 00 00 00
// Control Terminal 11: Program #11
0B 00 50 00 0B 00
0B 01 7F 00 00 00
// Control Terminal 12: Program #12
0C 00 50 00 0C 00
0C 01 7F 00 00 00
// Control Terminal 13: Program #13
0D 00 50 00 0D 00
0D 01 7F 00 00 00
// Control Terminal 14: Program #14
0E 00 50 00 0E 00
0E 01 7F 00 00 00
// Control Terminal 15: Program #15
0F 00 50 00 0F 00
0F 01 7F 00 00 00
// Control Terminal 16: Program #16
10 00 50 00 10 00
10 01 7F 00 00 00
// Control Terminal 17: Program #17
11 00 50 00 11 00
11 01 7F 00 00 00
// Control Terminal 18: Program #18
12 00 50 00 12 00
12 01 7F 00 00 00
// Control Terminal 19: Program #19
13 00 50 00 13 00
13 01 7F 00 00 00
// Control Terminal 20: Program #20
14 00 50 00 14 00
14 01 7F 00 00 00
// Control Terminal 21: Program #21
15 00 50 00 15 00
15 01 7F 00 00 00
// Control Terminal 22: Program #22
16 00 50 00 16 00
16 01 7F 00 00 00
// Control Terminal 23: Program #23
17 00 50 00 17 00
17 01 7F 00 00 00
// Fixed Footer
F7
The wiring diagram:
http://highlyliquid.com/support/img/midi-cpu/midi-cpu-switch-input-90.jpg
Unneeded switches can be replaced with an open circuit. Let's assume that each foot switch is momentary.
Here's a basic SysEx configuration that assigns each switch to a different program change command. (also sometimes called patch select, etc.)
This is very basic--we can also do things like generate multiple messages from each input, different types of messages, etc.
What would everyone like to see?
// MIDI CPU Control Terminal Configuration
// 24 momentary switch inputs
// Fixed Header Identifies the Control Terminal Configuration Message
F0 00 01 5D 04 01
// This byte identifies the configuration "layer". Layer 0 is the "primary" layer.
00
// Control Terminal Configuration Chunks
// Each chunk is 6 bytes: nn tt mm ch d0 d1
// nn = terminal number
// tt = transition
// mm = mode
// ch = channel
// d0 and d1 are mode-specific parameters
// Control Terminal 0: Logic Input, Program Change (Mode 50)
// nn = 0
// tt = 0 (midi command is generated when the switch changes from open-to-closed
// mm = 50 (program change, fixed program #)
// ch = 00 (channel determined by channel jumper)
// d0 = 00 (Program 0)
// d1 = 00 (this mode ignores d1)
00 00 50 00 00 00
// this line is for switch transition from closed-to-open
// mode 7F: do nothing
00 01 7F 00 00 00
// next 23 inputs: same thing, but for program #s 2-23
// Control Terminal 1: Program #1
01 00 50 00 01 00
01 01 7F 00 00 00
// Control Terminal 2: Program #2
02 00 50 00 02 00
02 01 7F 00 00 00
// Control Terminal 3: Program #3
03 00 50 00 03 00
03 01 7F 00 00 00
// Control Terminal 4: Program #4
04 00 50 00 04 00
04 01 7F 00 00 00
// Control Terminal 5: Program #5
05 00 50 00 05 00
05 01 7F 00 00 00
// Control Terminal 6: Program #6
06 00 50 00 06 00
06 01 7F 00 00 00
// Control Terminal 7: Program #7
07 00 50 00 07 00
07 01 7F 00 00 00
// Control Terminal 8: Program #8
08 00 50 00 08 00
08 01 7F 00 00 00
// Control Terminal 9: Program #9
09 00 50 00 09 00
09 01 7F 00 00 00
// Control Terminal 10: Program #10
0A 00 50 00 0A 00
0A 01 7F 00 00 00
// Control Terminal 11: Program #11
0B 00 50 00 0B 00
0B 01 7F 00 00 00
// Control Terminal 12: Program #12
0C 00 50 00 0C 00
0C 01 7F 00 00 00
// Control Terminal 13: Program #13
0D 00 50 00 0D 00
0D 01 7F 00 00 00
// Control Terminal 14: Program #14
0E 00 50 00 0E 00
0E 01 7F 00 00 00
// Control Terminal 15: Program #15
0F 00 50 00 0F 00
0F 01 7F 00 00 00
// Control Terminal 16: Program #16
10 00 50 00 10 00
10 01 7F 00 00 00
// Control Terminal 17: Program #17
11 00 50 00 11 00
11 01 7F 00 00 00
// Control Terminal 18: Program #18
12 00 50 00 12 00
12 01 7F 00 00 00
// Control Terminal 19: Program #19
13 00 50 00 13 00
13 01 7F 00 00 00
// Control Terminal 20: Program #20
14 00 50 00 14 00
14 01 7F 00 00 00
// Control Terminal 21: Program #21
15 00 50 00 15 00
15 01 7F 00 00 00
// Control Terminal 22: Program #22
16 00 50 00 16 00
16 01 7F 00 00 00
// Control Terminal 23: Program #23
17 00 50 00 17 00
17 01 7F 00 00 00
// Fixed Footer
F7