RPEdit
Version 2.2

By Bruce James
Copyright © 1997 - 2003, All Rights Reserved.

RPEdit feedback/questions: rpedit@mail.netmails.net
RPEdit home:
http://rpedit.iscool.net


Introduction

Welcome to RPEdit, a patch editor for the DigiTech 2120-VGS, RP-21D, RP-20, RP-12, RP-10, Valve-Fx, and Johnson JM-150/250 Guitar Multi-effects Processors/Amps.

RPEdit allows you to edit programs of supported devices by way of a user-friendly, graphical interface, which clearly shows all modules and how they are linked in the current program's configuration or algorithm. One or more module dialogs can be displayed giving immediate access to all parameters in those modules. Connecting your computer to your device with the appropriate MIDI cables allows RPEdit to send and receive programs that it has edited. For the 2120, RP-21D, RP-20, and JM-150/250, RPEdit parameter changes can also be sent to the device in real-time so that you can immediately hear the effect of parameter changes.

Programs (or "patches") that RPEdit receives from your device can be saved to your computer as files. You might also download program files from user sites on the internet. RPEdit can read these and send them back to your device as required. RPEdit supports four types of file. The most common format used is SysEx (.SYX) format which is the raw binary file as received from the device. A similar format is Updater (.MID) format which is the format produced by the DigiTech Updater utility. RPEdit also has its own RPEdit (.RPEDIT) format, which is an extended SysEx format that stores additional information such as file description. And finally there is SAP (.SAP) format which is a human-readable text format. SAP is a good format for exchanging patches as it can be used by those who don't have a MIDI link between their computer and device as they can still read the file to enter the parameters manually. After a while, you may find you have accumulated a large number of program files. RPEdit also has a browser, which helps you to find and manage all your program files.

Please be sure to read the rest of this document carefully. There is important information that you will need in order to set up RPEdit to work properly. Sections include:

Hopefully you'll enjoy using RPEdit and it will make it easier for you to produce patches. If you have any problems, be sure to check the Known Problems and FAQ sections first, or ask the users on the various Digitech/Johnson mailing lists. As a last resort, get in touch with me. So get to it, and why not share some of your cool patches around!!


Supported Devices and Versions

WARNING!!
Use of RPEdit with unsupported versions of devices will likely cause corruption of files edited, and/or corruption of your device's memory (requiring a factory reset and loss of all user information on the device). Do not use RPEdit with earlier versions to those indicated below. In any case, always ensure you have a good backup of any important information before using this program. Note that some versions are listed as "beta" versions. These versions are in fact your best (or only) option to work with RPEdit. Digitech/Johnson produced these versions to fix numerous bugs that existed in earlier release versions. Unfortunately, they never released "final" versions with these fixes. However, many users are successfully using these versions with RPEdit, with few, if any, problems reported.

RPEdit supports the following DigiTech/Johnson Amplification Guitar Multi-effects Processors/Amps:

Device Supported Version(s) Comments
2120-VGS v2.10 or greater Firmware EPROM upgrade available - contact support@digitech.com
2112-VGS None Firmware EPROM upgrade to 2120 v2.10 available - contact support@digitech.com
RP-21D v1.10 or greater Firmware flash upgrade available - download from http://www.digitech.com/products/productpgs/rp21dupdate.htm
Also a later beta version, with additional fixes, is available from ftp.digitech.com/updaters/Beta
JM-150 v1.141 or greater Beta version available from ftp.digitech.com/updaters/Beta. Digitech/Johnson now appears unlikely to ever release a final version of this flash upgrade, so you must use this version.
JM-250 v1.171 or greater Beta version available from ftp.digitech.com/updaters/Beta. Digitech/Johnson now appears unlikely to ever release a final version of this flash upgrade, so you must use this version.
RP-20 v1.50 or greater Beta version available from ftp.digitech.com/updaters/Beta. Digitech/Johnson now appears unlikely to ever release a final version of this flash upgrade, so you must use this version.
RP-12 v1  
RP-10 v2 Firmware EPROM upgrade available - contact support@digitech.com.
Note that you can use RPEdit wirh earlier RP-10 v1 releases but you must be very careful not to send any programs that use the newer algorithms 34, 35, or 36, or to send any program number greater than 100. If you do, you WILL crash the RP-10 and have to factory reset it, loosing all user programs and settings.
Valve-Fx v1  

