christofmuc / KnobKraft-orm

The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
GNU Affero General Public License v3.0
200 stars 25 forks source link

New Device: Alternate Mode DrumKat 3.5 #293

Open MDshuey opened 10 months ago

MDshuey commented 10 months ago

This feature-packed midi drumpad has features well ahead of its time but are difficult to unlock from a four-line screen, 10 buttons, and 4 footswitches,

I have gathered what documentation I have been able to find from archives. An OSX application called Unisyn was an existing librarian with support for KAT (now Alternate Mode) drumpads. (Galaxy was another for OS9, I did not have luck extracting the relevant files).

The UH1 File within the KAT.zip is a description of the method of getting the drumpad to communicate with the Unisyn software. The UP1 file I am unsure of how to fully decode yet, assistance would be helpful.

KAT.ZIP

KAT35SYX.ZIP

MDshuey commented 10 months ago

From the manual, Appendix G:

A drumKAT SYSTEM EXCLUSIVE DATA DUMP consists of two parts: 1) A 9 byte “header” that describes the dump and 2) The DATA! The amount of data depends on type of dump. Followed by 0F7H (End of Sys Exc) The 9 bytes of the header are defined below: HEADER: byte 1: (0F0H) Start of System Exclusive Status Byte byte 2: (00H) byte 3: (00H) byte 4: (15H) [00H, 00H, 15H is KAT’s Company ID #. byte 5: (68H) Instrument type ID # for the drumKAT. byte 6: (XX) Dump Type byte 7: (XX) Individual Instrument ID # byte 8: (XX) Software Version # byte 9: (XX) Aux Type # (Kit # or Motif # if Type is Kit or MOTIF) DATA: The DATA is split into nibbles and sent with a 0 for MSN. It takes two bytes of System Exclusive transmission for every byte of internal drumKAT information. The amount of data for each dump type is as follows: Dump Type Amount of Data Global 7120 1 Kit 1184 All Memory 58460 All Kits 35520 1 Motif 3842(M1), 1158(M2,3,4,5), 530(M6,7,8) After all the DATA has been sent, the End of System Exclusive Command (0F7H) is sent.

MDshuey commented 10 months ago

The .UP1 file is the module parameter guide of interest. I have loaded it into an XP virtual machine with the software in question, so shouldn't be any need to reverse engineer- just translate

image

christofmuc commented 10 months ago

Interesting! I had never heard of the company, KAT, before!

So.. I found the manual version 2.0, but that does not document the 0x11 dump type you have attached above as KAT35SYX.ZIP. The 3.5 manual is obviously where your text is taken from, it does not specify the value of the dump type but rather the lengths which can be used to distinguish the dump types.

Your file has a data size of 0x3d0f, which is 53311 in decimal, and doesn't match any of the dump types described. It is only a single sysex message, so something like an all memory dump would be logical, but it seems it does not match the 3.5 manual.

Sadly, the device does not allow computer initiated transfer - we have to use the manual dump feature.

Unisyn is still sold by Motu? https://motu.com/products/software/unisyn/highlights.html

I try to understand what you want with the Unisyn parameter? I guess you want to extract the parameter info? KnobKraft is not an editor, but just a Librarian. So it is suited to backup data from the device and send patches/kits to the device, but in the current state there is no way to edit a patch (other than the name).

The functionality that KnobKraft could offer with the given information is to act as a data store for all dump types that can be initiated from the device. You would press "receive manual dump" in KnobKraft, and then send it from the device. It would be stored in the database. You could click it to send it back. That might make sense especially for devices which have too little memory, so that might suffice?

christofmuc commented 10 months ago

Fascinating device, just watched a few YT videos.