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 still get requests related to my Universal Manager sometimes. Its a program I created 18 years ago, the latest update now being 15 years old. It was a litte tool that was able to talk to MIDI hardware to exchange & organize presets.
Recently, a mail arrived regarding Windows 10 compatibility issues / crashes.
I completely forgot about that litte, but very helpful program. Due to the fact that I work on a K1 emulation VSTi and I have to test a lot on a real K1 to do this, this program came in very handy.
So i converted that old project to a recent version of my development environment, cleaned up the code, even found some issues that I was able to fix and added some improvements. And of course, I added support for the Kawai K1.
Feel free to grab the latest version here. Changes:
Upgraded development environment to fix Windows 10 compatibility issues
Fixed memory corruption issue when parsing MIDI messages
Open File dialog now remembers the last used extension and preselects it (either .syx or .mid)
You can now load multiple files in Open File dialog by using multi selection
Added ability to specify a checksum starting value for checksum calculation the idf file (see html manual)
Added support for Kawai K1 Single to instrument definition
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
A new audio demo is ready. I kept a lot of the old one but added some additional Singles from the ROM cards and a Vibraphone to demonstrate an AM preset.
Obviously, a big change is that the samples are now from the original K1m Wave ROM. Other than that, all the modulations are now properly implemented and I did a lot of A/B testing to match my real K1m. Without all of this, most of the new sounds (many of them being FX) wouldn’t even work.
Some reverb & EQ has been added, everything else is just the K1 VSTi
0:00 iA-5 Return Home
0:22 Water Drama (K1 ROM card / Kawai PHm)
0:38 iB-3 Jazz Harp
0:46 ID-3 Vybes (Amp Mod demonstration)
0:56 IA-5 Visitors (K1 aliasing demonstration)
1:11 Hold a Key (K1 ROM card / Kawai PHm)
1:19 IA-3 String Pad
1:29 IC-7 Terminator
I played around with some UI mockups. Completely work-in-progress of course. The lower section will look different to a real K1m as I want a better editing of course, with envelopes being displayed graphically etc.
Feedback is highly appreciated!