Roland XV5080 preset

I finally started working on an XV5080 preset.
This synth is huge in terms of parameters, so the preset will be focusing on the patch in the edit buffer only. That’s a big enough challenge already, as a patch contains more parameters than 12 times 36 controllers.
So to make it workable , I will consider the following requirements:

  • ability to control all parameters of a patch, including the 4 tones, but no control yet over multi-partial patches
  • the controls for the 4 tones will be shared.
  • each tone parameter must be controllable independently or simultaneously
  • parsing should be available
  • parameter control should be bidrectional (at least as much as reasonable)

For starters, I found I have to decide on some house keeping on parameter numbering.
Here’s my starting point:

  • The sysex of the XV5080 uses 4 address bytes (7 bits though) each: that’s a number range of millions… However if we concentrate on the parameters controlling a patch in the memory buffer, then the first address byte can be fixed at 1Fh and the second one at 00h. The third address byte will range from 00h (for Patch Common) up until 29h. The fourth address is assumed to go up to 7Fh. the total number range now is ‘only’ from 0 to 10623. But that’s an acceptable range for the Electra.

  • A patch has its addresses 3 and 4 for common parameters ranging from
    00h 00h until 10h 04h (from 0 to 1040)

  • Tone 1 has addresses 3 and 4 ranging from:

    • 10h 05h until 10h 0Dh (4101-4109) for its TMT parameters, the other tones are offset with 9. So full range is 4101-4136.
    • 20h 00h until 21h 08h (8192- 8456) for the other tone parameters. The other tones are offset with 512. So full range is 8192 - 9992.
      In the end, all parameters above 9992 are available for other duties.
      I will try the following convention:
  • Virtual parameters below 9992 will be considered related directly to a parameter of a patch in the memory buffer.

  • Virtual parameters 11001-11004 wil be used for tone select: which tone or tones is it you want to control?

  • Virtual parameters 11101-11109 are TMT tone parameters, offset by exactly 7000 to those of tone 1. They will indirectly control the TMT parameters of the selected tones.

  • Virtual parameters 11192-11456 are all other patch tone parameters, offset by exactly 3000 to those of tone 1. They will indirectly control the parameters of the selected tones.

  • Virtual parameters above 12000 are for other duties.

  • I will be using an array called toneParameter to store the actual tone parameters of all four tones. The array will have two dimensions. The first ranges from 0-4, where 0 is the ‘selected tone’ and 1-4 correspond to the real tone 1-4, and the second will correspond with the offset address of tone 1. in other words values will range from 4101-4109 and from 8192-8456

So far for virtual parameter housekeeping.
The reason I explain this, is for those that may read the lua , some of the constants used in addressing parts will be more familiar that way.


This is an old preset for the XV5080 made by Akira,
Its from a time when Lua wasn’t available but maybe this might help you.

Roland XV-5080 (3).epr (111.3 KB)

I just sold my xv5080.
Send it to Holland this friday.


The first draft is ready

This preset only is meant to control the patch in memory. You can use it to control the patch common parameters, TMT and each of the tones. You can choose if you control only one tone, or multiple tones at once.

Will not work yet or be available in this draft:

  • any pinkish parameter
  • most FX parameters
  • parsing
  • program change is not yet complete
  • not all tone parameters have their sensible default yet

About the tone controls, found on most pages.

  • The grey switches set the tones on and off.
  • The brown switches determine which tone you change the parameters of.
  • The fifth brown switch determines if you want to select tones individually, or you want to control more than one tone at once.

The way to make the tone control work is by using an array toneParameter. It behaves like the ParameterMap, except each value does not have a corresponding control. Instead 4 parameters (one for each tone) share one single control.
Next to this there is another array , called defTone, that must contain the pairs of a parameter and its desired default not-zero value in order to assign it to all 4 parameters in toneParameter.

Most other lua is irrelevant at this point. Except for:

  • toneselect (what tone or tones to control)
  • calcCheckSum (calculates the Roland checksum)
  • concat (to concatenate two arrays into one, which is needed for constructing sysEx messages)
  • parameterMap.onChange (converts control changes into Roland sysEx messages)
  • selectPatch (controls the program and bank changes)

XV-5080 preset is now useable.

  • Program and Bank changes are available on the performance page
  • All common Patch and Tone parameters are available
  • Relevant System controls (sys controls) are found on the last page
  • Improved performance page

Next step = FX -controls (chorus parameters are shaped but won’t do anything yet)


New version v0.3

  • parameters are now hidden to remove clutter in this multitude of possibilities

  • I’ve also added a switch on the last page where you can undo this hide effect, so you get to see all parameters

1 Like