Pad synthesis: layered timbres, XY motion and cinematic character
Selecting sustained-sound workflows and turning them into original four-layer synthesis and modulation.
Technical research · edition 2 · reviewed 2026-10-24

Prismal Labs native editor capture, illustrating the corresponding software project. View full-size image
What we found
The pad research shifted the question from “how many presets?” to “what changes audibly over a sustained phrase?” Different serialized states are not evidence of different sounds, and a moving visual control is not evidence that the rendered filter or layer balance is moving.
We used full renders, controlled static comparisons and explicit layer voicing to examine a 64-sound bank. The four-layer expansion also preserved old parameter meanings instead of reusing saved IDs for new controls. These methods are useful for evaluating any large synthesis library.
Independent layers create testable character
The 64-sound replacement bank prioritizes audible character over bank size: contrasting engine/wave pairs, tuned registers, independent layer arrival times, filter modes/resonance, noise amounts, spatial density and motion patterns. Swells, held drones, weather, spectral voices, glass, felt/strings, tension and rhythmic movement each have eight authored entries. Automatic XY modes apply existing synthesis controls, following the local GranularSynth interaction pattern while keeping PadGenerator's own blend/tone targets and native state. No new physical circuit or commercial-algorithm matching is claimed.
A/B/C/D have independently selected tonal engines, octave registers, shaping, filtering, procedural textures and arrivals. The 64 explicit factory rows use all four layers, octave stacks and new C/D/envelope/LFO/texture/effect routing. The twelve procedural textures use no commercial recordings or convolution data. The 16-route matrix retains the original eight routes' normalized ranges and adds eight broader routes rather than reinterpreting saved host automation.
V1 migration disables C/D and leaves new processing neutral; four frozen-engine 30-second comparisons at 16 kHz are sample-identical. Factory diversity is checked with full renders and spectral/onset proxies, not commercial sound matching.
Evidence: PadGenerator/RESEARCH.md.
Prepared spectra and motion are different parts of the engine
Analog, wavetable, harmonic and FM families are authored synthesis methods. The spectral preparation uses four frames and seven harmonic-limited mip levels per family, outside the callback. Each layer has independent register, filtering, envelope scaling, spread and shaping. The FM family uses calculated Bessel sidebands; that is a synthesis construction, not an inference about a commercial oscillator.
The important control separation is between waveform identity, spectral motion and layer arrival. Two patches with the same raw waveform can differ substantially in when their layers enter and how their spectral balance evolves. Conversely, changing a nominal engine value can have little audible effect under a closed filter or silent layer. This motivated audio-based factory checks instead of relying on parameter uniqueness alone.
The factory render experiment
The renderer writes 32-second stereo float32 WAVs and matching patches, with
a 20-second held chord followed by release (Drone patches remain held). --catalog exports
all 64 patches without rendering audio. Inspect the full renders with
tools/inspect-factory.py --renders <folder> --static-renders <comparison-folder> --output <receipt.json> (NumPy). Render the comparison bank with --all --static-filters: this disables cutoff
routes and tone-lane modulation while retaining the other sound controls. The
inspector measures the resulting audio difference for every patch. Native editor captures live under the
build's pad-ui/ directory. Timing measurements stay outside CTest.
Evidence: PadGenerator/README.md.
What the retained receipt measures
The retained factory receipt reports 64 presets and 64 unique audio renders. Its maximum sample peak is 0.600216; measured spectral centroids span 140.75–7485.10 Hz. These are fixture results, not loudness targets or a perceptual quality score.
The closest reported spectral pair, Pulsar Veil/Pendulum Choir, has similarity 0.974744. A high spectral similarity does not prove two evolving sounds are interchangeable: onset, modulation, register and spatial behavior can still differ. It does identify a useful pair for closer listening. The evidence combines hashes, spectral/onset proxies and complete renders rather than equating any one metric with diversity.
Evidence: PadGenerator/FACTORY-VALIDATION.json.
Applying the findings
Render a held chord and its release long enough to expose arrivals, slow modulation and effects. Then render a controlled comparison with only the relevant modulation disabled. A difference between those signals demonstrates that the intended motion reaches the audio path; inspecting a route table alone does not.
For state migration, freeze representative old states and compare them through the new reader with added layers neutral. Keep processor-level comparisons separate from later output-calibration or host-chain changes. Listen to the closest spectral pairs and the extremes of the bank, then test dense chords and high registers for headroom and aliasing.
Limits and open questions
The receipt's “passed” status covers its stated measurements. It does not establish commercial sound matching or subjective uniqueness. Earlier notes contain inconsistent preset-count wording; this article uses the actual 64-entry receipt. Four retained 30-second frozen-engine comparisons were sample-identical for the documented migration fixture; later output calibration and complete host behavior have their own scope. Strong digital shaping is not claimed alias-free.
Primary references
Research provenance
The methods and results above are drawn from these retained research records. Dates and product versions inside the article identify the scope of each experiment; publication review does not mean the hardware or numerical tests were rerun.
PadGenerator/FACTORY-VALIDATION.json— SHA-2566fbcf46b039396632df322ae2c5c6ad6026d76b954fdb077dd73619f4836d218PadGenerator/RESEARCH.md— SHA-256ba5a1aa8047a26553ac678887344fd96d983bb958f9eb2b954b1c951647b0a24PadGenerator/README.md— SHA-256098dac6be3b4d518697a0c959d607b01743a6d2c73c1e693342757729b7fb510
