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.