All 11 plugins on saleExplore the collection
Kiln Synthesizer with its LIBRARY open: a list of factory patches such as Turned Coal, Still Marble and Worn Furnace, each marked FACTORY, above tag chips for Bass, Lead, Pad, Keys, Pluck, Glass and FX.

JournalBehind the build

How Kiln’s 554 factory presets are made and tested

Kiln’s factory library is written by a program, and every preset is rendered through the synth engine and measured before it ships. Here is how the presets are drafted, the check that missed 80 of them, and the automated audibility check that replaced it.

Kiln’s factory library is written by a small program that lives beside the plugin’s source code, and nothing it writes reaches the library until the synth engine has rendered it and a set of measurements has passed it. This is how the 554 factory presets are made, what that process missed in September, and the additional check that now covers that failure.

Seven families, one seed

The generator drafts presets from seven families: Bass, Lead, Pad, Keys, Pluck, Glass and FX. Each family is a recipe, a short list of what the family always sets and the ranges it is allowed to vary. A Bass drops the oscillator one or two octaves, turns on the sub oscillator, and picks a lowpass cutoff somewhere between 300 Hz and 1,800 Hz with a short release. A Pad stacks five, seven or nine unison voices, fades in over 0.4 to 1.6 seconds and always has reverb on. A Glass patch runs through Kiln’s Glass resonator with no sustain, so every note rings and decays like something struck. A Lead gets one, three or seven unison voices, a little glide, a tempo-synced delay and a vibrato on pitch.

Inside those ranges the choices are random, but the randomness is seeded: every draft takes its numbers from a seed made of its family and its attempt number. Run the generator again and it drafts the same candidates in the same order, so every draft can be traced back to the recipe and the seed that made it.

Every preset also gets a name, a mod wheel route, a route on its first macro (362 also route the second), and four macro names in its family’s vocabulary. The macro names are stored with the preset; the panel labels the knobs MACRO 1 to 4. Preset names come from a list of 40 adjectives and 50 nouns written for Kiln, which is where Turned Coal, Worn Furnace and Veiled Iron come from, and no name is used twice. Twenty-eight presets are MPE patches, where per-note pressure moves the filter and sliding your finger along the key moves the wavetable. Sixteen carry a Learn tag for teaching.

FamilyPresetsMPELearnMacro names
Bass9404Open, Motion, Air, Space
Lead8000Open, Vibrato, Echo, Grit
Pad106124Open, Drift, Bloom, Shimmer
Keys7880Tine, Body, Room, Age
Pluck7404Length, Bite, Echo, Wide
Glass8284Material, Ring, Strike, Air
FX4000Sweep, Chaos, Wash, Depth
Counts by the recipe each preset was drafted from; 554 in all. In the library the sixteen Learn presets appear under their own Learn tag.

Every draft is rendered before it is kept

A draft is only numbers until it makes a sound, so the generator renders every one through Kiln’s real engine: a single note held for half a second and then released, at 48 kHz. The render then goes through three gates.

  1. It has to make sound, and not too much. The loudest sample must sit between −40 dBFS and +6 dBFS, and every sample must be a real number. Silent drafts and runaway ones stop here.
  2. It cannot be a copy. The render is reduced to a fingerprint of 54 numbers: how much energy sits in 16 frequency bands during the beginning, middle and end of the note, plus its brightness, how much it changes, how pitched it is, its attack, its sustain and its pitch. The comparison weighs tone and envelope most and pitch least. A draft closer than 0.05 to anything already kept is thrown out.
  3. It is set to a common level. The output gain is trimmed so the render peaks near −6 dBFS, so presets arrive at comparable levels as you browse.

On August 11 the generator drafted 585 candidates and kept 554. The other 31, 5.3 percent, were silent, runaway or too close to something already in the library.

The test that missed 80 presets

