Finally, after waiting several weeks, Kawai reported back to me that they have no issues with me developing a Kawai K1 emulation. This is great news for me personally as I was still concerned that Kawai could respond in a way that would bring me in trouble. But they did not! 👍 They even sent high quality Kawai logos that I’m allowed to integrate into the plugin, I’m impressed, big thanks to Kawai!
Furthermore, there are now Linux & Mac versions of the VST. For Linux, there are .deb and .rpm packages in both 32 bits and 64 bits. The Mac version requires a 64 bit OS, minimum version is OS X 10.9 Mavericks.
For Mac, an AU version will definitely come. LV2 for Linux, too! Stay tuned.
Special thanks to all donators and to all testers at the KvR forum, a lot of people helped making the plugin available for Linux & Mac by testing on their machines.
As you might know, I was always interested to have the presets of the Kawai Phm Pop Synth Module. The PHm uses the same synthesis engine as the K1, the only exception is that the 200 presets cannot be edited. Not even via SysEX, as the PHm neither sends nor recognizes SysEX at all.
The PHm has some presets that never appeared on ROM cards for the K1. Due to a thread on KVR, I asked myself if there is a chance to extract the PHm presets from the device.
I have the device so I opened it and looked for chips that are ROMs. I have not been able to find any chip, so I wondered where the presets are stored. I guessed that they might be part of the Firmware EPROM.
I searched in the net and found the data sheet. This not only gave me the pin layout, but it also revealed something interesting: The EPROM of the PHm is 64kb, while the K1 EPROM is only 32k. This raised chances that it contains the presets.
Dumping the ROM was pretty straightforward, as I did this already for the Wave ROM. The only thing I needed to change is to change the wiring and the code a bit, as the firmware only has 16 address lines.
I dumped the rom and converted it to binary and started to look for the presets. Searching for presets by name didn’t lead to any result so instead, I searched for usual patterns that I already know because of the K1 Single format.
Given that 200 presets need about 20k of space, I quickly found them and began to compare the content against some presets that I know exist on the K1, too (on ROM cards).
Below is a picture. the upper part is the PHm firmware, the lower part is the SysEX of the K1 preset „ID-4 Hold a key“ from ROM card J1-02.
After some analysis, the differences are very minor. Compared to a K1 Single preset, the differences are:
No sysex header (F0h, …, 8 bytes)
No name (10 bytes)
Compared to the K1, they slightly adjusted the presets volumes (byte 11)
Byte at position 22 is missing in a PHm preset => A bit surprising to me, but apparently Source Mute is not supported by the PHm module
No sysex terminator (F7h, one byte)
After I figured out the format, I wrote a small conversion tool that converts all 200 PHm presets to K1 presets. Feel free to download them here! The Zip contains each preset individually and one .syx that contains all 200. The K1v can load it directly.
A small request: If anyone has got a Kawai PH50 firmware, can someone send me a dump? I’d love to extract the Ph50 presets, too!
Note: The PH50 presets are not identical to the PHm, although frequently stated on some websites. Just look at pictures of the device, the preset list is printed on it and it is different from the PHm list.
Just in case you didn’t see it yet, I am so excited about what Jürgen Moßgraber aka MOSS did. He created a whole song with the K1v. Except for some FX, there are only K1v instances in his music track. When listening to it, it instantly reminds me of the 80s. Thank you very much Jürgen for doing this! 👍😊
During past weeks, I worked a lot on the User Interface. For faster iteration times, I did the layout in Unity3D and wrote an exporter to create an xml and bitmaps for VSTGUI. This allowed me to do adjustments to the layout very quickly:
The first layouts that I posted some time ago had to get some updates. I forgot a section to set the name of a Preset and the Play mode page had to get some additional buttons, plus a search box to find presets quickly.
Some people pointed out that it would be better to have all sources on one page for faster editing. I tried it, but it just didn’t fit on one page properly. I didn’t want to ruin the design completely and the editing functionality is already really good in my opinion.
For the emulation engine, I had to do some minor finishing touches and fixed some bugs:
Ring Modulation didn’t behave correctly when being set to reverse mode
Fixed ring modulation caused envelopes to be applied twice, resulting in wrong decay & release behaviour
Implementation of Poly 2, Poly 1 and Mono modes was still missing
K1v will now correctly respond to Sysex messages, just as a real K1 does
Support to mix Source levels with the Joystick
Some code fixes to support 64 bit compilation
Midi: Pan, Main Volume, Program Change including Bank Select, Hold Pedal, All Notes Off
State serialization to make it possible that the state is saved as part of a DAW project
I’ve got many questions about the VST plugin, so I wanted to give some more & updated information about it.
VST Version & Operating System Support
Initial plugin will be a VST 2.4 plugin (VST3 later)
Two versions will be available from start, x86 and x64
As I don’t own a Mac and I’m not familiar with Mac programming, I can’t port it easily to a Mac AU. I have a colleague that could help out here, don’t expect it too soon though.
Instead of the original voice limit of 8/16 voices, the plugin will have unlimited voices
It will contain the K1 factory bank, the K1-II factory bank and all ROM cards, giving a total of 768 Single presets. Multi support is not planned for the first version.
Full editing capability (see UI section below)
SysEx import & export, which will basically make the plugin become a possible editor for a real K1
All Single parameters can be VST automated + the Source Mix Stick will get two automatable parameters
The plugin will support all MIDI messages that the real K1 supports such as program changes, Midi CCs, receiving Sysex is supported as well:
All Data Block Dump (i.e. a full Bank of Singles)
Single Data Dump (one Single)
I extended the MIDI feature list compared to a real K1 to now include support for the following additional midi messages:
MIDI CC 10 (Panning, which the K1 did not support)
The K1 Source Mix stick will be mapped to two Midi CCs
Bank Select – Used to switch between the various factory banks and ROM cards. As usual, Bank Select must be send before a Program Change
Pitch Bend wheel will use full precision (K1 is limited to 8 bits)
Most of the Single parameters will be mapped to Midi CCs so they can be edited via an external Midi Controller
I’ve received a lot of feedback for the very first UI mockup, which wasn’t even finished. I continued working on it to clarify some things. My intention was to have something that someone instantly recognized as being a K1. But of course, at the same time I always wanted the UI to be functional, including full editing capability.
Below are the two editing pages (Common + Source) and the „Play Mode“, where you can browse through the banks / singles.
Hope this clears things up a bit 🙂 And yes, the VST window will be resize-able, maximum resolution is 2560 x 1440