Putting Kawai K5000 Patches in Their Place

It's not every day you get a bank of fresh patches for the Kawai K5000S. This powerhouse synth from the late 1990s has remained a firm favorite of synthesists who want a powerful machine that can create sounds from first principles using additive synthesis.

The K5000 has a reputation of being difficult to program, but it can reward your efforts with lush pads and soundscapes. Sound designers like Nick Klimenko know this, and his "Kawai K5000S/K5000R – 30 Space Pads" collection is now available from LFO Store, and here is a demonstration video of the patches:

However, when I started to transfer the patches to my Kawai K5000S using the excellent SysEx Librarian by Snoize, I had some trouble finding them, and some of them did not make it to the synth. This problem was also observed by others who had bought the bank, and some reported in the Kawai K5000 Facebook group.

Since I am pretty familiar with the K5000 System Exclusive format because I developed KSynthLib and k5ktool, I knew that the single patches had to have their destination location hard-coded in the System Exclusive header. And sure enough, I soon found out that the locations were kind of all over the place: some went to the A bank, and some to the D bank, into various locations far apart. Half of the patches actually tried to go to the E bank, but that can only work if you have the ME-1 memory expansion board installed, and I don't.

After thinking about this a bit, I decided to create patches for the System Exclusive files--so, patches for the patches, if you will. This would allow you to--yes, patch your patches so that they would go to locations that were easy to find and made sense.

I decided that the D bank would be a suitable place for a set of patches like this, and I definitely wanted to have all of them in consecutive locations in the D bank. That way they would appear as patches D001 to D030.

Of course, since the System Exclusive files are binary, making and applying patches for them is not as easy as for text files. There is a handy open-source utility called Xdelta, which macOS users like me can install using Homebrew:

brew install xdelta

When the installation is finished, you can run the utility with xdelta3.

Modifying the original patches

I edited each of the 30 original System Exclusive files to point to consecutive locations in the D bank of the K5000.

Single patch dumps start with the following hexadecimal byte sequence:

F0 40 00 20 00 0A 00

The following two bytes after that are the bank identifier and "tone number", respectively. The bank byte values are: 00 = A, 01 = B, 02 = D, 03 = E, 04 = F. The tone numbers are zero-based and range from 0x00 to 0x7F, meaning locations 001 ... 128 within the bank. So the bytes 02 0E would indicate D015, while 00 0D would be A014.

First, I made copies of all the 30 original System Exclusive files by Nick and named them 01.syx, 02.syx and so on, up to 30. Then I used the Hex Fiend utility to edit the copies to have a bank byte of 02 and a tone number from 00 to 1D.

Creating the deltas

Using Xdelta, I created delta files of the differences between Nick's original files and my modified copies, with a shell script containing commands like this:

xdelta3 -e -s "1.Sunset NK.syx" 01.syx 01.delta

This command will create a record of the differences between the original file 1.Sunset NK.syx and the edited copy 01.syx, and write it to the file 01.delta. Note that this command is for reference only, and you don't need to issue it. See the next section for applying the deltas supplied to you.

Applying the deltas to the original patches

If you have bought the "30 Space Pads" set from LFO Store, you should have all the original 30 System Exclusive files. Download the file KawaiK5000S-30SpacePads-Deltas.zip. It contains all the 30 delta files and an accompanying shell script file that uses the Xdelta utility.

Unzip this file in the same directory with the original files. Then run the shell script in Terminal with:

bash apply.sh

You should then have a new set of System Exclusive files, with slightly different names. These names are normalized so that they include a two-digit patch number and a name that corresponds to the actual name of the patch as shown on the K5000.

Here is a list of System Exclusive files you should end up with:

01-SunsetNK.syx
02-SpicedNK.syx
03-OnMoonNK.syx
04-LinearNK.syx
05-MarsNK.syx
06-BluredNK.syx
07-HealerNK.syx
08-NikoBras.syx
09-NikVoxy.syx
10-BladeRunn.syx
11-Galactic.syx
12-Mountain.syx
13-X-Files.syx
14-Dronezzz.syx
15-Moover.syx
16-MoonPad.syx
17-GreatOrb.syx
18-GlassPad.syx
19-Belmaker.syx
20-Cluster.syx
21-SphinxPd.syx
22-MarsMoby.syx
23-Sirius.syx
24-TranzPad.syx
25-Must2020.syx
26-Seaworld.syx
27-Ob08Pad.syx
28-Wavestat.syx
29-HUMANAIC.syx
30-SlowStr.syx

Note that the ZIP file does not contain the original patch files from Nick. You need to buy them.

Transferring the patches

Use SysEx Librarian or similar to send the newly created .syx files over to the K5000S. When you select the D bank (by pressing the SINGLE button) you should see this:

Kawai K5000 30 Space Pads in the D bank
Kawai K5000 30 Space Pads in the D bank

Troubleshooting

The procedure above requires some skill with the macOS Terminal. I did this primarily for my own use, and I am documenting it as a courtesy to Nick. I can't promise any technical support. Proceed at your own risk, Back up your purchase, make work copies, understand the instructions and follow them, and you'll be fine. Happy patching!