This project owes a lot to others, especially Kai Zimmermann. However their work from some years ago was published only on forums which no longer exist, so I hope they'll forgive me using and republishing their results with acknowledgement here, in case other Valvetronix amp users want it.
The background to this project is that I bought an AD120VT amp because it looked like a Vox AC30 but in cool blue. I didn't have a VC12 foot controller for it - they're pretty rare - so I set about emulating one. That's how I came across the work done by Kai and colleagues.
They realised that the VOXBUS communications link between the amp and the foot controller, despite using an RJ45 Ethernet connector, was in fact carrying MIDI messages. That VC12 foot controller with VOXBUS connector is used on:
- AD120VT amp (2001-2003)
- AD60VT amp (2001-2003)
- AD120VTX amp (2003-2007)
- AD60VTX amp (2003-2007)
- Original Tonelab effects unit (2003-2007)
It was then reissued in silver as the VC12SV, which works with all those and also with:
- VTX150 amp (2011-2014)
- VTX300 amp (2011, a limited edition)
The VC12 manual tells you how to save patches from the amp to the foot controller and vice versa. The VC12S manual doesn't mention that, so part of this project may not work with the VTX150 or VTX300 - I've no way of testing that.
Summary of the projectThis project falls, like Gaul, into three parts: making an interface box, using a PC to control the amp and backup from it, and making your own controller (if you want to) to emulate the VC12 (or VC4).
Making the Hardware InterfaceThe first step here was to figure out what the VOXBUS port pinouts are. That is in the AD120VT Service Manual (and also the VC12 and Tonelab Service Manuals, all online) from which I extracted the following schematics. The earliest show that Vox originally intended to use the VOXBUS explicitly for MIDI - the MIDI RX & TX lines are directly connected to the VOXBUS RX & TX lines. The Tonelab had both MIDI and VOXBUS connectors and the schematic shows that the RX and TX circuits behind the connectors were identical. So if you know the VOXBUS pinout, you can connect it to MIDI RX and TX circuits.
So the VOXBUS uses two pins for TX and two pins for RX, like MIDI. It also carries GND and +8V (the latter is used to power the VC12 controller). Of the remaining two, CONJ_FOOT seems to be an interrupt signal and the other one does nothing. Here's the connection map:
AMP RJ45 plug PC MIDI sockets
(MIDI OutSocket)
RxD_VD------------1---------------------4-----(+5V from PC to amp)
RxD------------------2---------------------5-----MIDI Out
------------------------3
GND-----------------4---------------------2-----GND on each socket
+8V------------------5
CONJ_FOOT----6
(MIDI InSocket)
TxD------------------7---------------------5-----MIDI In
TxD_VD-----------8---------------------4-----(+5V from amp to PC)
The schematic for an interface box is attached. I built this (but saved a bit of mounting by using a repurposed MIDI board from eBay for the Midi ports). I also broke out the +8V and GND on a DC power plug, to run extra pedals if required.
Having built the box, buy an Ethernet cable to connect it to the amp. The User Manuals make it clear that this has to be a straight-through wired cable, not a crossover-wired cable.
Uploading Patches from the Amp - Memory DumpIt is (fairly) easy to play with the amp to get some good sounds, and you can store them into the amp's own memory (the AD120VT holds 32 patches). But you might want more, and swapping them with others isn't that easy. Fortunately you can trick the amp into sending a complete file of its settings for all 32 patches, and save that as a MIDI SYSEX file which you can then swap, or edit, or backup, or whatever. There are probably lots of bits of software you could use (e.g. BOME), but I used MIDI-OX. The process goes in four stages: set up the amp ready to send; set up MIDI-OX ready to receive, get the amp to send; and save the file.
For the first stage,
- Switch off the amp;
- Connect the interface via RJ45 cable to the amp;
- Hold down DELAY [TAP] and REVERB [TYPE];
- Switch on the amp - the amp display shows A.
For the second stage,
- Connect the computer MIDI IN (RX) to the interface box MIDI OUT (TX). I used a USB to Midi cable. The Yamaha UX16 works well. Don't use a cheapo one - they mostly won't pass SYSEX messages.
- Then boot up MIDI-OX and select YAMAHA UX16 for MIDI input.
- Then open the SYSEX window (View => Sysex) and from it select Sysex => Receive Manual Dump. The computer will then tell you it's waiting.
For the third stage (following the instructions in the VC12 manual):
- Press WRITE on the amp;
- The banks will be counted from 1-4, 1.-4. and the channel LEDs will light up correspondingly as each channel is transmitted;
- After all settings have been sent, the amp display reverts to A again;
For the fourth stage;
- Hit "done" to end the SYSEX reception;
- Select Display Window => Save As. You can then save it as a.syx file.
Job done. Time to switch the amp off and on again before using it.
Downloading Patches to the AmpThe process here is more or less the same in reverse. You want to set up the amp to receive; then set up the computer to send; then send.
For the first stage:
- Switch off the amp;
- Connect the interface via via RJ45 cable to the amp and via USB cable to the computer;
- Hold down DELAY [TAP] and REVERB [TYPE];
- Switch on the amp
- The amp display shows A.
For the second stage,
- Connect the computer MIDI IN (RX) to the interface box MIDI OUT (TX) with the USB to Midi cable as above.
- Then boot up MIDI-OX and select YAMAHA UX16 for MIDI output.
- Then open the SYSEX window (View => Sysex) and from it select File => Send Sysex File, and select a file containing all 32 channel settings to send from wherever you saved it.
Third stage:
- When you send it, the bank-channel counter on the amp will be running again, and the process should stop on 4.4
- Switch the amp off and on again to be ready for use.
So the above processes work fine for archiving settings you made on the amp, which is the easiest way to set things up. But you can also edit on the computer. There are probably better ways, but an easy way is to load a file into MIDI-OX using View => Sysex and then Command Window => Load File. You will then see a string of bytes as hexadecimal numbers, starting with F0 and finishing with F7.
The one above is a random example - in fact you will see 1020 bytes including 32 different strings each of 32 data bytes: F0 <32 bytes> F7. Each one of those 32 strings is one of the amp parameter sets defining a patch.
You can copy-paste the whole lot into a word processor and insert a para or line break after every F7 to line them up nicely. You'll then see that in each line, the second byte (after F0) is always 42 which is the Midi manufacturer ID for Korg. The next three bytes are always 22 47 40, on the AD120VT. The first two of these would normally be a device ID (i.e. type) and Midi channel - perhaps "22" is the AD120VT device. The "40" is decimal 64, which is often used as "ON" for MIDI controllers (whose range goes from 0-127 - it's the lowest value in the upper half of the range).
After these the next byte steps up from 0 (in the first line) to 1F, decimal 31, in the last - these are therefore the patch numbers (corresponding to Bank 1 patches 1-4, Bank 2 patches 1-4... Bank 4 patches 1-4). The following byte is always zero.
After this come 27 bytes of parameter data, then F7. Some analysis by Kai Zimmerman (and some from me) reveals what the each of the different bytes means, so you can edit these (substitute different hex values), then remove the line feeds, then paste the stream of text back into MIDI-OX, then save it as a new.syx file, and upload that to the amp as above. Remember that each byte should have a value under 128 (hex 80).
The manual explains what the effect types and parameters are, once you know which byte you're dealing with.
The first 7 bytes control the settings of the modelled amplifier - the first (values from 0-0F) indicates the "Amp type" as follows:
Amp Name Details
| 00 | AC15 (Normal Channel)
| 01 | AC15TB (Top Boost Channel)
| 02 | AC30 (Normal Channel)
| 03 | AC30TB (Top Boost Channel)
| 04 | UK BLUES 1960's Marshall JTM45 Head (High Treble Channel)
| 05 | UK 70s 1969 Marshall 100w Plexi Head (High Treble Channel)
| 06 | UK '80S 1983 100w Marshall JCM800 Head
| 07 | UK '90S 1990's 100w Marshall JCM900 Head (Lead Channel)
| 08 | UK MODERN Marshall JCM2000 DSL100 Head (High Gain Channel)
| 09 | RECTO 150w Mesa Boogie Dual Rectifier (Modern Gain Channel)]
| 0A | US HIGAIN 1991 100w Soldano SLO100 Head (High Gain Channel)
| 0B | BOUTIQUE OD Dumble 100w Head Overdrive Special (Overdrive Channel)
| 0C | BOUTIQUE CL Dumble 100w Head Super Overdrive (Clean Channel)
| 0D | BLACK 2x12 Fender Blackface Twin Reverb (Clean Channel)
| 0E | TWEED 1x12 1958 18w Fender Deluxe (Narrow Panel)
| 0F | TWEED 4x10 1959 Fender 4x10 Bassman
The next 6 are, respectively, Gain, Volume, Treble, Middle, Bass, and Presence each with values from 0-127.
The next 3 relate to Modulation - type (1-4), speed and depth or feedback (0-127 each).
The next 3 relate to Delay: type (1-3), depth and Feedback (0-127).
The next 3 relate to Delay Length: the first is the LSB (0-127), the next is always zero, and the third is the MSB (0-3 observed).
The next 3 relate to Reverb: type (1-3), Depth (0-127) and the third is always zero.
The next 4 relate to the Drive Pedal: type (0-10), "Drive" and "Level" - though these are sometimes other parameters depending on the pedal (0-127 each), and the fourth is always zero.
The next column may be "external control" (1 or 0), after which is the Noise Gate level (0-127). The last column has values from 0-16 and seems likely to be the combination of 4 bits each representing the on/off state of one of the Mod, Delay, Reverb and Pedal effects. Each line of parameters terminates with F7.
Controlling from a PC in RealtimeOnce you have the set of patches you want, you can select one by sending a MIDI Program Select message including the number (0-31) of the patch you want. So if you are controlling a performance using a computer running something like Cantabile, it can send the amp the desired PC at the beginning of each song.
The amp also responds to some other parameters in realtime via MIDI Control Change messages. If you have a VC12 foot controller you can see what it does by monitoring what it sends to the amp, using its secondary VOXBUS socket or putting an interface in between the foot controller and the amp. I didn't, so I found out which messages worked by using the Midi Check utility which lets you send a sequence of MIDI messages and values automatically; I watched the LEDs on the amp to see which messages changed things. It turns out that volume, delay tempo and effect level (e.g. for the wah effect) can be controlled in realtime.
Volume is sent using CC message 11 (hex 0B, normally Expression Controller) and a data byte (0-127), Effect level is sent using CC message 1 (Modulation Wheel) and a data byte (0-127).
The delay tempo is sent using the Pitch Wheel MIDI message 224 (hex E0) followed by LSB and MSB data bytes which send the delay length in milliseconds, up to a maximum of 1521. Thus if the PC is sequencing or controlling the tempo of a drum machine you can send out a delay time corresponding to the bpm, to get the delay synchronised.
Switching the effects pedal settings (Pedal, Modulation, Delay, Reverb) is done using CC message 95 (hexadecimal 5F, Effects 5 or Phaser Depth). Each effect is assigned to one bit of the lower nibble of the data byte; the upper nibble is zero. Thus, the state of the four pedals are all sent together in one byte.
Building a StompboxIf you don't have a VC4 or VC12 controller, you can make one which gives you much of the same functionality - I used an Arduino Uno clone inside a cheapo old eBay Marshall 6 button footswitch, powered from the VOXBUS 8V supply, but it would be cleaner to build a box from scratch.
The box uses the 6 switches for Pedal, Modulation, Delay and Reverb on and off, and program up/down, each with an LED to indicate the switch state. It also has 6.5mm jack sockets to plug in a tap tempo footswitch and 2 exp pedals for volume and parameter.
It worked well to:
- Clock through the programs in upward sequence,
- Switch on/off the reverb, delay and modulation,
- Input the tap tempo,
- Control the volume, and I'm sure it would also have done the (e.g. wah) parameter but I didn't have 2 pedals.
I never got it 100% working because the footswitches were old and my wiring is pretty ramshackle. So the Pedal switch and the program change down button didn't work (reliably, anyway). And one change that needs making is to use switched input sockets for volume and parameter, because you want them to be set at max if there's no input - in my build they are pulled low when there's no input by 2 resistors (not shown because they're a bad idea with hindsight), silencing the amp.
Comments
Please log in or sign up to comment.