License

IMPORTANT!! To use RPEdit, you must accept the conditions of this license.

RPEdit is "freeware". There is no fee to use it and no registration is required. You may distribute it to anyone, and you may place it on any archive or bulletin board system. You may not charge anyone for it other than a reasonable fee to cover your distribution costs. RPEdit may not be distributed as part of any commercial product or be used to help sell any commercial product, without a prior license agreement from the author.

RPEdit is supplied on an as-is basis. The author offers no warranty of its fitness for any purpose whatsoever, and accepts no liability whatsoever for any loss or damage incurred by its use.

RPEdit is not a supported product. The author accepts no commitment or liability to address any problems that may be encountered in using it. However, bug fix releases may be made from time to time and the author will always be interested to hear about any bugs or deficiencies.

DigiTech do not own RPEdit nor provide support for it. Please do not approach them for support on this product.

The complete RPEdit Tcl/Tk sources are included in this distribution. The author encourages the use of these sources to develop similar patch editors for other guitar signal processors. If you use any part of these sources or any modified part of these sources, you must recognize my copyright. This must be done by including my original copyright notice along with your own (if you provide one) in such sources and giving due acknowledgement in a manner visible to the user of your modified program.

If you feel the conditions of this license are asking too much for a program that costs you nothing, or if for any other reason you cannot meet the terms of the license agreement, then you must remove RPEdit from your system and not use it.


System Requirements

Because RPEdit runs using the Tcl/Tk interpreter, a fast computer is helpful. Here are suggested minimum PC-system requirements:

Note: RPEdit will also run to a limited degree on Unix and Mac systems, using the appropriate Tcl/Tk interpreter. Contact me if you want more details.


Installation

To install RPEdit:

Note: There is now no need to download Tcl/Tk, the interpreter used to run RPEdit. A standalone version of this, with the necessary extensions needed by RPEdit, is included in the RPEdit Setup program and installed during setup.


Getting Started

