How to properly decode Alesis S4+ / Quadrasynth sysex files?

Alesis Quadrasynth, Quadrasynth Plus and S4 Sound Module

Moderators: Jesse, parametric

x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

Hi, I need to decrypt the sysex information of some files on my Alesis S4 Plus. Specifically, I want to break down the mix/performance dumps to find out which programs are involved in each of them. I know there is software that already gives me this information, but I need to do it with a lot of data for an application I am developing. I have done this same operation before with the sysex files from my Yamaha and Roland and I have not had any problems, but with Alesis I hit a wall because I don't understand how to interpret the information I read.

I know the position of each piece of data and in which byte/s it is located within the file, but the values ​​I find have nothing to do with reality, it is as if there were an extra encoding that does not allow me to interpret the data correctly.

For example, following the MIDI SYSEX specifications provided by Alesis, I know where the mix/performance name is located within the sysex file, but when I read it byte by byte and do the hex to decimal conversion what I get is nothing like reality. What am I doing wrong?. Why does it work with my Yamaha and Roland but not with Alesis?
User avatar
Jesse United States of America
Administrator
Administrator
Posts: 2004
Joined: Thu Jul 07, 2005 5:49 pm
20
Do you own a fusion?: Yes
Location: Wilmington, NC USA

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by Jesse »

Have you tried for help here?
https://www.sysexdb.com/
Tempus Drums, Roto Toms, Djembe, Bongo's, Ibanez Bass,(3) Fusion8HD, (2) SUMO300 Amps, Alesis16 Firewire Mixer, AKG D112, Behringer B2, Shure Beta 58a Microphones, Windows 10, Audigy Soundcard, Audition 3, Sony MDR-7506 Headphones, Kontakt 6 & East West Goliath Sound Banks and a small fridge full of cold drinks :)
x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

Thanks for your reply, but on sysexdb (a place I visit often) there are several data dumps to download and test... nothing to do with the problem I'm exposing here.

The Alesis MIDI SYSEX specification explains how data is packaged for transmission. Here is an excerpt from the document:

****************************************
<data> is in a packed format in order to optimize data transfer. Eight MIDI bytes are used to transmit
each block of 7 Quadrasynth data bytes. If the 7 data bytes are looked at as one 56-bit word, the format
for transmission is eight 7-bit words beginning with the most significant bit of the first byte, as follows:

SEVEN QUADRASYNTH BYTES:
0: A7 A6 A5 A4 A3 A2 A1 A0
1: B7 B6 B5 B4 B3 B2 B1 B0
2: C7 C6 C5 C4 C3 C2 C1 C0
3: D7 D6 D5 D4 D3 D2 D1 D0
4: E7 E6 E5 E4 E3 E2 E1 E0
5: F7 F6 F5 F4 F3 F2 F1 F0
6: G7 G6 G5 G4 G3 G2 G1 G0

TRANSMITTED AS:
0: 0 A6 A5 A4 A3 A2 A1 A0
1: 0 B5 B4 B3 B2 B1 B0 A7
2: 0 C4 C3 C2 C1 C0 B7 B6
3: 0 D3 D2 D1 D0 C7 C6 C5
4: 0 E2 E1 E0 D7 D6 D5 D4
5: 0 F1 F0 E7 E6 E5 E4 E3
6: 0 G0 F7 F6 F5 F4 F3 F2
7: 0 G7 G6 G5 G4 G3 G2 G1


****************************************

I have followed this table as a reference to decrypt the received data but the results are always unreadable garbage. I have even been using some iA support, but they always fail when implementing this table. Is it possible that this equivalence table is wrong? I have seen it published in many places on the internet but never in an official Alesis document. I have also observed subtle differences between this table and the one provided to handle QuadraVerb data, which makes me suspect that the unpacking system is wrong or incomplete.

I've found threads on other forums where some users have encountered exactly the same problem... and unfortunately without finding a solution.

Has any kind soul encountered the same problem as me?
Does anyone have any ideas on this?
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

Well, I'm in the exact situation ! :lol:
I'm currently writing a java program to unpack a SYSEX file without luck.
first I skip the sysex header which is 7 bytes, then comes 400 packed bytes
I unpack and got 350 bytes as expected, but it is complete garbage.

Few notes:
- the table you show, is official and can be found in the service manual
- once unpacked, the data must be read with less significant bit first ! this is crazy.

