My second-hand WS2 has the 1.10 firmware with the MIDI save/load option, so I ended up experimenting with that instead. ALL converter, but never found any that I could confirm as compatible with the non-standard DB25 (IIRC) floppy connector used in the WS2 without actually buying one. I have looked at the Floppy emulator option a bit before writing my. I have never owned a WS2 midi workstation. I think the WS2 midi workstation was introduced after the WS2 and WS400 keyboards, so it may have never existed with the original firmware.
When you power up the keyboard, you should see V1.10 as the software version for an upgraded WS2. The early WS2 my parents once bought was upgraded by means of a chip replacement by the music shop where they bought the keyboard.
The newer WS2's are sometimes referred to as WS2ii, and as far as I know the newer firmware is the only difference. There were other improvements like a programmable drumkit. The MIDI save/load options were added in an updated firmware, which the early WS2's didn't have factory-installed. Owners of GEM WS1/WS2/WS400 keyboards who find themselves without floppies or without a working floppy drive can now load their.
With this knowledge, I wrote a Perl script to convert. (NB this is substantially different from the Roland way of doing SysEx checksums). When receiving a SysEx dump, the total XOR checksum of the bytes between 240 and 247 should therefore always be 0. The checksum byte is calculated as the XOR of all other bytes in the SysEx data packet, excluding the 240 and 247 start and stop bytes. ALL format to fill the last byte group of the last data packet, and that byte group is padded with two FF(255) bytes. Data is sent per 15 byte groups., resulting in a 127 byte SysEx packet, with the last data packet containing the remaining 6 byte groups. The length byte in each data packet indicates how many of those byte groups there are in the current data packet. ALL format is transformed into a group of 8 SysEx bytes. Using this encoding, a group of 7 bytes from the. Seven 8-bit bytes have their LSB stripped, and the LSB's form byte number 8, from the first of seven bytes in the LSB of byte number 8, to the last of seven bytes in bit number 7 (64 decimal value). ALL file) has 8 bits per byte, and MIDI SysEx bytes can only have 7 bits (MSB 0), GEM uses an encoding to go from one to the other:
a six-bit packet counter (data packet number MOD 64)īecause the original data (the WS2 memory and the.2 (the header packet has a 1 here, the data packes have a 2).47 (GeneralMusic / GEM / Elka manufacturer ID).The data is spread out over 576 SysEx packets, preceded by one SysEx packet with header information.Įach SysEx data packet starts with these bytes (decimal representation): As always in MIDI, only command start (and end) bytes have MSB 1, and all data bytes have MSB 0. The only recognizable parts are the ASCII encoded voice and global names. ALL files are binary files, 60415 bytes long. In the GEM WS2, there's two ways of saving the memory (voices, globals, styles and songs): in. Vendors can use it for real-time instructions (changing a sound parameter in real-time) and for non-real-time instructions (sending or loading a configuration, sample set, etc.). SysEx is the vendor-specific (and non-standard) part of MIDI. And computers! While tinkering with an old floppy-less GEM WS2 keyboard, I wanted to figure out the structure of their System Exclusive memory dumps. MIDI is the standard for communication between electronic music instruments like keyboards and synthesizers.