This is is quick step-by-step guide through some of the main features of RPEdit.

  1. If you haven't already, you must first connect your computer and device together with the appropriate MIDI cables. Check out the following FAQ topics:
    -
    How do I connect the MIDI cables between my computer and device?
    -
    How do I get RPEdit to communicate with my Device?

  2. Run RPEdit. You will notice that the main dialog consists of several areas:
    - The Main Menu from which menu commands are selected.
    - The
    Toolbar which provides ready access to some of the Main Menu commands.
    - The
    Program Bar which contains information about the currently loaded program patch.
    - The main display area is used for the Graphical display of the program algorithm/configuration layout.

  3. Open one of the sample SysEx files by selecting the File/Open command. From the File Open dialog, choose a file and press OK to load the program patch.

  4. Now, edit some of the the program patch parameters. You change the program name, number, channel number, or algorithm (Valve-Fx, RP-10, or RP-12 devices only) from the fields in the Program Bar. Other parameters are changed from the module dialogs. To display a module dialog, either click on the appropriate module button in the Graphical view or select the module from the Module Menu. Note that with slider controls, you can either slide the slider "handle" for rough setting or click on either side of the "handle" for fine setting. Note also that when you change a module parameter, the colour of the parameter value will change if the new value is different from that of the original file.

  5. You can assign a link to a parameter by pressing the link buttons on the right hand side of each parameter control (if there are no link buttons displayed, check under Options/Module dialogs to make sure the "Show Link/Default Save buttons" option is enabled). The Links dialog is used to assign, re-assign, edit, and delete links.

  6. Now, let's display our program patch in SAP format. Select the View/SAP Editor menu option, and the SAP Editor will appear. Note that the SAP Editor has its own menu options, toolbar buttons, a main text entry/editing area (the upper pane), and a message log area (the lower pane). If there is any text currently displayed in the SAP text area, then delete it by using Edit/Select All, followed by Edit/Cut. Now select Edit/Generate SAP to generate the SAP text for your program patch. If you wish, you may edit the SAP text and use Edit/Parse SAP to parse your changed SAP text and load the current program patch with any changes (Note that the current program patch does not reflect the SAP text until the text is parsed).

  7. Now, save the SAP file by selecting File/Save As from the main RPEdit window and specifying the filename as "something.sap". RPEdit uses the filename extension (i.e. .sap) to determine that it is to save the text displayed in the SAP text display. Press OK to save the file. If you wanted to save the SysEx file, you would specify the extension as .rpedit or .syx.

  8. If you wish to save your program patch to the connected device, use the Program/Save to <device> menu option. Note that <device> will be whatever is currently specified under Options/Comm as your "Connected device". Also, ensure that your MIDI input and output devices are set up correctly under Options/Comm. If any of this is incorrect, MIDI comm will either not work or your connected device is likely to ignore the program patch you send it.

  9. Receiving program patches from a connected device depends a bit on the device that you have. For the Valve-Fx, RP-10, and RP-10, use the Program/Listen to <device> menu option RPEdit then enters a "listening" mode where it monitors any MIDI received from the connected device. You should initiate the transfer from the Valve-Fx/RP-10/12 by going to its "MIDI" -> "Program Dump" -> "Start" menu. Soon after you press "Start", the program will be received by RPEdit and displayed. For other devices, RPEdit can initiate the transfer itself. In this case you will have additional options: the  Program/Open from <device> and the Program/Open Current from <device> menu options. Simply press the required option, and RPEdit will enter listening mode until it receives the requested program.

  10. Use File/Exit when you wish to exit RPEdit.

This is only a very quick tour. Be sure to experiment with other options and features, referring to the relevant sections in the reference section of this help guide where necessary. Good luck!


Frequently Asked Questions

What versions of devices does RPEdit work with?
How do I connect the MIDI cables between my computer and device?
How do I get RPEdit to communicate with my Device?
Why does Listen mode not receive changes made on my Device?
Can RPEdit convert programs from one device to another?
If I want to exchange Fx1 and Fx2 in a program (2120, RP-21D, RP-20, JM-150/250), can RPEdit swap them?
How do I get fine slider control in the module dialogs?
What is RPEdit format?
What is SysEx format?
What is MID format?
What is SAP format?
What is Tcl/Tk?

What versions of devices does RPEdit work with?

Refer to the Supported Devices and Versions section for details.

How do I connect the MIDI cables between my computer and device?

The cable usually consists of a joystick plug on one end and two MIDI plugs on the other. Plug the joystick end into the port on your computer soundcard. Both MIDI plugs connect to ports on your device. The OUT cable should connect to the IN port on the device, and the IN cable should connect to the OUT port. For example, here is the setup between a RP-10 and a SoundBlaster AWE-32 card:

How do I get RPEdit to communicate with my Device?

There are several things to setup and check:

Why does Listen mode not receive changes made on my Device?

Listen mode does not cause real-time parameter changes made on the connected device to be received by RPEdit. This is because no device currently supports sending such changes via MIDI SysEx. Listen mode is primarily used for receiving complete programs, bulk dumps, etc., especially when initiated from the connected device.

Can RPEdit convert programs from one device to another?

In most cases, parameters in a RP-10, RP-12, or Valve-Fx program are carried across correctly when you switch to any other one of these devices. Just remember that the Valve-Fx does not have the same range of algorithms as the other two devices (but it does have some additional distortion types).

