(mostly from the manual)
In this page:
The Transformer is
to be an all-in-one guitar amplification system using the PFC4
However, there are plenty of other uses for those MIDI jacks on the
and that's what we'll cover here. We'll start with the simpler stuff,
move on to the more complicated stuff later.
MIDI Channel on the Transformer
The Transformer's MIDI channel is 1 by
default (after re-initialization). This means that any channel messages
that are received on another channel are ignored, and any channel
that are generated are sent on this channel. To change the channel,
the STORE button down for at least a second, and (while holding) select
channel 1-16 using the Preset Matrix selector.
MIDI Out as a MIDI Thru
Most likely, you'll be using the PFC4 to drive the MIDI In, since it adds so much to the usability of the amp. If you decide to link another Transformer up for stereo operation, you can have the second one be slaved to the first one's PFC4 by connecting a MIDI cable from the first's Out to the second's In. They will track program changes, EFX mode changes, TAP tempo, other preset edits, etc. Even if the audio link is from the first's effects send to the second's effects return, it's still useful to have the same presets in the second amp and link them since the Amp Model selection (which changes per preset) affects the voicing of the power amp.
The MIDI Out jack will echo virtually
commands that arrive at the MIDI In (with the exception of certain
messages meant for the Transformer), so it can be used in the middle of
a MIDI chain when driving a rig from another MIDI source, instead of
the PFC4. This is called a "soft" thru, which means it is dependent
the software (processing power and MIDI buffer) of the unit. What's a
thru? That's when there is a jack labeled "Thru" and not "Out" or
It's usually accompanied by a separate MIDI In and Out, and it's
in the middle. Most importantly, it's directly driven from the In jack,
so it is not dependant on the software to do the echoing work. So if
other MIDI units are "3-jack" units, it may be wise to put the
at the end of the chain, since a soft thru is never quite as
as a hard thru. Not that we expect problems with ours, but a little
Preset Synchronization with an External Effects Unit
Back to top
You may have a programmable effects unit with a MIDI In that you want to use in the Transformer's effects loop. If you want this unit to change presets when the Transformer does, connect a MIDI cable from the Transformer's MIDI Out to the MIDI In of the effects unit. Then the first 16 presets in the effects unit will be aligned with the 16 presets in the Transformer.
For this to work, the MIDI channel of
effects unit must either be set to OMNI, or match that of the
You can back your presets up to a computer, sequencer, or other type of MIDI librarian / recorder. You can also transfer them to another Transformer! Connect a MIDI cable from the Transformer's MIDI Out to the MIDI In of the recording device. Prepare the recording device or software program to receive data. (In the case of transferring to another Transformer, it just needs to be on.) We're now set to send the presets.
To initiate the transmission manually, hold the amp's TAP button and then press the MODULATION Select button. The six Amp Model LED rings (Pre Gain through Reverb) should go off for a second or two to verify the operation. When they come back on, the operation is done.
NOTE: The size of the System Exclusive preset dump is 1000 bytes.If your recording device can send a request string to automate this operation, the string can be found in the Sysex table below. Another cable will have to go from the recorder's out to the Transformer's In for this to work. Sending that string to the Transformer will initiate the dump operation.
To dump Globals: hold TAP
and press STORE
To dump a Single Preset: hold TAP and press USER
Back to top
The Transformer will accept (and echo) the following channel messages when they are sent on its MIDI Channel (values are shown in hexadecimal):
The Transformer will generate the following channel messages on its MIDI Channel:
The Transformer will echo these
to the MIDI Out when received. None will be generated by the
System Exclusive Messages
Back to top
We've equipped the Transformer with an extensive MIDI Sysex implementation. In addition to simple preset dumps and preset sharing via the Internet and such, this enables the amp to be programmed remotely by a computer program or hardware editor like the Peavey PC1600X.
All of the Transformer's Sysex messages start with a common header and end with an End of Sysex [EOX] byte. The table below shows the "unique" section (including the command and optional data) of each message that falls between the header and the EOX.
Here is the common part, along with descriptions of each byte's purpose:
F0 - Start of Sysex [SOX]
1B - Peavey Manufacturer ID = 00 00 1B
10 - Transformer Product ID
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]
|00 / PFC4 Online||None||Amp sends PFC4 Setup data|
|01 / PFC4 Switch Press||Footswitch #, 0-5||Amp responds based on mode|
|02 / Version Request||None||Amp sends message 03|
|03 / Version of Software||Version #, 00-7F||Amp ignores if received|
|04 / Send Presets||None||Amp sends message 05|
|05 / Receive Presets||Preset data, nibbleized *||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 # (current 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, nibbleized *||Amp saves and activates globals|
|14 / Send Global Partial Byte||Partial address, 00-0D **||Amp sends message 15|
|15 / Receive Global Partial Byte||Partial address, partial value **||Saves and activates global in amp|
** Partial addressing is a way of programming a portion of an EdBuf byte, while not disturbing the other bits in that byte. A Partial address is made up of 3 bytes. The first is the byte address of the preset byte you are targeting (00-1E). The second byte is the bit number you want to start writing at (0 for least significant, 7 for most significant). The third byte defines how many bits you want to program (1-6, should be 1-7 ... see errata). The next byte will be the value, and since it is a partial, it does not need to be nibbleized. For example, to set the Delay Rolloff bit, send the following string:
F0 00 00 1B 10 00 0E 1D 07 01 01 F7
The 1D points to the Delay Separation Byte, whose bit 7 is used for the rolloff flag.
The 07 says that we're poking bit #7.
The first 01 says that we're programming one bit.
The second 01 says that we're setting (vs. clearing) the bit.
*** "Current" addressing is an alternate method of controlling the 10 preset parameters that have dual settings. Instead of the programming device needing to have 2 different strings for the 2 levels of, say, Pre Gain, it can use these messages with the address of the first Pre Gain parameter, and the status of the Boost will determine which of the two bytes will actually be read or written. For example, 10 sliders (out of 16) of a PC1600X can write current Pre Gain through Delay Level, and four of the PC1600X's buttons could emulate the EFX Select Mode of the PFC4. Then, all 20 levels could be edited with 10 sliders, instead of needing 20 (which the unit does not have).
**** This message sends a Receive EdBuf
message so it is less destructive upon return to the amp (overwrites
EdBuf). If the Receive Single Preset message is sent to the amp, it
a User preset. A PC program can easily modify the header if this is the
desired result, or follow up with a Store command (0A).
Transformer Preset Definition
nib is Cabinet
Model, 0-11 *(see below)
Low nib is Preamp / Power Amp
Clockwise rotation for both nibs:
0 = Classic Clean
|01||<reserved>||(controlled by model)|
|02||<reserved> | Mod Select||High
nib is reserved
(controlled by model)
Low nib is Modulation Select:
|03,04||Pre Gain (non-boost, boost)||1-33|
|05,06||Low (non-boost, boost)||1-33|
|07,08||Mid (non-boost, boost)||1-33|
|09,0A||High (non-boost, boost)||1-33|
|0B,0C||Post Gain (non-boost, boost)||1-33|
|0D,0E||Reverb (primary/off, secondary/on)||0-33 (0 = reverb off)|
|0F||Mid Shift||1-33 *(see below)|
|11,12||Rate (primary/off, secondary/on)||1-25|
|13,14||Depth (primary/off, secondary/on)||0-25 (0 = modulation off)|
|15||Flanger Feedback||1-25 **(see below)|
|16||Flanger Delay Time||1-25 **(see below)|
|17||Delay Time (see errata)||1-255|
|18,19||Delay Feedback (primary/off, secondary/on)||1-25|
|1A,1B||Delay Level (primary/off, secondary/on)||0-25 (0 = delay off)|
|1C||Delay Time Scale||1-25 ***(see below)|
|1D||Delay Stereo Separation||Bit 7
Treble Rolloff (active high)
Bits 6-0 are L/R delay time separation, 1-25
| EFX Mode Status Bits
function of TAP footswitch:
0000 = Tap Tempo (default)
Low nib is EFX mode status:
Bit 0 is Boost (on/secondary =
** Values are automatically set with flanger selection. Write after flanger selection to tweak.
*** Value is centered (@13, which is basically 0) after a Tap function from the amp or PFC4. Write after Tap function to tweak.
|00||<reserved>||Reserved (keep at zero)|
|01||Bank Select Method||0 =
stays the same after bank select (default)
1 = Preset goes to #1 after bank select
2 = Preset light blinks, waits for user preset selection
|02||PFC4 All Info||0 =
- LED's off
1 = Inactive mode - LED's dim (default)
2 = Inactive mode - LED's bright for both modes
|03||MIDI Channel (- 1)||0-15 for 1-16 (default = 0, channel 1)|
|04||Global Bits||Bit 0
set for User
patches at powerup (default = 0, factory)
Bit 1 set for Stereo mode (default = 0, mono)
Bits 2-7 are reserved (keep at zero)
|05||Noise Gate Threshold||0=off, 1-25 (default = 5)|
|06||Noise Gate Sensitivity||0-25 (default = 5)|
|07||<reserved>||Reserved (keep at zero)|
|08||<reserved>||Reserved (keep at zero)|
|09||Tuner Bits||Bit 0
set for Eb
mode (default = 0, standard E mode)
Bit 1 set for Chromatic mode (default = 0, guitar mode)
Bits 2-7 are reserved (keep at zero)
|0A||Tuner Volume Level||0-25. Default is 13 (12:00). Zero is muted.|
|0B||<reserved>||Reserved (keep at zero)|
|0C||<reserved>||Reserved (keep at zero)|
|0D||<reserved>||Reserved (keep at zero)|
Back to top
Errata - 12/17/01
During development of Peavey's Windows editor/librarian program, I came across a few bugs in version 1.4 pertaining to patch editing via sysex. All had workarounds in my case, but I list them here for anyone designing 3rd party support. Version 1.5 and 2.0 has fixes for these..
When sending the Delay Time byte via sysex, the amp accepts the value
doesn't update the audible delay time.
Workaround: Anytime Delay Time is sent, I also send bit 6 of the Delay Separation byte (which is always zero, so it's a harmless message).
Partial addressing is not accepted by the amp if trying to send 7 bits
(it only handles up to 6). One of those < vs. <= blunders (D'OH!).
Workaround: Delay Separation is the only likely candidate, and it only goes 0-25, so 5 or 6 bits will do the trick.
When programming the PFC4 Tap Function with a partial poke of the high
nibble, the amp reloads the EFX mode status bits from the original
program. It's better to leave them be.
Workaround:I read the status bits first, then re-send them after I send the Tap Function. This undoes the change at the amp.
When changing the modulation effect to flanger via sysex, the two tweak
values are not set correctly by the amp (which also sends these wrong
back to the PC.
Workaround: I send the correct values to the amp after the selection, and ignore the wrong values coming back from the amp.
Back to top