Hi everyone.
I would like to ask you about a Gem S2 Turbo which i’musing very smoothly as a controller for my other synths (along with Bome midi Translator) and it can do miracles.
On its own it’s very capable for its internal sounds, but….
i wonder if somebody can help me with using an external controller to control some of the S2 internal parameters.
I mean the whole chapter on sysex is so very complicated because of the secret data (asci numbers enumeration, sys_id.h files, missing sdk data list etc etc). The way it’s described on the manual’s midi appendix (page xii) is very confusing.
I guess there should be a file along with some software to read some data on a computer or something. Maybe data included in the MIOS (the main rom chip).
Could somebody explain to me the sysex internal data flow goes for the s2?
F0 2F 5c 0B oc dd bb pp ck F7 is the data request message.
Up to the oc part it’s clear. The asci numbers for bb, pp, can be clear.
But the dd, , ck is very confusing.
Here’s a link for the manual. Everything is described in the midi appendix around pages x - xiii.
https://www.synthxl.com/wp-content/uploads/2018/11/Gem-S2-S3-Owners-Manual.pdf
I don't have specific experience with the Generalmusic GEM S2 Turbo, but I think I understand some of the terms used in the system exclusive documentation. Here is the definition of the Data Request message from appendix page XII (PDF page 266):
DATA REQUEST DATA_REQUEST F0 2F 5c 0B oc dd bb pp ck F7 c = channel (0-F) oc = own channel (0-F) dd = enum {Sound,Sample,Soundmap,Effect1,Effect2,General,Song,Perf} bb = ASCI Bank number (used only on Song & Perf) pp = ASCI Perf number (used only on Perf) = 11 byte filename (used only on Sound & Sample) ck = checksum (xor of all byte from 2F) |
In the line explaining the dd values, the enum is a C code snippet that indicates Sound is a value of 0, Sample is a value of 1, Soundmap is a value of 2, and so on.
For the , I guess you would have to send the "Directory Request" message then look at the response "Directory Answer" messages to know what file names you can use.
The correct ck checksum is generated by calculating the "exclusive or" (xor) of all the bytes starting with the 2F just after the initial F0 and ending with the byte just before the checksum.
Take a look at the following GitHub repository: https://github.com/jmechnich/s3turbo This repository includes a tool called s3midi written in Python that can send and recieve the S2/S3 Turbo System Exclusive messages. Even if you can't get the Python tool working, the documents and source code can provide more clues about the format of the System Exclusive messages that the developer figured out.
Thanks Bavi for that. Really helpful but very complicated indeed and i have to admit quite beyond my knowledge.
It seems like this mnual (for other models) give a better clue. Maybe…