This website contains proposal of gdigi-editor. This tool is not implemented yet.

Introduction

gdigi is a tool that allows users to control their DigiTech guitar effect pedal connected to USB port of Linux computer. The communication protocol remains the same between all devices, but there the actual effects need to be discovered for new devices. Currently supported devices are: RP150, RP155, RP250, RP255, RP355, RP500, RP1000, GNX3000 and GNX4K.

Currently the solution is to use USBPcap with Wireshark and X-Edit (DigiTech's official Windows software). Start USB capture, set Wireshark filter to sysex commands and then turn the knobs in X-Edit (alternatively one can turn the knobs on the device itself but there are some "X-Edit only" parameters). In the proces look for and determine the values. Parameter and Position uniquely identify selected effect (for example Reverb Delay) whilst the values (range and meaning) needs to be determined by user. See official HACKING file for more information.

To get information about effects for currently supported devices please consult effects.[ch] files. Start with the structures definition and comments in effects.h, then proceed to their definitions in effects.c.

Project goal

The goal of gdigi-editor project is to allow standard users (who are not that familiar with tools like Wireshark or with defining structures in C language) to create "device support file" for their DigiTech device of choice. It would also help more advanced users and even developers as the current process is really tiresome.

Project proposal target audcience

This proposal is directed to any volounteers willing to participate in Open Source development. Tomasz Moń is happy to mentor any interested volounteers. If you're a student you can try to convince the professor to do this as a final project for computer programming course. If your school supervisor wishes I can set up a call with him/her and/or provide evaluation of your work.

In order to create this project you don't need to have actual DigiTech device. For this project the device can be easily simulated. Tomasz Moń will perform any neccessary tests on DigiTech RP250.

Project steps

  1. Define "device support file" format and add support for it in gdigi.

    XML-based format is recommended as gdigi already uses XML for other purposes. The goal is to have parser that would load up the file and create in memory the structures found in effects.c file.

  2. Start gdigi-editor design and development and implement data acqusition module.

    In the very first version reading triples (Parameter, Position, Value) on standard input is perfectly fine. The module should record any received (Parameter, Position) pair and keep track of allowed values (the user is supposed to trun the knob from minimum value to maximum value).

    The data acqusition module should be easily changeable to more complicated ones (actual MIDI client as implemented in gdigi or USBPcap/Wireshark capture) so it can be revised at later development stage.

  3. Design gdigi-editor UI.

    Design the UI. Please note that DigiTech seems to use unique (Parameter, Position) pairs. If given parameter is already known, the built-in gdigi values should be used. If parameter is not known it should be marked as such and user should be prompted for its name. Later the user should be able to define values meaning.

  4. Implement the UI.

    gdigi uses GTK+ so it is recommended. Tomasz Moń is familiar with GTK+ and has some Qt experience.

  5. Add support for generating "device support file"

    The goal of this project is to make it easy to generate "device support file" so this is crucial feature.

  6. Make first release.

    Prepare user guide and announce gdigi-editor! Wait for first (non-developer) users (Tomasz Moń is being contacted by various users regarding support for new DigiTech devices from time to time) to use it and provide their feedback.

Contact information

Tomasz Moń can be contacted by sending email to desowin@gmail.com