In September a reviewer reported that some Kiln presets played no audio, and named two: Veiled Iron and Waxen Smoke. They were not silent. They were playing a sine wave below about 60 Hz and nothing else.

The cause was in how the recipes wired their controls. Kiln’s macros and the mod wheel rest at zero and only move up. The routes the generator created treated them as controls that swing both ways, with the middle as rest, so a macro sitting at zero was read as turned all the way down. Every such route applied its full downward pull the moment the preset loaded. Where two of them pointed at the same lowpass filter, the pulls added up, the filter closed completely, and only the sub oscillator got through. That happened to 80 of the 554: 73 Bass presets, 4 Learn presets and 3 MPE pads.

Kiln's MODULATION section on the MATRIX page: eight rows, each pairing a source such as lfo1, velocity, modWheel, macro1 or macro2 with a destination and a depth value.
The MATRIX page, where each route pairs a source with a destination and a depth. Macros, the mod wheel and MPE pressure only move up from zero; the 80 broken presets treated them as if they swung both ways.

The first gate should have caught them and could not, because it only measured the loudest sample. A peak meter cannot tell where the energy is. A strong sub-bass signal can measure a healthy peak while remaining difficult to hear on a speaker that cannot reproduce it.

The audibility check that replaced it

The new gate checks whether a preset has energy beyond the deepest bass. It measures the energy above 150 Hz and requires it to reach −45 dBFS once the preset is trimmed to its −6 dBFS peak. It is a minimum, not a mixing target or a guarantee for every speaker. A playback system, room, listening level and patch register still affect what you hear.

Every preset is measured twice, once in its own register and once at a fixed middle note (MIDI note 57). When the whole library is measured this way, the results fall into two clear groups with an empty gap between them, and the threshold sits in that gap, so the result does not depend on exactly where in the gap the line is drawn.

GateWhat it measuresTo pass
Sound, not runawayThe loudest sample of the renderBetween −40 and +6 dBFS, every sample a real number
Small-speaker audibilityEnergy above 150 Hz, after the level trimAt least −45 dBFS, in the preset’s own register and at MIDI note 57
Not a duplicateA 54-number fingerprint of tone and envelopeAt least 0.05 away from every preset already kept
Common levelOutput gain trimPeaks near −6 dBFS, within a trim of −24 to +12 dB

The same measurement code serves the generator and a test in Kiln’s own test suite, so the two cannot drift apart. The test loads all 554 shipped presets through the same path the plugin uses when you pick one, renders each at both notes, and fails the build by preset name if any falls below the floor. It takes about two minutes, so it runs as its own step, both on candidate builds and in the release build. It checks this specific low-frequency failure; it does not replace listening to a patch in a musical context.

The repair

The fix for the 80 changed the presets and nothing else. Each one gained a resting value for its first macro that cancels the pull of the other routes on the same filter, and a new level trim. Eleven also needed a small change to cutoff, saturation or octave. No name, tag, macro name, route or wavetable changed, and the library still holds 554 presets. On the repaired Bass presets the first macro is still called Open, and it now opens from a centered rest instead of starting pinned shut.

After the repair all 80 passed at four different notes, with the quietest one at −44.0 dBFS above 150 Hz and none peaking above −3 dBFS. The other 474 measured the same as before. The repaired library shipped in Kiln 0.2.1 on September 14, on Mac and Windows.

The lasting fix belongs in the recipes: the next time the library is regenerated, those routes are to be declared one-directional from the start. Until then the audibility check is the net under every preset.

What this means when you open the library

The release check measures the factory presets in two registers. Since Kiln 0.2.2, clicking a preset or moving through the list with the arrow keys loads it. If a preset still sounds wrong on your speakers, tell us at support@vitricaudio.com. A report is how this check got better, and it is the fastest way to the next improvement.

More about the synth itself is in the Kiln manual.

Keep reading

More from the journal

Corrections and questions go to support@vitricaudio.com. Follow the journal by RSS or Atom.