MIDI Program Changes

Like the original JamMan, the Stec Special software allows the system to be controlled via MIDI program change messages. Using program change messages can be extremely handy if you already use a MIDI foot controller to control other pieces of gear. Version 0.4 and higher of the software allows the mapping of the program changes messages to be custom configured for your set up. There are actually 3 MIDI maps which can be used with the new JamMan software:
 
Map # Descriptions
0 The Chuck Map (as suggested by Chuck Swicky)
1 Bob's New Map
2 The programmable map
3 or > The default map (shown below) (an expanded version of the map used in software versions before 0.4)
You select the map using MIDI CC42. The value of the controller data selects the map: 0 = map 0, 1 = map 1, 2 = map 2 (the programmable map), 3 or greater loads the original default map. If you have a EEPROM installed, the map selection will be retained when you power cycle the system otherwise it comes up in the default map.

The Default Map
The assignments of program change messages in the default map is based on MIDI foot controllers which are organized in pages of 10 (like the Lexicon MPX R1). With these types of foot controllers, the first page provides access to the various "Functions" of the JamMan while the second page handles channel and page selection. Wherever possible, the map matches the original JamMan, there's just a lot more here. Note that both "0 based" and "1 based" program numbers are listed (MIDI program change messages start at program 0 but some foot controllers call it 1 and call 1, 2, etc...):
0 based  1 based Assignment
0 1 Tap
2 Loop Reset
3 Bypass
4 Toggle Replace
5 ToggleLayer
6 Click On/Off
7 Destructive Channel Fade
8 Main Fade
9 Slap On/Off
10 Select Channel 4 
10  11 Tap
11  12 Select Page 1
12  13 Select Page 2
13  14 Select Page 3
14  15 Select Page 4
15  16 Stop/Start loop 
16  17 Select Channel 1 
17  18 Select Channel 2 
18  19 Select Channel 3 
19 20 unassigned
20 21 Toggle Delay Mode
21 22 Sampler Chan 1 Record/Playback
22 23 Sampler Chan 2 Record/Playback
23 24 Sampler Chan 3 Record/Playback
24 25 Sampler Chan 4 Record/Playback
25 26 Toggle Sampler Mode on/off
26 27 Change Fade Direction
27 28 Selected Channel Trigger
28 29 All Channel Trigger
29 30 Sampler Audio Trigger Mode Toggle

I'll clean this up later. - Bob
Map 0 (Chuck Zwicky Map)
0  PROG_CHANGE_TAP,
1  PROG_CHANGE_RESET,
2 PROG_CHANGE_BYPASS,
3  PROG_CHANGE_DELAY,
4  PROG_CHANGE_STOP_STRT,
5  PROG_CHANGE_MFADE,
6  PROG_CHANGE_PAGE_1,
7  PROG_CHANGE_PAGE_2,
8  PROG_CHANGE_PAGE_3,
9  PROG_CHANGE_PAGE_4,
10  PROG_CHANGE_CLICK,
11  PROG_CHANGE_SLAP,
12  PROG_CHANGE_REVERSE,
13 PROG_CHANGE_REPLACE,
14  PROG_CHANGE_LAYER,
15  PROG_CHANGE_DFADE,
16  PROG_CHANGE_CHAN_1,
17  PROG_CHANGE_CHAN_2,
18  PROG_CHANGE_CHAN_3,
19  PROG_CHANGE_CHAN_4,
20  PROG_CHANGE_NOTE_1,
21  PROG_CHANGE_NOTE_2,
22  PROG_CHANGE_NOTE_3,
23  PROG_CHANGE_NOTE_4,
24  PROG_CHANGE_SAMPLR_SEL,
25  PROG_CHANGE_MFADE_DIR,
26  PROG_CHANGE_TAP2,
27  PROG_CHANGE_CHAN_TRIG, //
28  PROG_CHANGE_ALL_TRIG, //

Map 1 (Bob's new MPX R1 map)
  // Bank 0    // RG2 button
  // not available  // 0
0  PROG_CHANGE_TAP,  // 1
1  PROG_CHANGE_RESET,  // 2
2  PROG_CHANGE_BYPASS,  // 3
3  PROG_CHANGE_STOP_STRT, // 4
4  PROG_CHANGE_CLICK,  // 5
5  PROG_CHANGE_PAGE_1,  // 6
6  PROG_CHANGE_PAGE_2,  // 7
7  PROG_CHANGE_PAGE_3,  // 8
8  PROG_CHANGE_PAGE_4,  // 9
  // Bank 1    //
9  PROG_CHANGE_REVERSE, // 0
10  PROG_CHANGE_TAP2,  // 1
11  PROG_CHANGE_DELAY,  // 2
12  PROG_CHANGE_REPLACE, // 3
13  PROG_CHANGE_LAYER,  // 4
14  PROG_CHANGE_DFADE,  // 5
15  PROG_CHANGE_CHAN_1,  // 6
16  PROG_CHANGE_CHAN_2,  // 7
17  PROG_CHANGE_CHAN_3,  // 8
18  PROG_CHANGE_CHAN_4,  // 9
  // Bank 2    //
19  PROG_CHANGE_SLAP,  // 0
20  PROG_CHANGE_MFADE,  // 1
21  PROG_CHANGE_MFADE_DIR, // 2
22  PROG_CHANGE_CHAN_TRIG, // 3
23  PROG_CHANGE_ALL_TRIG, // 4
24  PROG_CHANGE_SAMPLR_SEL, // 5
25  PROG_CHANGE_NOTE_1,  // 6
26  PROG_CHANGE_NOTE_2,  // 7
27  PROG_CHANGE_NOTE_3,  // 8
28  PROG_CHANGE_NOTE_4,  // 9

Map 2 (programmable map)
This map can be configured by sending sending the system MIDI controller values. For the sake of editing, the program change messages (0-29) are mapped to continuous controllers (51-81). To change the function that is assigned to program change 0, for instance, you would send controller 51 to the JamMan. The data value of the controller defines the function the program change 0 will perform (when Map 2 is selected). The data values you use are the values from the default map above. If you wanted program change 0 to toggle Slap on and off, for instance, you'd send controller 51 to the JamMan with a value of 8.

If you press STORE after making changes to the programmable map, the modified map will be saved.

The following is an example of a typical MIDI foot controller being used to control a JamMan with the Stec Special software installed:

MIDI Pedal