The manual say the first char of the patch name is at address: 1:6-1:0, what they mean is: start at 1:6 and rewind to 1:0
where "x:y" is "byte x, bit y"

I unit tested my code, so I'm pretty confident the spec is wrong. I will take a look on quadraverb doc...
x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

Well, at least I'm not alone in this adventure, and it's nice to find someone to share experiences with.
I've tried several unpacking methods, as the manual's instructions can be somewhat ambiguous.
I tried using blocks of 8 MIDI bytes of 7 bits each to get the 7 bytes of 8 bits, that is, treating it as one big word of 56 letters (bits), as the manual indicates. Then I assumed that perhaps the big word of 56 letters (bits) the manual refers to was just an example, and that I shouldn't process it in blocks, but rather the entire data. In any case, I always ended up with unreadable garbage.

I also tried the template offered by Quadraverb, which is a little different than Quadrasynth and that seemed strange, but after testing it the results are the same.

I've been working on it off and on for several weeks now, and I've even used AIs like ChatGPT, Copilot, DeepSeek, and Grok... but the results are always frustrating.

I've been working on it off and on for several weeks, and have even used Ai help like ChatGPT, Copilot, DeepSeek, and Grok... but the results are always frustrating.

Either the instructions are wrong, as you say, or I'm a complete idiot. This is the first time this has happened to me, as I've tried Yamaha, Roland, and Korg sysex and I've always achieved my goals, with varying degrees of difficulty, but I've finally succeeded... but with Alesis, I've choked.😪
x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

I found a thread posted 16 YEARS ago! by a user who had the same problem. Someone replied, said they'd tried it but couldn't get it right, and even posted the code in case anyone wanted to take a look and figure out where the problem lay... but it's still there, unresolved for so long.
Here's the link in case it's of interest:
https://stackoverflow.com/questions/330 ... 1#79491541
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

well,well,well my dear friend I think I found the issue:
The official decoding scheme in the service manual is:

Code: Select all

0 A6 A5 A4 A3 A2 A1 A0
0 B5 B4 B3 B2 B1 B0 A7
0 C4 C3 C2 C1 C0 B7 B6
0 D3 D2 D1 D0 C7 C6 C5
0 E2 E1 E0 D7 D6 D5 D4
0 F1 F0 E7 E6 E5 E4 E3
0 G0 F7 F6 F5 F4 F3 F2
0 G7 G6 G5 G4 G3 G2 G1
right ?
guess what ?
the order of the bit is reverted !
the right key seems to be:

Code: Select all

0 A1 A2 A3 A4 A5 A6 A7
0 B2 B3 B4 B5 B6 B7 A0
0 C3 C4 C5 C6 C7 B0 B1
0 D4 D5 D6 D7 C0 C1 C2
0 E5 E6 E7 D0 D1 D2 D3
0 F6 F7 E0 E1 E2 E3 E4
0 G7 F0 F1 F2 F3 F4 F5
0 G0 G1 G2 G3 G4 G5 G6
the next step is to understand the characters are not in ASCII, they are indexes in a table which is:

Code: Select all

 !"#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}→←
the final step is to understand you have to read bits in reverted order. so if you have an character index in this
table, let say "*" , index 10, 0001010 in binary you should read 0101000 in the decoded stream, not 0001010 !
You can read that in the manual, they say first char adress is 1:6-1:0, this mean: start from byte 1, bit 6 and
revert back to byte 1 bit 0.

I worked on that for multiple weeks and finally I was able to properly decode the patch names properly.
this is it. I need to check what I've got with various parameters to be sure, but seems ok.
Last edited by gear73 on Fri Apr 11, 2025 3:46 pm, edited 1 time in total.
User avatar
Jesse United States of America
Administrator
Administrator
Posts: 2004
Joined: Thu Jul 07, 2005 5:49 pm
20
Do you own a fusion?: Yes
Location: Wilmington, NC USA

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by Jesse »

Good job gear73 :)
Tempus Drums, Roto Toms, Djembe, Bongo's, Ibanez Bass,(3) Fusion8HD, (2) SUMO300 Amps, Alesis16 Firewire Mixer, AKG D112, Behringer B2, Shure Beta 58a Microphones, Windows 10, Audigy Soundcard, Audition 3, Sony MDR-7506 Headphones, Kontakt 6 & East West Goliath Sound Banks and a small fridge full of cold drinks :)
x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

