Nils‘ K1v – v1.26 released

I’ve just released Nils‘ K1v version 1.2.6, which contains the following fixes:

  • [Fix] Limit maximum voice count to 32 voices per Multi section / Single to prevent very high CPU usage for sounds with a very large release time
  • [Fix] Hold Pedal behavior was incorrect, voices were stopped for notes that were still held while hold pedal is released
  • [Accuracy] Fix incorrect Autobend & Vibrato behavior when compared to the hardware. On the hardware, they are not independent per
    voice, instead, the first voice defines the modulation for all subsequent voices / notes

The new version can be obtained from the Project page

Nils‘ K1v – v1.25 released

Nils‘ K1v version 1.2.5 has been released, which contains the following improvements / fixes:

  • [Fix] VST3 x64 version did not store/restore plugin state
  • [Fix] If global receive channel was omni and a Multi was selected, all multi channels received notes on channel 1 instead of the ones selected in the multi parts

Head over to the Download page to grab your copy 👍

Nils‘ K1v – v1.2.4 released

Nils‘ K1v version 1.2.4 has been released, which contains the following improvements / fixes:

  • [Imp] The settings menu now allows you to toggle between Stereo output and 8-Channel output. This should resolve issues that some users experienced after the latest Ableton update
  • [Fix] VST3 version of plugin was not detected/rejected on Mac OS
  • [Fix] Be more tolerant when receiving patches via SysEx (MidiQuest might generate invalid SysEx packets that we can work around and still load)
  • [Fix] Reduce required amount of dependencies for Linux variants

Nils‘ K1v: VST3 & Apple M1 support

Nils‘ K1v version 1.23 has been released, which brings the following two new features:

VST3 Plugin

The plugin is now available as VST3 for Windows, Mac OS and Linux. The VST3 version is identical to the VST2 version but adds support for multichannel output.

Note that, by default, only the Stereo Out is active. If you want to use Multi Channel Output, activate the buses in your DAW manually.

Note: As soon as one of the multi outputs is activated, the Stereo Output is silenced.

The VST3 plugin has the following outputs:

Stereo OutDefault Stereo Output
Source / Multi 1Source 1 in Single mode, Single 1 in Multi mode
Source / Multi 2Source 2 in Single mode, Single 2 in Multi mode
Source / Multi 3Source 3 in Single mode, Single 3 in Multi mode
Source / Multi 4Source 4 in Single mode, Single 4 in Multi mode
Multi 5Single 5, only used in Multi mode
Multi 6Single 6, only used in Multi mode
Multi 7Single 7, only used in Multi mode
Multi 8Single 8, only used in Multi mode
VST3 Multi Channel Outputs

Issues? Feedback is welcome! 👍

Apple M1 Support

Support for Apples new ARM-based SoC named M1 has been added to all Mac OS plugin versions. There are no separate downloads as the latest build now contains a so called „universal binary“ which contains the binary for both the x86_x64 and ARM64 based processors.

This should give a performance boost on Apples new SoC. It would be nice if you would report back if everything works as intended 👍 as I don’t have an Apple M1.

Download Page

Kawai K4: Really a 16 bit synthesizer? Only partially!

I started to analyze the K4r. The first thing I did is to dump the contents of the Firmware EPROM and the Wave ROMs.

I dumped the firmware just to verify that the content on the chip matches the firmware image that I already had on disk, which it does.

Wave ROM dumps

In contrast to the K1, the K4 has three Wave ROMs in total.

From left to right: Kawai K4 Wave ROM chips U40, U39, U38

Nothing unexpected so far. As the K4 claims to be a 16 bit sampler, it was expected that it needs more storage for the samples.

After having dumped all of them, which was very easy due to them being socketed this time, I loaded them into my wave editor to take a first look. I imported the raw data as 16 bit and listened.

Analyzing Wave ROM chip data

While I had no issues with chips U39 and U40, chip U38 (the rightmost one in the picture above) sounded like garbage. What I also noticed is, that the former two chips sounded a bit distorted, had a lot of noise and the pitch seemed to be pretty high.

I looked at the data in a hex editor and was surprised to find content that much more looked like 8 bit samples rather than 16 bit samples. This can be seen by adjacent bytes constantly rising or falling, as below:

I changed the import format and loaded them again.

To my surprise, chips U39 and U40 sounded just fine now! A little bit of 8 bit noise, but nothing unexpected.

K4 Wave ROM chip U39

I guessed that the K4 somehow creates 16 bit samples by combining the contents of the chips together. But I had three chips only, where are my remaining 512k of data that I would need? Maybe the samples are 12 bit?

Chip U38 is special

I took a closer look at chip U38, the chips that only produced random noise so far.

The end of the chip data raised my attention as it looked like sample data:

Chip U38 data

What do we see here? We see eight least significant bits of a sample. This proved that this is not „random“ data but actually raw sample data. It furthermore cleared up that this chip does not contain a nibble for each of the other two chips to create 12 bit samples.

If this chip contains the LSB of another chip, to which chip does this data belong?

This can be tested by looking at the frequency spectrum of all three chips. Obviously, for chip U38 this is mostly noise, but not everywhere. For U39 and U40, we see regular frequency spectrums of sample data.

U38 -Frequency Spectrum
U39 -Frequency Spectrum
U40 -Frequency Spectrum

Do you see it? There is a relationship between the two chips U38 and U39.

Getting 16 bit samples out of two chips

I wrote a small program which combines the contents of these two chips to form 16 bit samples and loaded the result into my wave editor.

Gotcha, now we have 16 bit samples. If you look at these two pictures, you can see the difference immediately. The lower picture has got a much lower noise floor and it sounds much cleaner.

Chip U39 – 8 bit samples
Chip U38 and U39 combined, 16 bit samples. U39 = MSB, U38 = LSB

What about chip U40 then? I also tried to merge chips U38 and U40 but this did not work out, as expected. As there is no data left, the conclusion is that chip U40 is used as a source for 8 bit samples.

Conclusion

Although Kawai claimed that the K4 is a 16 bit synthesizer, this is only partially true as only half of the sample data is 16 bit, the other half is 8 bit.

What they did to hide it is to move all samples with lots of noise, like flutes, the choir, cymbals, snares and others to chip U40 which holds 8 bit sample data.

Samples without lots of noise like the piano, basses, acoustic guitar and others are stored as 16 bit samples. Chip U38 carries the 8 bit LSB while chip U39 8 bit MSB.

What I also found out is that the single cycle wave forms have more multisamples and the PCM wave forms are now partially multisamples, too! Which should give a quality boost compared to a K1.

Nevertheless, the K4 is more similar to a K1 than one might think. Most chips are identical, the firmware dumps look quite similar (same velocity curves, KS curves etc.) and the K4 even has got lots of 8 bit samples still!

Stay tuned, more to come! 👍