Converting between the 2120, RP-21D, RP-20, and JM-150/250 is a little more problematic as, although these devices are all based on the same basic SDISC architecture, there are sufficient differences to make this difficult to do automatically. If you do change from one of these devices to another, you will probably find that most of the Preamp parameters will be carried across correctly or almost correctly (although the JM-150/250 preamp is quite different to the others), but that all of the Fx modules are reset to Thru modules. The best way to convert programs between these devices is to use the SAP generator/parser. Simply "generate" the program in the SAP Editor, change device name to the desired device, then "parse" the SAP text. You may get several errors due to discrepancies between the devices but these are usually easily edited to fix them for the new device.

If I want to exchange Fx1 and Fx2 in a program (2120, RP-21D, RP-20, JM-150/250). Can RPEdit swap them?

No, not directly. But it is quite easy to do using the SAP editor. Simply "generate" the program in the SAP Editor, and edit the module names in the text (change "Fx1" to "Fx2" and "Fx2" to "Fx1"). If you are moving a large module into a small module (e.g. size Full (F) to a Quarter (4)), you will probably also have to edit the configuration. "Parse" the SAP text to reload your changes.

How do I get fine slider control in the module dialogs?

The handle in slider controls sometimes gives too rough a control for parameters that have a lot of discrete values. For finer control, click in the "trough" on either side of the "handle" to increment or decrement the parameter value, one step at a time.

What is RPEdit format?

RPEdit (.RPEDIT) format is simply SysEx format but with additional information, such as file description. The RPEdit format version 1.0 consists of the following...

What is SysEx format?

SysEx is short for "System Exclusive". A SysEx file is basically a binary file which stores the special MIDI characters that are sent when dumping patches from the connected device. RPEdit can read and write these files to allow you to edit patch parameters on your computer.

What is MID format?

MID is the file format produced by DigiTech's Updater utility. It is a very similar format to the SysEx format.

What is SAP format?

SAP stands for "(S)-disc (A)scii (P)rotocol". It is a format that was devised to standardize and facilitate the exchanging of program patches for DigiTech S-disc based products such as the GSP-2101 and RP-10. The format is designed to be both human and computer readable. RPEdit uses SAP Version 1.01 (with very minor modifications outlined below). Only a summary of the specification is presented here. The full specification can be obtained from here:

http://www.bstage.com/pages/sap.html

Format Rules:

  1. A SAP file may contain one and only one program description. Each SAP file must contain a Header section followed by a Module Parameters section.

  2. Comments are specified by use of the '#' character - any text following a '#' character is ignored. Generally, any extra spaces and blank lines are ignored.

  3. The Header section consists of the following lines:

    <device_id>
    <firmware_version>
    <program_name>
    <algorithm_number (for RP-10, RP-12, Valve-Fx)>

    e.g.

    RP-10 # Device ID
    2.0 # Software Version
    Death Flange Soup # Program Name
    F9 ( DCho->2TDly->Revrb ) # Algorithm Number


    Notes:
    (a) 'F' before the algorithm number indicates a factory algorithm.
    (b) The algorithm name - in parentheses - is optional.

  4. The Module Parameters Section lists each of the analog and digital modules that are used in the program. Each module definition begins with the abbreviated name of the module and contains a list of parameters separated by commas and enclosed in parenthesis. Two examples:

    Dist ( Bypass, Grunge, 11.0, 30dB, 30dB )

    DCho ( # Dual Chorus
    Off, # Dual Chorus
    100, # Chorus Level
    0.06Hz, # Chorus Speed
    0.00ms, # Chorus Depth
    0.00ms, # Chorus Delay 1
    0.00ms, # Chorus Delay 2
    Sine # Chorus Waveform
    )

    Notes:
    (a) Modules names are the abbreviated names used in the module list on the connected device.
    (b) The parameters must be in the correct order.
    (c) Parameter units are optional.
    (d) Parameters may be omitted, in which case a default value will be used.

  5. Continuous Controller links (CC-links) can be assigned to individual parameters by putting the following syntax after a particular parameter value:

    <parameter_value> cc:<cc_number>[<min>,<max>]

    e.g.

    Comp ( Bypass cc:21[On,Bypass], 20, 2 )

    Note: The <cc-number>, <min>, and <max> are optional.


