0DDFORM MPC SAMPLE MODS / BUILD NOTES
Inside CHIMERA
& SPECTRA.
Two ways of making a sound. One starts with recordings; the other starts with a spectrum.
CHIMERA and SPECTRA are two instruments I’ve been working on inside 0DDFORM MPC Sample Mods. They share a small piece of hardware, but approach sound from different directions.
CHIMERA takes two recordings apart and builds a hybrid from what it finds. SPECTRA generates a family of waveforms and turns them into a live synth. These notes follow the code: what gets analysed, what gets rendered, and what has to happen quickly enough to play.
01 / ANALYSIS & RESYNTHESIS
CHIMERA takes a sound apart.
Start with two short samples: perhaps a plucked string and a vowel. CHIMERA analyses each one into a model of pitch, harmonics, resonance and texture. The hybrid is then synthesised from those models, rather than made by playing the recordings over each other.
What the analysis keeps
The sources are mixed to mono for analysis. A YIN-based pitch estimator follows the fundamental, with spectral peaks helping to refine it. The settled pitch becomes a reference root.
Short overlapping Fourier analyses then describe how the sound changes: up to 128 harmonic amplitudes, a smooth spectral envelope sampled at 48 log-spaced frequencies, and 24 bands of residual texture. The actual residual waveform is kept too, so the attack can retain something of the original recording.
Those are different parts of the sound. Harmonics describe the pattern of overtones. The spectral envelope describes the broad shape that makes some frequency regions stronger than others. The residual carries the less tonal material around them.
Building the hybrid
The central idea is to separate a sound’s harmonic recipe from its resonance. MORPH blends the recipes; CHARACTER blends the envelopes. That lets one source’s pattern of harmonics speak through the other source’s body.
harmonic recipe[k]
× resonance at frequency[k]
→ output partial[k]
Attack and body are aligned separately. The real attack residuals are blended without stretching them; the continuing texture is synthesised from the residual bands. The oscillator bank rebuilds the tonal part, including the sources’ measured inharmonic stretch, where partials sit a little away from exact whole-number multiples.
Twelve normalised values hold the hybrid’s settings. A seed produces sixteen related variations; breeding blends two favourites and introduces controlled changes. The variation comes from those parameters and the source models.
Playing it across the pads
KEYS renders the selected hybrid again for each pad note, using the shared Scales layout. The resonance can stay at its intended frequencies while the fundamental changes. The attack and duration stay consistent too, because the engine is rebuilding notes instead of changing a recording’s playback speed.
Hear the hybrids.
Two saved CHIMERA host renders from the lush-source examples. Each plays eight notes followed by a chord.
Vocal × pad
0:08The hybrid played as an arpeggio and a chord. From the existing lush-source KEYS demo.
Vocal × tine
0:08The same keyboard phrase with the vocal/tine source pair, for comparison.

02 / SPECTRA & WAVETABLES
SPECTRA starts with a recipe.
SPECTRA starts with harmonic amplitudes rather than a source recording. Its spectrum holds 64 harmonics at each of 16 morph positions. A mood such as WARM PAD, GLASS or CHOIR generates that spectrum, along with envelope, brightness and other voice settings. A seeded variation changes the details within the mood.
A spectrum becomes a waveform
The worker adds the harmonics together to build single-cycle wavetables: short arrays describing one repeating cycle of sound. There are sixteen morph frames, each containing 2,048 samples plus one guard sample for interpolation.
The engine builds nine octave bands of those tables. Higher bands contain fewer harmonics, limiting overtones as pitch rises and reducing aliasing. Frames are level-normalised before playback so a change in colour does not also become an uncontrolled jump in loudness.
A note becomes a voice
Each voice reads the tables at its note frequency and interpolates between morph frames. One oscillator sits at the exact centre pitch; up to two detuned companions add width. A sub sine, air noise, a low-pass filter and an amplitude envelope complete the voice. Up to eight voices can sound together.
EVOLVE moves the morph position with slow, seeded drift. TONE controls the filter. SPACE brings in unison, stereo chorus and reverb. These controls are read during audio processing; turning them does not require a new table build.
The pads follow the project’s key and scale, or a chromatic layout. A take can capture stereo audio and a MIDI record of the notes and velocities. The current played-synth rewrite is the version described here; painting the spectrum is a separate, planned stage.
Hear the synth.
Fresh offline performances from the current played-synth engine. The sound and effects come from SPECTRA; these are host renders, not hardware recordings.
Warm ninths
0:18WARM PAD. Open chord voicings, a softened attack and wide unison.
Aurora drift
0:18AURORA. Slow morph drift with the synth’s chorus and reverb.
Choir bloom
0:18CHOIR. Minor-colour voicings through the vowel-shaped spectrum.

03 / CPU, MEMORY & THE AUDIO THREAD
The work behind the sound.
Both engines are DSP written in C, using standard maths, arrays and explicit voice state. The page code adds POSIX worker threads, C11 atomics, WAV helpers and the shared scale mapping. The runtime targets the MPC’s ARM64 Linux environment and both engines use a 44.1 kHz sample rate.
The expensive work is scheduled differently. CHIMERA’s worker reads the samples, runs the analysis and renders finished stereo buffers. Its audio callback plays those buffers. SPECTRA’s worker builds tables, while its audio callback continuously runs the voices and effects.
SPECTRA has two table banks. The worker prepares the spare bank, then publishes its index with atomics. The audio thread marks the bank it is reading so it is not overwritten. CHIMERA uses a try-lock for its buffer handover: its contribution can skip a block rather than make the audio thread wait.
A small memory ledger
- CHIMERA / sixteen 2-second hybrids
- ≈ 11.3 MB
- Stereo, 32-bit float sample data alone. Models, the work buffer and a KEYS note set add to that.
- SPECTRA / two table banks
- ≈ 2.36 MB
- 9 bands × 16 frames × 2,049 floats × 4 bytes, twice. Voices, effects and a recorded take are additional.
This is a trade between preparation, storage and work done while playing. CHIMERA spends more time and memory preparing individual notes. SPECTRA stores compact cycles and spends CPU running live voices. Neither memory figure is the total RAM use of the MPC application.
What still needs care
CHIMERA is designed around short, mostly monophonic sources. Dense material gives the model less reliable pitch information; very deep pitch dives are currently flattened. Its source analysis is capped at six seconds, with output renders capped at five.
SPECTRA’s table construction and voice tests run on the host, while listening, mood balance and performance on the instrument remain separate checks. Desktop benchmark timings are not MPC CPU measurements. These are development notes, and the article does not imply a public software release.
