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

Alesis Quadrasynth, Quadrasynth Plus and S4 Sound Module

Moderators: Jesse, parametric

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 »

Fun fact, I've just found my decoding code can easily work for Korg.
The Korg decoding key is:

Code: Select all

0 G7 F7 E7 D7 C7 B7 A7
0 A6 A5 A4 A3 A2 A1 A0
0 B6 B5 B4 B3 B2 B1 B0
0 C6 C5 C4 C3 C2 C1 C0
0 D6 D5 D4 D3 D2 D1 D0
0 E6 E5 E4 E3 E2 E1 E0
0 F6 F5 F4 F3 F2 F1 F0
0 G6 G5 G4 G3 G2 G1 G0
I've just decoded the presets names of my Tr-Rack.
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 »

Thank you very much, gear73. Your contributions will be very helpful, but I'll have to read and understand it little by little; my programming skills are very limited. I was a Visual FoxPro programmer (I'm retired) for administrative applications (accounting, invoicing, etc.), and everything you describe is very new to me. But I suppose with the help of Ai, I'll be able to understand your code and try to implement it.

Thank you again very much for your 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 »

By the way, xfargas, which langage are you using right now ?
with the help of Ai, I'll be able to understand your code and try to implement it.
Guess what, I tried Gemini to make my BitStreamReader and.. it was a disaster. I had to write it myself unfortunately.
Nevertheless, Gemini can be good to search well known information, not something like "what is the decoding key of a QS6.1 please ?" :lol:

Anyway, good luck. You may found valuable information on my web site related to all of this, it's like a giant tutorial on Audio and Midi for beginners. But note that MIDI SysEx is an advanced topic.
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 again, gear73, for your interest. As I told you, I was a programmer of administrative management programs (accounting, invoicing, inventory control, etc.) and I used Visual FoxPro because it's very good for database manipulation and management.

Using Ai, I've run a lot of tests, some with my own code and some with your Java code. But the free Ai (which is what I use) stops after a certain amount of time, and I have to wait a few hours to resume. Also, many of the codes it offers contain bugs that I have to work on over and over again... it's become very tedious, and I can't dedicate much time to it.

But I trust that with time and patience I will eventually reach a definitive solution.
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 »

Hello again, I'm going to take advantage of this mini-vacation to work on this topic and I wanted to clear up some doubts.

1-The unpacking chart to follow is the original Alesis one or the one you posted.
This one?

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
2-For unpacking, should it be done in 8-byte blocks? Or is this table just an indication of how to manage the obtained bits, but it must be applied to all bytes of the sysex continuously?

3-The reverse reading of the bits to obtain the position within the reference string, should it be done only on those bits that affect the name or on all the bits obtained?

Thank you
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 »

1- Yes this is the right key, and it is not the one provided by Alesis
2- You need to unpack only the DATA part of the sysex, see the spec, not the entire payload
They recommand to work 56 bits by 56 bits, so you read 8 bytes of payload and produce 7 bytes of data.
3- The reverse reading of bits must be used AFTER the unpack. In a more academic way this is "LSB first encoding", the least significant bit comes first.
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 »

SOLVED!

I've now managed to successfully unpack and read the data from a performance, so I assume the rest of the data dump will work exactly the same. I'm currently finishing developing the code for my application. When I'm finished, I'll try to write a short tutorial and post it here in case anyone is interested.

Just to note that the Alesis instructions in their "MIDI SYSTEM SPECIFICATION" manual and the unpacking table are correct (at least for the Quadrasynth/S4), although somewhat confusing, and this can lead to an implementation error.

Thanks to "gear73" for his tips and especially for pointing out that the decimal values ​​obtained at the end of the conversion to resolve the name correspond to a position within a reference string and not as ASCII values.
Post Reply
  • Similar Topics
    Replies
    Views
    Last post