RPEdit deviates from the original specification only in a few minor areas or where the SAP functionality is irrelevant to the currently supported devices. Areas of deviation are:

  1. The RP-10, RP-12, and Valve-Fx only have factory defined algorithms, so it is invalid to try and specify a user defined algorithm or define the Algorithm Link section. The other supported devices do not use algorithms at all - the "configuration" is used instead and is specified as a parameter of the FxConfig module.
  2. The '#' character is not treated as a comment character where it appears in a valid parameter value (e.g. "C#" ) or where it appears escaped in a program name (e.g. "Program \#24").
  3. A parameter value must not be split over more than one line or contain comments.
  4. The acronyms 'INT' and 'EXT', used to define default internal and external continuous controller numbers, are invalid for the the currently supported devices.

What is Tcl/Tk?

Tcl/Tk (pronounced "tickle-tee-kay") is the programming language in which the RPEdit program is written. The RPEdit script (.tcl) files are straight text files that are interpreted by the Tcl/Tk interpreter (called "wishrun.exe") when RPEdit is run. So when you run RPEdit, you are actually running the Tcl/Tk interpreter and telling it to execute the RPEdit scripts.


Known Problems

  1. RP-10/RP-12: If you send a program to the RP-10/12 while it's in its "MIDI" screen, the RP-10/12 appears to reboot itself. The program is received ok though.

  2. RP-10/RP-12/Valve-Fx: Sometimes after sending a program to a device, the patch seems to be received and displayed ok, but does not sound right (very quiet usually). It might initially sound ok, but when you move to a different program and then back it sounds wrong. According to DigiTech, the only workaround is to to use "Store" on the device to copy the program onto itself (RPEdit reminds you to do this). Note that this is not a problem with patches dumped from the device and then sent back unchanged using other SysEx utilities. This is due to additional information (top-secret DigiTech stuff!) which is normally present in such patches and is not changed by these utilities. RPEdit, however, must strip this information off if it is to edit patches, but it has no way of regenerating it again afterwards for the new patch. This is however "fixed" by the device when you "Store" the patch.

  3. RP-20/RP-21/2120/JM: There were numerous SysEx problems with early firmware versions of these devices which means they will not work properly with RPEdit (or any other editor). Check the list of supported versions in the Supported Devices and Versions section. Do not use RPEdit with earlier firmware versions of these devices!

  4. RP-20/RP-21/2120/JM: If the device is displaying one of its link pages, and RPEdit sends any MIDI to the device, the link may be unexpectedly re-assigned based on the MIDI bytes received. This apparently is how the device is supposed to work!

  5. RP-20/RP-21/2120: If you choose a Preamp default (factory or user) while in Talk mode, the device will continue to show a "Custom" setting. This is because the devices provide no way for RPEdit to set the Preamp default parameter. However, in this case, RPEdit sends all other relevant module parameters through to the device so that the effect is the same as having set the chosen default.

  6. RP-20/RP-21/2120/JM: There appears to be a bug in Utility Settings sysex message in that the program transmit map omits all factory programs (user programs are ok). This means that any such factory program maps are never sent or received during Utility Settings dumps.


Acknowledgments and Trademarks

Special thanks to DigiTech, in particular Randy and Billy, for providing a RP-21D without which this RPEdit v2 development would not have happened. The image of the RP-20 used in the splash screen/about box, is provided courtesy of DigiTech and used with permission (thanks Billy). Also, the online parameter help uses extracts from the various online manuals and this is similarly used with permission.

