Jump to content

MIOS SysEx Librarian with DIY Synthesizer Jeannie


Recommended Posts

Hello loving MidiBox friends

I want to use MIOS SysEx Librarian to USB upload and download patches for my Jeannie synthesizer. I don't have a SysEx ID (it's set to 0). How can customize the Jeannie program code for MIOS SysEx Librarian ?

I developed the following SysEx protocol for Jeannie. But I can change it for MIOS.

1. Byte F0 = Beginn SysEx

2.Byte 00 = non SysEx ID

3.Byte 00 = non SysEx ID

4.Byte 00 = non SysEx ID

5.Byte XX = Bank No

6.Byte XX = Patch No

7. datas..

last Byte 7F = End SysEx

 

 

 

 

Edited by rolfdegen
Link to comment
Share on other sites

Hello user..

The data format for the transmission or reception of SysEx data has its pitfalls.
The data may only be 7 bits in size. Larger values lead to the transmission being aborted.
In the Jeannie, floating point numbers and 16-bit integer numbers are used.
For saving on SD card, the parameters are converted into ASCII characters and
written to the SD card. It looks like this for patch "STORM X" B 032, for example.

Patch.PNG.e5f1a90bcd0548e4e60226d885858245.PNG

 

The advantage is that floating point numbers or large integer numbers can be transmitted as 7-bit numbers (0-127) via SysEx.
A disadvantage is the slightly larger amount of data.

Example code for transferring a SysEx file ( patch "STORM X" B 032 data is not yet complete )

byte sysexData[32];    // SysEx buffer 256 Byte
int sysexCount = 0;        // SysEx Data pointer

//*************************************************************************
// convert parameter string to bin
//*************************************************************************
FLASHMEM void String_to_bin (String value, uint8_t len)
{
    for (uint8_t i = 0; i < len; i++) {
        sysexData[sysexCount] = value[i];
        sysexCount++;
    }
}
//*************************************************************************
// usbMidi send SystemExclusive
//*************************************************************************
FLASHMEM void SendSysEx(void)
{
    // send PrgNr "B 032"
 
    uint8_t patchNo = 32;
    uint8_t currentPatchBank = 1; // Bank B
    String numString = (patchNo);
    String bankString = char(currentPatchBank + 65);
    String fileString = (bankString + "/" + numString);
    uint8_t data_len = NO_OF_PARAMS;
    sysexCount = 0;
 
    // get Sound File String
    File patchFile = SD.open(fileString.c_str());
    String data[data_len]; //Array of data read in
    recallPatchData(patchFile, data);
    patchFile.close();
 
    // Sysex data lenght [28];                            // Daten lenght max 256
    sysexData[sysexCount++] = 0xF0;                        // 0        - Start SysEx
    sysexData[sysexCount++] = 0x00;                        // 1        - ID
    sysexData[sysexCount++] = 0x00;                        // 2        - ID
    sysexData[sysexCount++] = 0x00;                        // 3        - ID
    sysexData[sysexCount++] = 0x00;                        // 4        - Device ID 0-64
    sysexData[sysexCount++] = patchNo;                     // 5        - Patch No
    sysexData[sysexCount++] = currentPatchBank;            // 6        - Folder No
    String_to_bin(data[0], 12);                            // 7-18        - Patch Name
    String_to_bin(data[1], 4);                             // 19-22    - Osc1 level
    String_to_bin(data[2], 4);                             // 23-26    - Osc2 level
 
    // ..even more data
 
    sysexData[sysexCount++] = 0xF7;                        // 27        - End SysEx
 
    usbMIDI.sendSysEx(sysexCount, sysexData, true);        // send SysEx data
 
    Serial.println("Data sending complete");
 
}

 

The transferred SysEx file for patch "B 032"

1108925542_SysExdata.thumb.PNG.d7f4a6abcb53e755ab0a227331d0eb70.PNG

 

Greetings form germany  :happy: Rolf

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...