Hello there,
I’m working on a preset for the Kawai XD-5 and have hit a wall trying to implement full waveform selection for the S2, S3, and S4 tone sources. Kawai appears to use a pair of SysEx bytes to set a waveform index from 0–255, a way of working with certain parameters that appears to be shared across several synths in their range.
Electra One App can you see this or should i make it public?
What is working :
I have a fully working control for S1 waveform selection (on page 2), which sends :
F0 40 09 10 00 06 15 [MSB] [LSB] F7
Where :
- [MSB] is the most significant 7 bits (bit 7 of the value),
- [LSB] is the least significant 7 bits (bits 0–6).
Here’s the Sysex block for S1 that works :
[
“F0”,
“40”,
“9”,
“10”,
“00”,
“06”,
“15”,
{
“type”: “value”,
“rules”: [
{
“type”: “sysex”,
“parameterNumber”: 211,
“parameterBitPosition”: 7,
“byteBitPosition”: 0,
“bitWidth”: 7
}
]
},
{
“type”: “value”,
“rules”: [
{
“type”: “sysex”,
“parameterNumber”: 211,
“parameterBitPosition”: 0,
“byteBitPosition”: 0,
“bitWidth”: 7
}
]
},
“F7”
]
This maps the 0–255 range cleanly into two 7-bit MIDI bytes and works reliably for S1.
What’s not working: S2, S3, S4
When duplicating this structure for S2/S3/S4 waveform selection, adjusting the address byte (15) accordingly, things start to break :
- SysEx messages either get stuck, loop, or only range from 00–7F.
- In some attempts, MSB never increments.
- Other times, the parameter outputs a static value like 19 19 19 19.
- Using parameterNumber = 212, 213, 214, etc., and combinations of value and expression-based rules — no luck.
Stuff I’ve Tried :
- Rewriting with expression rules (e.g., (value >> 7) and value & 127)
- Testing both List controls and Value controls (0–255)
- Reviewing working community presets (e.g., K1/K4 below) but their complexity is a beyond me atm.
- Swapping byte order and offsets
References :
- Kawai K1 Preset
- Kawai K4 Preset
- Related forum topic: Complex composed value within two nibbles
My Questions :
- Does anyone know the correct parameter mapping approach for the S2–S4 waveform selection?
- Is there a rule or limitation around parameterNumber reuse?
- How do others manage composed values when the same format is repeated across multiple SysEx address offsets?
If you’ve implemented this kind of dual-byte parameter on a Kawai (or similar) synth with sysex, I’d love to hear your approach.
Bests