Feedback update

The user feedback ranging from positive to enthusiastic has exceeded all of my expectations on the KVR Instruments forum. A number of issues has also been brought up, feature requests, unsupported functionality and genuine bugs. So far nothing really catastrophic i’m glad to say.

Many users have been concerned about the CPU usage which is a bit high, and have been encouraging me to optimize further. Many users have requested also for a polyphonic version of the synth. Unfortunately both of these requests are hard to implement, and i can not promise either of these improvements in the near future.

Other issues involve:

  • Standard MIDI program change messages are not supported. Apparently Ableton Live relies on these when a clip is assigned a preset number.
  • The GUI doesn’t work with Wacom pen tablet.
  • Velocity sensitivity needs to be adjustable.
  • The GUI needs to support mousewheel on controls.
  • Better support for MIDI: modwheel, aftertouch, CC etc.
  • Vibra knob behaves bad when turned left.

I will do my best to fix all of the above issues in an update as soon as possible.

There are lots of reserved parameters that unfortunately can not be hidden from the host. They are not visible in the GUI, but most hosts have some display for all parameters. This arrangement has to do with how the VST hosts and plugins communicate and handle presets. Those unnamed parameters are reserved for future use so that if i ever need to add some new parameters to the synth, the old presets and old projects will remain working.

Huge thanks to everybody for the positive feedback and for bringing these issues to my awareness.

Credits

I have to thank Jyrki Pajunen, Ilkka Pajunen and Simo Lappalainen who have been helping me out on this project. Jyrki and Ilkka designed some great presets and produced the demo track with me, Jyrki gave his magic also in mixing and mastering the demo.

I have to thank the people on KVR Forum for DSP and Plug-in Development for revealing the mysteries of plugin development and providing answers to the most difficult questions.

Some software has been invaluable to the development. Especially the VST Host from Hermann Seib and the KnobMan from g200kg.com are irreplacable in plugin development. The Signal Analyzer from rs-met.com by Robin Schmidt has been very useful.

Putting the synth together would have been impossible without the algorithms and source code from musicdsp.org.

And finally i must thank Laurent de Soras for the incredible HIIR library and Paul Kellett from mda-vst for a magnificent resonant lowpass filter algorithm, that was the starting point of my LPF implementation, DestroyFX and Urs Heckmann for publishing source code that taught me the basics of VST plugin development many years back.

Demo track

Just finished a demotrack for the synth. The idea was to present as many sounds in as brief track as possible, yet in a form with enough resemblance to a dance track production.

All instruments and sounds are made with Kairatune, except for the drums and percussion. The Kairatune tracks were mixed very conservatively – no additional processing per track, although some reverb sends were used. The final mastering was performed without restrictions to bring the end result closer to what one might hear on a real production.

Initial user feedback

So far the feedback has been mainly positive and encouraging. Most of the negative comments have been about the user interface, nonstandard or unintuitive parameter naming or layout. Also the documentation for some of the more unusual parameters has been insufficient. These are the kind of shortcomings that are very hard to spot from the designer/developer point of view, which makes the feedback especially valuable. I’ll do my best to fix these issues before the release. Huge thanks to the testers!

I’ve also received a number of ideas and suggestions for improvement. I take that as a good sign, though i don’t have the time to implement much of that stuff on the first release.

A couple weeks ago i received a dozen very creative high quality presets designed by users. They’re quite unlike my own designs and very interesting. Things are moving on just great!

Sound engine overview

Kairatune’s sound engine consists of

  • generator section,
  • pitch section,
  • spread section,
  • amp section,
  • filter section and
  • effects section.

Generator

The generator section has just one multi-oscillator. The basic waveform generator is very simple adjustable mix of sawtooth and square wave. The multi-oscillator generates five waveforms whose relative pitch, phase and amplitude may be configured and modulated enabling a rich set of tones. The multi-oscillator uses quite unusual technique that generates a single fundamental signal independently of the (multiple) overtones, preventing the beating effect that arises where several oscillators are output in slightly detuned unison, yet preserving the full and fat sound on the overtone spectrum. The method enables building very rich and full sounds on a perfectly solid bottom and is especially useful in creating tight bass and low register lead sounds.

Pitch

The pitch can be modulated by a traditional vibrato, by a trill modulator and by a shared (sinewave) LFO source. The trill modulator is basically a square wave LFO. The modulation depth of all three modulators is independently controllable by an envelope. This enables the momentary use of quite extreme modulation. With the modulation envelopes the exact time and duration of the modulation can be set to produce some quite interesting effects and timbres.

Spread

The spread section makes the sound appear to oscillate in the stereo field. It uses a variable amount of high frequency damping and delay to create the illusion of movement.

Amp

The amp section modulates the amplitude by an AHDSR envelope and the shared LFO source and velocity. The asymmetric waveshaper can handle quite extreme driving without audible aliasing.

Filters

The filters section has a resonant lowpass filter and a resonant highpass filter. The cutoff frequency can be modulated independently by an AHDSR envelope and the shared LFO source. The lowpass filter’s cutoff frequency can be modulated by a spread modulator, which creates interesting effect in the stereo image, especially on high resonance configuration.

Effects

The effects section runs two delay units in parallel. One has a pre highpass filter and the other has a bandpass filter in the feedback chain. The cutoff frequency of the BPF is modulated by an dedicated LFO. The BPF delay is capable of some really interesting sounds on high feedback configuration. The effects section contains also a six stage phaser and two EQ units with selectable mode.

Why not go commercial?

At the beginning i didn’t think too much about how and when i was going to release something. At first it seemed like an option to sell the synth for a few bucks and maybe even make some out of it. However, reading some posts on KVR Forums written by serious professionals, convinced me of the fact that making profit out of plugins as an independent developer is very difficult. So, freeware it is, less business – more pleasure!

DSP horror

So i started playing around with a bunch of sawtooths and it sounded quite horrible. I’m not a DSP-guru of any sort and had the bitter sweet sensation of learning about aliasing the hard way. I learnt what it takes to generate better sound, but even the simplest thing such as generating a sawtooth waveform became complicated as hell. Later i learnt that unintended noise, distortion and aliasing lurk everywhere in audio DSP, just waiting to drive a poor engineer insane.