This page is my working directory for the Boss VE-500 Vocal Effects Pedal. The provided software was insufficient for my needs, so I've explored several options for interfacing with the pedal in a more automated fashion.
My attempts to monitor USB traffic directly failed, as well as attempts to capture the MIDI information directly as the VE-500 editor communicated with the pedal. When neither of these approaches was fruitful, I resigned myself to using the Editor software for the actual computer to pedal configuration, but to manually modify the configuration files used by the Editor's Import/Export function. Not the reverse engineering I was looking for, but suitable to create configuration files efficiently.
Just to make sure I always have access to the specific versions of the software I use in this project, I have archived them here.
VE500 Firmware 1.05 January 2019 (ZIP)Here are some .bel and .bed files for download. Some of these were created with my custom scripts, some were created from the pedal itself.
From this point forward, I'll be going into the technical details. There really shouldn't be anything useful to a non-techie below here. I will be using it as a reference as I continue the project, and may use the information to try to duplicate the process with other pedals.
To start modifying the file, I first need to understand the contents. The patches are stored in .bel files, which are just text. First, I start with a single patch.
Single Patch Split into multiple lines for readability. or, Check out the original single line file.This gives me a general idea of how an individual patch is formatted. From here I should be able to isolate the individual patches and determine the format of the full file.
Here's a script that splits the factory settings into individual patches, as well as the 42 independent sections possible for each patch. There will peridocially be more detail on one section or another as I try to analyze each section and determine what each value does.
Patch EH mappings:
Bit 0 = Enhance On/Off at Patch Init - always a 0 or 1
Index 1 = Enhance - Range* of 1 - 100 decimal, (0 - 64 hex)
Index 2 = Compress - Range* of 1 - 100 decimal, (0 - 64 hex)
Index 3 = De-esser - Range* of 1 - 100 decimal, (0 - 64 hex)
Index 4 = Low Gain 20+ the setting in db, converted to hex
Index 5 = High Gain 20+ the setting in db, converted to hex
Index 6 = Level Gain 20+ the setting in db, converted to hex
Index 7 = Lmid Gain 20+ the setting in db, converted to hex
Index 8 = Lmid Freq 1D (29) = 16kHz, 11 is default
Index 9 = Lmid Q 0 = 0.5, 11 = 1, ??
Index 10 = Hmid Gain 20 = 0db, 22 = 2db
Index 11 = Hmid Freq Always 16
Index 12 = Hmid Q* Always 1
Index 13 = High Gain Always 0
Index 14 = High Cut 15 = Flat, 10 = 6.30kHz
This is, conveniently, the exact order of the parameters in the Parameter Guide (PDF)
which makes me cautiously optimistic that this might be easier than I thought.
The system settings are stored in a .bed file instead of a .bel file. It is still text. While there is only one .bed file possible on a pedal at any given time, I don't expect to need to do a full analysis of the .bed file to serve my needs. This might be a good thing to reverse engineer in the future to find any hidden features that might exist.
System Configuration File Split Into Multiple Lines