Markus Pfaff (http://www.mes.uni-linz.ac.at/staff/pfaff/guitar/2120spdif.html) did a lot of the initial hard work in deciphering the 2120 SysEx, which was a big help. He also did most of the testing of RPEdit with the 2120 v2.10 firmware fixes. Thanks to Ron Baker of DigiTech, who resolved the SysEx problems in the RP-21D firmware and other devices. Thanks also to others on the GSP, JA, and RP series mailing lists who have assisted in various ways, in particular, Stanko, Dave, Jon, Chris, Ian, Jody, Buddy, Gary, Brad, Luis, Keith, Mark, and Jay.

Brian Shrader (http://members.tripod.com/valvefx) kindly contributed the code for the Valve-Fx in RPEdit 1.3. This has been re-worked into the current version.

The original RPEdit v1 was assisted greatly by the work of Tom Owens (exigy@one.net) on his initial specification of GSP-2101 Modules and parameters.

The SAP format specification was originally developed for the GSP-2101 by:

Steve Schow - sjs@midiman.bstage.com
Randy Thorderson -
rthorderson@digitech.com
Tom Owens -
exigy@one.net

The "tab" control source is provided courtesy of, SpecTcl, by S. A. Uhler and Ken Corey and is Copyright © 1994-1995 Sun Microsystems, Inc.

DigiTech™, 2120 VGS Artist™, RP-21D™, RP-20 Valve™, Johnson Amplification™, Millennium™, SDISC™ II, RP-12™, RP-10™, SDISC™, Whammy™, and Silencer™ are registered trademarks of the Harman Music Group Incorporated

Tcl/Tk (http://dev.ajubasolutions.com/software/tcltk/ and http://dev.scriptics.com) is created by John Ousterhout (http://dev.scriptics.com/people/john.ousterhout/) of Interwoven, Inc and is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other parties. Ajuba Solutions has been acquired by Interwoven, but maintains Tcl/Tk development through the Tcl Core Team.

The RPEdit program uses a standalone Tcl/Tk interpreter that has been built using Dennis LaBelle's freewrap utility (http://home.nycap.rr.com/dlabelle/freewrap/freewrap.html) and D. Richard Hipp's mktclapp utility (http://www.hwaci.com/sw/mktclapp). The version of Tcl/Tk used in this standalone program is Tcl/Tk 8.2.3. The RPEdit Windows installation program has been built with Jordan Russell's Inno Setup (http://www.jordanr.dhs.org).


Update History

RPEdit 2.2

RPEdit 2.1

RPEdit 2.0

RPEdit 2.0b6

RPEdit 2.0b5 (v2 Beta 5)

RPEdit 2.0b4 (v2 Beta 4)

RPEdit 2.0b3 (v2 Beta 3)

RPEdit 2.0b2 (v2 Beta 2)

RPEdit 2.0b1 (v2 Beta 1)

RPEdit 2.0a1 (v2 Alpha)

RPEdit 2.0e8/9/10/11 (v2 Evaluations - Pre-Alpha)

RPEdit 2.0e7 (v2 Evaluation 7- Pre-Alpha)

RPEdit 2.0e6 (v2 Evaluation 6 - Pre-Alpha)

RPEdit 2.0e5 (v2 Evaluation 5 - Pre-Alpha)

RPEdit 2.0e4 (v2 Evaluation 4 - Pre-Alpha)

RPEdit 2.0e3 (v2 Evaluation 3 - Pre-Alpha)

RPEdit 2.0e2 (v2 Evaluation 2 - Pre-Alpha)

RPEdit 2.0e1 (v2 Evaluation 1 - Pre-Alpha)

RPEdit 1.3

RPEdit 1.2

RPEdit 1.1

RPEdit 1.0

RPEdit 0.3 (Test Release)

RPEdit 0.2 (Beta)

RPEdit 0.1 (Alpha)