Alesis uses a packaging system to transmit data bytes when dumping a preset, performance, effect, etc. into some of its hardware such as synthesizers or effects racks. I am specifically interested in the S4+ which uses the same midi specifications as the Quadrasynth.
Following the instructions Alesis gave me to unzip and after many tests (even with the supervision of an Ai) I have not achieved a correct result, I always get unreadable garbage. A user already explained here 16 YEARS ago exactly the same problem. Below is the link to the question that was asked:
Alesis QS MIDI Sysex Data Conversion
He got some answers but no solution was offered. The codes posted here did not work well (as its author himself indicated) but he still made them known to the community in case anyone wanted to debug them.
Now I am facing the same problem and I am surprised that I have not yet found a solution since I often work with the sysex codes of other synthesizers from K, Roland, Yamaha... and I have always managed to decipher them.
This is an excerpt from Alesis's instructions for unpacking data:
*********************************** ALESIS INSTRUCTIONS DOCUMENT EXTRACT**
<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
*********************************** ALESIS INSTRUCTIONS DOCUMENT EXTRACT**
Working with strings of "0" and "1" can be tricky and confusing. The last test I did was to do away with actual bytes in binary format and instead use strings that exactly represented the conversion table provided by Alesis to make sure that after some rearranging and processing of my code, the final result was correct as shown in this conversion table, and it was, all correct.
Starting from an array of 8 imaginary bytes with the content indicated in the "TRANSMITED AS:" box, I end up with exactly the same 7 bytes as indicated in the "SEVEN QUADRASYNTH BYTES:" table. So my reordering code is correct, all I have to do is replace those dummy values with real bits within each byte... and the result, as I already mentioned, is always unreadable garbage.
I have seen the MIDI SYSEX specification document posted on many sites on the internet, but it does not appear to be an official Alesis document, but rather a transcription. Is it possible that this conversion table is wrong? Is it possible that Alesis has another layer of encryption added to its data?
I understand that after so many years it's like shouting in the wilderness, but I have to try. Has anyone been able to properly decompress and interpret an Alesis data dump? Can anyone give me instructions or any ideas I've missed?
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744839488a4596467.html
评论列表(0条)