Wow, I see you've been working hard to achieve these results. I've tried the new scheme following your instructions but haven't gotten satisfactory results, so I guess I must be doing something wrong. I'll try to reproduce the steps I followed here to see where the implementation error lies.

We start from the sysex of an S4+ performance (same protocols as Quadrasynth/QS/QSR), here are the hexadecimal values ​​excluding the header and the end of the message "F7" so all are real data. The performance is named: ABCDEFGHIJ and I have verified that the name must appear at the beginning of the data.

Code: Select all

25 48 68 08 29 48 69 09 2A 4A 0A 08 00 17 3F 32 0A 03 78 7F 17 00 7A 7E 64 14 06 70 5F 2F 00 74 7C 23 29 0C 60 3F 5F 40 38 79 13 73 18 40 7F 3E 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F 00 18 7E 49 29 0C 60 3F 1E 00 30 7C 13 53 18 40 7F 3C 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F
The steps I follow are:
1-I read the data in 8-byte blocks.
The first block would be: 25 48 68 08 29 48 69 09
2-I convert each byte to binary:
25=0100101 48=1001000 68=1101000 08=0001000 29=0101001 49=1001001 69=1101001 09=0001001
3-I reverse the order of the bits within each byte:
1010010 0001001 0001011 0001000 1001010 1001001 1001011 1001000
4-I generate the 56-bit string and get 7 bytes of 8 bits
10100100 00100100 01011000 10001001 01010010 01100101 11001000
5-I convert each byte to decimal and obtain its correspondence within the reference string with all the characters you indicated.

Before you continue looking at and debugging my code, could you process the hexadecimal data I provided at the beginning in your program and see if the performance name ABCDEFGHIJ appears? If it does, it's clear I made a mistake somewhere... but if the performance name doesn't appear, then something's wrong.

Thank you so much for your work, time and dedication.
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

I don't get it, this forum does not notify me when someone respond to my post. I properly set the settings nevertheless...
I will try to read your post this weekend.
x
xfargas Spain
New User
New User
Posts: 10
Joined: Tue Feb 25, 2025 11:59 am
Do you own a fusion?: No
Location: Santander (Cantabria)

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by xfargas »

Thanks gear73, I don't get any notifications about forum activity either, so I have to check back regularly to see if there's been any news on this topic.

After reviewing and reprogramming my codes again and implementing possible changes (I have already performed many tests) I have been comparing data chains of different performances of the S4+ and there is something that baffles me and I can't find any logic in it.

For example, I have 3 performances that are identical, and I've only changed the names.

The 1st is called: ABCDEFGHIJ
F0 00 00 0E 0E 0E 64 25 48 68 08 29 49 69 09 2A 4A 0A 08 00 17 3F 32 0A 03 78 7F 17 00 7A 7E 64 14 06 70 5F 2F 00 74 7C 23 29 0C 60 3F 5F 40 38 79 13 73 18 40 7F 3E 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F 00 18 7E 49 29 0C 60 3F 1E 00 30 7C 13 53 18 40 7F 3C 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F F7
The 2nd is called: KLMNOPQRST
F0 00 00 0E 0E 0E 64 65 0A 2B 4B 6B 0B 2C 4C 6C 0C 0D 08 00 17 3F 32 0A 03 78 7F 17 00 7A 7E 64 14 06 70 5F 2F 00 74 7C 23 29 0C 60 3F 5F 40 38 79 13 73 18 40 7F 3E 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F 00 18 7E 49 29 0C 60 3F 1E 00 30 7C 13 53 18 40 7F 3C 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F F7
The 3rd is called: ABnDEF6HIJ
F0 00 00 0E 0E 0E 64 25 48 48 13 29 49 49 05 2A 4A 0A 08 00 17 3F 32 0A 03 78 7F 17 00 7A 7E 64 14 06 70 5F 2F 00 74 7C 23 29 0C 60 3F 5F 40 38 79 13 73 18 40 7F 3E 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F 00 18 7E 49 29 0C 60 3F 1E 00 30 7C 13 53 18 40 7F 3C 00 60 78 27 26 31 00 7F 79 00 40 71 4F 4C 62 00 7E 73 01 00 63 1F 19 45 01 7C 67 03 00 46 3F 32 0A 03 78 4F 07 00 0C 7F 64 14 06 70 1F 0F F7
Between the 1ª and 2ª, I changed all the letters in the name so that none of them matched and I could better observe the changes. When I compare the data between the two (I use Midi-OX), I see 11 differences, all contiguous bytes located at the beginning of the data string, which is logical and gives me a reference to where Alesis places the performance names.

