Here is the common part, along with descriptions of each byte’s purpose:
F0 - Start of Sysex [SOX]
00
00
1B - Peavey Manufacturer ID = 00 00 1B
11- BAM Product ID (10 for PFC4B commands: CMD = 00, 01)
00- Reserved for future use (keep fixed at zero)
CMD - Command byte that defines which Sysex message it is
<data> | - Optional data | |
F7 | - End of Sysex [EOX] |
NOTE: Each time a preset is recalled, it is first loaded into a RAM buffer that we call the Edit Buffer (could also be called “current preset”). If another preset is recalled, the Edit Buffer is erased, so any changes will be lost unless stored to a User location (or externally). In the table below, we refer to this preset location as the “EdBuf.”
Now for the unique stuff:
| CMD Number (in HEX) / | <data> description | Resulting Action |
| |
|
| Name |
|
|
|
|
|
|
|
|
|
| 00 | / PFC4B Online | None | Amp sends PFC4B setup data |
|
| 01 | / PFC4B Switch Press | Footswitch #, | Amp responds based on mode |
|
| 02 | / Version Request | None | Amp sends message 03 |
|
| 03 | / Version of Software | Version #, | Amp ignores if received |
|
| 04 | / Send Presets | None | Amp sends message 05 |
|
| 05 | / Receive Presets | Preset data, nibblized * | Amp saves presets in User slots |
|
| 06 | / Send Single Preset | Preset # (00 - 0F) | Amp sends message 09 **** |
|
| 07 | / Receive Single Preset | Preset #, preset nibs * | Amp saves preset to User slot |
|
| 08 | / Send EdBuf | None | Amp sends message 09 |
|
| 09 | / Receive EdBuf | Preset nibbles * | Amp loads and activates EdBuf |
|
| 0A / Store EdBuf | Preset # | Amp stores EdBuf to User preset |
| |
| 0B / Send EdBuf Byte | EdBuf address (00 - 1E) | Amp sends message 0C |
| |
| 0C / Receive EdBuf Byte | EdBuf address, value nibs * | Amp activates EdBuf parameter |
| |
| 0D / Send EdBuf Partial Byte | Partial address ** | Amp sends message 0E |
| |
| 0E / Receive EdBuf Partial Byte | Partial address, partial value ** | Amp activates EdBuf parameter |
| |
| 0F / Send EdBuf Current | Primary address *** | Amp sends message 10 |
| |
| 10 | / Receive EdBuf Current | Primary address, current value *** | Amp activates EdBuf parameter |
|
| 11 / <reserved> |
|
|
| |
| 12 | / Send Globals | None | Amp sends message 13 |
|
| 13 | / Receive Globals | 14 Global Bytes, nibblized * | Amp saves and activates globals |
|
| 14 | / Send Global Partial Byte | Partial address, | Amp sends message 15 |
|
| 15 | / Receive Global Partial Byte | Partial address, partial value ** | Saves and activates global in amp |
|
|
|
|
|
|
|
*Nibblized data is sent hi nibble, then low nibble. E.g. a hex byte value of 74 will be sent as two bytes: 07 and 04. This is because MIDI data bytes really only have 7 bits - the most significant is reserved to be set for status bytes only.
16