Kawai K5000S Init Patch With Sawtooth Wave

Here's how to create an additive sawtooth wave on the Kawai K5000S, based on the simple sine wave init patch. The harmonic levels are calculated with a spreadsheet using a special top-secret formula that can now be yours! Just kidding; the K5000 newsgroup members figured it out in the late 1990s.

It's easy to create a spreadsheet using Numbers or Microsoft Excel that will give you levels for the 64 harmonics, derived from their amplitudes. You could also write a Python script or even use a programmable calculator from Casio, TI or Sharp as your sidekick.

Basic synth waveforms are easy to create using additive synthesis, but they are just the starting point. With a control envelope for every harmonic, you can create patches with evolving timbres.

Download the patch

You can download the sawtooth wave init patch as a System Exclusive file, for transferring it over to your K5000 with a suitable application like SysEx Librarian on macOS, or MIDI-OX or my own Sixten System Exclusive Manager for Windows.

Note that since Kawai K5000S patches have the location embedded, this patch will only go to D081 unless you edit the location as described in the post about the LFO.store Kawai K5000S patches.


I made a video of the creation of this patch on the brand new DigitalSynth.net YouTube channel.

There's simply too much editing to do that it is not feasible to lay down all the steps here; take a look at the video if you want to recreate the patch yourself.


The Kawai K5000 synths were released in 1996 and 1997. If you had one at the time, and were trying to figure out the harmonic levels for various waveforms, you could have been using something typical for the time: a programmable graphing calculator.

I actually still have the Sharp EL-9200 calculator that I bought in 1999, although it now has a display fault. I have since acquired a Sharp EL-9400, which is from 1995 and would have been very much current when the Kawai K5000 synths were released.

Therefore I thought it would be fitting to find out a way to compute the harmonic levels using a program written in Sharp BASIC. I did a version with all the three basic waveforms–sawtooth, square and triangle–, but since Sharp BASIC is a fairly primitive language in terms of control structures, the program ended up as a rather messy GOTO-infested piece of work. It does produce the correct levels, obviously.

This program is a simplified version that only calculates the harmonic levels for a sawtooth waveform, but it should be fairly easy to extend it to do also the square and triangle waveforms.

Label LOOP
127+8*log2 abs(A)⇒L
Print N
Print A
Print round(L,0)
If N≤64 Goto LOOP

When you run this program, it prints out the harmonic number, its amplitude, and the K5000 harmonic level, rounded to the nearest integer. For the sawtooth wave, the display is something like this:


and so on. Note that the level calculation takes the absolute value of the amplitude, in anticipation of the triangle waveform, where it can go negative (and base 2 logarithm of a negative number is undefined).

I would really like to produce a more modern calculator version of this program using Casio BASIC on my brand new Casio fx-9860GIII calculator. It also has MicroPython, but sadly that environment does not have an implementation of the base 2 logarithm in the math module.


Musikhaus Thomann is a great place to shop for musical gear. If you visit them through this link, they set up a cookie in your browser, and if you end up buying something from them, I earn a small commission, which helps to keep this site up and running with no ads.