But then I compare the 1ª with the 3ª, I have changed only 2 letters in the name of the 3rd performance: the "n" and the "6" instead of the "C" and the "G"... and in the comparison I see that 4 bytes have changed instead of the expected 2 bytes since I have only changed 2 letters.

No matter how hard I try to find logic... I can't find it.
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

Did you received my email ? I guess no :D
I was pointing that may be you didn't read the service manual on page 12 "Program Data Format"
The program name is not at the begining.
first you have 8 bits to skip (Program spare, deleted parameter)
then here comes the title
Here some examples:
the message looks like: F0 00 00 0E 0E 02 <edit#> <data> F7
<data> is 400 bytes long, starting at offset 7
once decoded it is 350 bytes long

the following is the decoded <data>

'AntiquePno'

Code: Select all

AAAAAAAA BBBBBBB BCCCCCC CCDDDDD DDDEEEE EEEEFFF FFFFFGG GGGGGGA AAAAAAA BBBBBBB BCCCCCC
76543210 7654321 0765432 1076543 2107654 3210765 4321076 5432107 6543210 7654321 0765432
00000000 1000010 0111001 0010101 1001001 1000101 1010101 1010001 0000110 0111001 1111001
see ? there is 8 bits with value 0 at the begining. Always.

'4Draw Rock'

Code: Select all

AAAAAAAA BBBBBBB BCCCCCC CCDDDDD DDDEEEE EEEEFFF FFFFFGG GGGGGGA AAAAAAA BBBBBBB BCCCCCC
76543210 7654321 0765432 1076543 2107654 3210765 4321076 5432107 6543210 7654321 0765432
00000000 0010100 0010010 0100101 1000001 1110101 0000000 0100110 1111001 1100001 1101001
' ? '

Code: Select all

AAAAAAAA BBBBBBB BCCCCCC CCDDDDD DDDEEEE EEEEFFF FFFFFGG GGGGGGA AAAAAAA BBBBBBB BCCCCCC
76543210 7654321 0765432 1076543 2107654 3210765 4321076 5432107 6543210 7654321 0765432
00000000 0000000 1111100 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000
' ? '

Code: Select all

AAAAAAAA BBBBBBB BCCCCCC CCDDDDD DDDEEEE EEEEFFF FFFFFGG GGGGGGA AAAAAAA BBBBBBB BCCCCCC
76543210 7654321 0765432 1076543 2107654 3210765 4321076 5432107 6543210 7654321 0765432
00000000 0000000 0000000 1111100 0000000 0000000 0000000 0000000 0000000 0000000 0000000
Last edited by gear73 on Sat Apr 12, 2025 1:08 pm, edited 1 time in total.
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

xfargas wrote: Sat Apr 12, 2025 9:25 am For example, I have 3 performances that are identical, and I've only changed the names.
No matter how hard I try to find logic... I can't find it.
My code don't decode your SysEx, It seems the QS6.1 decoding key is not the same than your S4+ !
is it the untouched Sysex dump ?

Don't give up ! :D

To find your key, may be you can try to do like me:

First, you need a proper way to compare payloads. Use binary not hexa. My test code do this:

Code: Select all

Title          : 'ABCDEFGHIJ'
Actual Title   : 'DTdt💀💀$5E%'
          AAAAAAAA BBBBBBB BCCCCCC CCDDDDD DDDEEEE EEEEFFF FFFFFGG GGGGGGA AAAAAAA BBBBBBB BCCCCCC
          76543210 7654321 0765432 1076543 2107654 3210765 4321076 5432107 6543210 7654321 0765432
ACTUAL  : 10100100 0010010 0010110 0010001 0010101 0010011 0010111 0010000 1010100 1010010 1010000
EXPECTED: 00000000 1000010 0100010 1100010 0010010 1010010 0110010 1110010 0001010 1001010 0101010
ERRORS  : ^ ^  ^   ^ ^      ^^ ^   ^^^  ^^     ^^^ ^     ^  ^  ^ ^ ^^   ^  ^ ^^^^    ^^    ^^^^ ^ 
note I display on purpose 8 bits then 7 * 10 bits, because I'm hunting down 7 bit codes of characters for the title.

