Meanwhile, I’ve got a real Kawai K1m to analyze the machine. Unfortunately, it has got a little defect: The envelope attack is broken. With values above 50, the sound gets quiter and quieterand if you raise the attack above values of 68, there is no sound anymore.
I ordered an Eprom to upgrade the firmware from version 1.1 to version 1.5, but unfortunately this didn’t have any effect, the problem persists. I checked the soldering points, but I have not been able to find anything obvious. I contacted Kawai, maybe they can help to identify the problem.
Nevertheless, there is plenty of stuff I can do to analyze the device, even though the attack is not working properly (yet!).
I started to analyze the LFO speeds. I wanted to know which LFO speed value, ranging from 0 to 100, results in what length of one LFO loop in seconds. To do that, I created a very simple patch where the LFO is of type square and modulates the frequency of a sine. Then, I started recording and stepped through all values from 0 to 100 and pressed a note on my keyboard for each value.
The result looks like this:
After having done that, a lot of cumbersome work had to be done. I had to select an LFO loop in the wave editor and write down its length. For the higher LFO frequencies, I selected multiple loops (up to 16) and divided by 16 afterwards to get the correct average value as it turned out that the LFO precision is very low on the K1.
A picture of the highest LFO speed can be seen below. You can notice how the frequency is not constant, but jumps a lot.
After having entered everything in a Google Spreadsheet, I created a diagram to check for errors and tweaked the values manually here or there to get rid of precision issues.
Afterwards, I added the final result to my emulator which now has proper LFO speed values by using a table lookup for all possible values from 0-100.
It was a lot of work, but was completely worth it. I did several A-B checks against the real K1m that I now have and the LFO speeds are completely identical, just as it should be!