@ michelet
A pagina 35 del manuale di SLxxmkII si legge:
ROLAND: il messaggio Sysex contiene due byte variabili e un byte di checksum. Il formato del messaggio è fisso, in modo che che gli ultimi tre byte della stringa sono sempre MSB, poi LSB e poi checksum (escluso il byte F7).
Apparentemente dovrebbe funzionare, perché gli ultimi tre byte corrispondono all'ADDRESS del parametro, poi viene il valore del parametro stesso, infine il diabolico checksum.
Visto che il supporto Novation è sempre molto reattivo e risponde in tempi brevi, ti consiglierei di contattarli.
Con un po' di ritardo.
L'istruzione MIDI di SysEx è un messaggio proprietario di ciascuna Marca e può non accomunarsi con altre (invece altre istruzioni, come il "Note On", sono messaggi Standard e pertanto devono avere formato standard per essere trasmessi e letti da tutte le tastiere).
Un manuale della Roland così riporta l'istruzione MIDI di SysEx
Es.
F0 41 10 42 12 41 00 00 00 04 0E 0A
23 F7
ovvero
(1) (2) (3) (4) (5) AddressInstr
CheckSum (13)
con
(1) Exclusive status (F0 è il byte di partenza dell'istruzione sys ex)
(2) ID Roland
(3) Device ID
(4) Model ID (GS)
(5) Command ID (RQ1)
(13) End of Exclusive (F7 è il byte di chiusura del sys ex)
L'AddressInstr
è la particolare istruzione da inviare (es. Voice Reserve, Reverb Macro, Chorus Macro, Scale Tuning, ...) ed è formato da 4 sino a 6 byte (che possono
tutti variare).
Il checksum
è il byte di controllo dell'integrità dell'istruzione completa ed è determinato in modo tale che il resto della somma dell' "AddressInstr" diviso 128 sommato al checksum dia 128 (80h in esadecimale).
Nell'esempio:
Resto[(41h+00h+00h+00h+04h+0E+0Ah)/80h] + CS = 80h
Risulta che
somma = 65+0+0+0+4+14+10=93
divisione 93/128 dà quoziente 0 e resto 93
CS = 128 - 93 = 35 = 23h