as soon as I started to work like this, I was able to fix the decoding key saying: mmmh, bit B6 is inverted with bit C4, let's change it in the key. and so on.

I also store the key as it is in the manual, like this:

Code: Select all

    private static final String officialKeyReverted = """
            0 A1 A2 A3 A4 A5 A6 A7
            0 B2 B3 B4 B5 B6 B7 A0
            0 C3 C4 C5 C6 C7 B0 B1
            0 D4 D5 D6 D7 C0 C1 C2
            0 E5 E6 E7 D0 D1 D2 D3
            0 F6 F7 E0 E1 E2 E3 E4
            0 G7 F0 F1 F2 F3 F4 F5
            0 G0 G1 G2 G3 G4 G5 G6
            """;
    /**
So yeah, it requires a LOT of code to prepare and display the analysis, but this is how you can succeed.

Also, instead of using ABCDEFGHIJ, try to use a single character using lot of '1' bit (for instance '?') and another with 1 bit only (for instance '!')

I work with Java, here are my test suite:

Code: Select all

Arguments.of("QS6.1/Alesis Edit Buffer1.syx", "          "),
Arguments.of("QS6.1/Alesis Edit Buffer2.syx", "!         "),
Arguments.of("QS6.1/Alesis Edit Buffer3.syx", "!!        "),
Arguments.of("QS6.1/Alesis Edit Buffer4.syx", "!!!       "),
Arguments.of("QS6.1/Alesis Edit Buffer5.syx", "!!!!      "),
Arguments.of("QS6.1/Alesis Edit Buffer6.syx", "!!!!!     "),
Arguments.of("QS6.1/Alesis Edit Buffer7.syx", "!!!!!!    "),
Arguments.of("QS6.1/Alesis Edit Buffer8.syx", "?!!!!!    "),
Arguments.of("QS6.1/Alesis Edit Buffer9.syx", " ?        "),
Arguments.of("QS6.1/Alesis Edit Buffer10.syx", "  ?       "),
Arguments.of("QS6.1/Alesis Edit Buffer11.syx", "   ?      "),
Arguments.of("QS6.1/Alesis Edit Buffer12.syx", "    ?     "),
Arguments.of("QS6.1/Alesis Edit Buffer13.syx", "     ?    "),
Arguments.of("QS6.1/Alesis Edit Buffer14.syx", "← ← ← ← ← "),
Arguments.of("QS6.1/Alesis Edit Buffer15.syx", "→ → → → → "),
Arguments.of("QS6.1/Alesis Edit Buffer16.syx", "_ _ _ _ _ "),
Arguments.of("QS6.1/Alesis Edit Buffer17.syx", " _ _ _ _ _"),
Arguments.of("QS6.1/Alesis Edit Buffer18.syx", "PureStereo"),
Arguments.of("QS6.1/Alesis Edit Buffer19.syx", "Rave Knave"),
Arguments.of("QS6.1/Alesis Edit Buffer20.syx", "AntiquePno"),
Arguments.of("QS6.1/Alesis Edit Buffer21.syx", "4Draw Rock"),
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

Ho I see, you are working on a MIX Dump:

Code: Select all

F0 00 00 0E 0E 0E <mix#> <data> F7
The service manual states there are 2 Mix formats, the old one and the new one

NEW MIX DATA FORMAT: you need to skip 5 bits before reading the characters

OLD MIX DATA FORMAT: you need to skip 13 bits before reading the characters

I forgot to tell you: to do this job you really need to write a robust bit stream reader, something
that eat an array of bytes (the Sysex payload) and few methods to read bit per bit.
Mine is here: https://github.com/hypercube-software/A ... eader.java

By the way, my code (and many many other things) can be found here: https://hypercube-software.github.io/Audio-Workshops/#/
Last edited by gear73 on Sat Apr 12, 2025 2:33 pm, edited 2 times in total.
g
gear73 France
New User
New User
Posts: 11
Joined: Mon Feb 24, 2025 5:49 pm
Do you own a fusion?: No
Location: france

Re: How to properly decode Alesis S4+ / Quadrasynth sysex files?

Post by gear73 »

I confirm my key is working also for S4+.
I skiped the 5 bits, I read properly your 'ABCDEFGHIJ'
I talked about Program and you talked about Mix, this was the source of the confusion.
Post Reply
  • Similar Topics
    Replies
    Views
    Last post