Next step for me was to analyze the envelope values and velocity mappings. Because the LFO speed analysis was quite cumbersome, I decided to create a tool to analyse further parameters to make it a little easier for me.
For the envelope decay & release, I noticed that several singles share the same setting for both values. This is mostly used for drum presets but for some others, too. I verified it on the K1m and confirmed that this was the case.
Then, I used my simple init preset again and recorded note presses while adjusting the envelope decay value from 0 to 100. The result was this very long recording:
The largest envelope decay/release time is 2:44 minutes! But that was not the only thing I observed, I also noticed that the envelope decay is not purely logarithmic, but is a mixture of some logarithmic key points with linear interpolation between them. For longer release times, this is pretty obvious when looking at the waveform, but luckily not very noticeable when listening to it.
Having the recording ready, I created a little wave analyzer whose purpose is to dump envelope durations. It analyzes the waveform to find where a note begins and tracks the duration until the wave falls below an adjustable threshold and logs the time.
While this doesn’t work properly for the very short attack times (I measured them manually instead), it saved a lot of time.
Unfotunately, I had no chance to analyze the envelope attack times, as my K1m is broken here, but I assumed that they are identical and first tests confirm that, so I have all of three (Attack, Decay, Release) finished by now.
I extended this little tool to output gain values. I used it for the various velocity curves, envelope levels, sustain levels and so on.
As you can see in the picture above, the velocity curve is a little bit steppy. Apparently the resolution is not very good. Anyway, I used the same low resolution in my emulator to closely match the original device.