TOMiCUser Manual v0.6
Back to TOMiC
Get TOMiC
0%
Table of Contents
00User Manual v0.6
01Introduction & Architecture
02Synthesis Engine & Layer Morphing
03Noise Generators & Sampler
04Modulation Matrix
05Per-Channel FX Chain
06Step Sequencer & Song Mode
07Mixer, Master, AI & Artchemy
08Specifications & MIDI Chart
TOMiC Groovebox v0.6 • Rust & egui
DSP Synth

Chapter 02: Synthesis Engine & Layer Morphing

Dual Layer (A/B) architecture, 12 synthesis architectures (Mesh 2D plate, Poly-BLEP VA, FM bass/leads, Plaits chords/speech, Braids, Harmonics, Granular), and hosted CLAP/Omni synths.

2.1 Dual Layer Architecture (Layers A & B) and Morphing

The core of TOMiC's sound engine is built around the Dual Layer Architecture. Each of the 16 instrument channels contains two complete, independent synthesizer instances: Layer A and Layer B (defined as ChannelParams::a and ChannelParams::b — both full instances of VoiceParams).

Morph Control Panel
Zoom HD

Morph Control Panel

Figure 2.1: Real-time Morphing control panel blending between Layer A and Layer B.

How Layer Morphing Works

The global Morph control continuously interpolates and blends multi-parameter DSP states between layers:

Smoothly interpolates envelope curves (Attack, Decay, Sustain, Release).
Crossfades FM synthesis ratios, saturation, filter cutoff frequencies, and FX drive levels.
Enables real-time timbre morphing during sequence playback.
Morph is exposed as a primary modulation target (LfoTarget::Morph) — modulated by LFOs, ModEnvelopes, step sequencer (per-step Mutation), or DAW automation.

2.2 Synthesis Types (SynthesisType)

Each oscillator (OSC1 and OSC2) within each layer (A/B) can operate in one of 12 synthesis architectures (SynthesisType):

Synthesis TypeGUI LabelDescription
WaveWaveClassic Virtual Analog waveforms: Sine, Triangle, Square, Sawtooth, Noise. Poly_blep anti-aliasing engine prevents aliasing artifacts.
Mesh2DMesh2D Finite-Difference Time-Domain (FDTD) plate physical modeling engine. Real-time biharmonic numerical solver running 8-wide SIMD. Simulates acoustic wave propagation, reflection, and modal resonance of struck physical plates (detailed in 2.10).
FmFMFrequency Modulation synthesis: a modulator oscillator deviates the carrier's frequency, with FM Ratio (0.1–10.0) and FM Amount (0–100) controls, plus a dedicated FM-index envelope (FM Attack, FM Decay, FM Sustain).
RingRingRing Modulation: multiplies oscillator signals to produce metallic, inharmonic timbres.
ClusterClusterClusterOscillator — a bank of 2-6 detuned partials (detailed in 2.7).
BraidsWave (Braids algorithm selected in the unified Wave dropdown)Macro-oscillator ported from Mutable Instruments Braids Eurorack module (detailed in 2.4).
Granular(legacy — no longer offered in the Type picker for new patches)CloudsProcessor granular engine used as the oscillator's exclusive output. Superseded by the universal Granulate checkbox, which layers the grain cloud on top of any architecture instead of replacing it; still loads correctly from older presets.
HarmonicsHarmonicsAdditive HarmonicOsc (detailed in 2.8).
BraidsRingRing+BraidsRing-modulated Braids carrier — combines a Braids algorithm with Ring Modulation.
PlaitsPlaitsMutable Instruments Plaits macro-oscillator clone (detailed in 2.5).
BraidsFmFM+BraidsFM synthesis using a Braids algorithm as the carrier (frequency-input only — always behaves as Linear FM regardless of the FM Engine setting for algorithms without a phase concept).
PlaitsFmFM+PlaitsFM synthesis using a Plaits engine as the carrier.

The GUI splits carrier selection across two dropdowns: Type picks the architecture (Wave/Mesh/FM/Ring/Cluster/Harmonics/Ring+Braids/Plaits/FM+Braids/FM+Plaits), while the unified Wave dropdown picks the actual sound source — a standard waveform, one of the 42 Braids algorithms, or one of the 9 Plaits engines — depending on which architecture is active. Picking a Braids or Plaits entry from Wave automatically swaps the Type to the matching Braids/Plaits carrier while preserving whichever FM/Ring architecture was already selected (e.g. picking a Braids wave while in FM stays FM+Braids rather than resetting to plain Braids).

An FM Engine switch (FmEngine: Linear / Phase) changes how the modulator affects the carrier for all FM-family architectures: Linear adds the modulator directly to the carrier's frequency each sample (TOMiC's original behavior); Phase adds it to the carrier's phase for textbook Chowning/DX7-style FM sidebands. Braids/Plaits FM carriers only honor Phase mode for the subset of algorithms/engines that have a genuine phase concept (most of them — see 2.4/2.5); the rest silently fall back to Linear.

Synthesizer Oscillator Section
Zoom HD

Synthesizer Oscillator Section

Figure 2.2: Oscillator and sound synthesis section interface.

2.3 Oscillator Waveforms (Wave Mode)

In Wave mode, the following waveforms are available (Waveform enum):

WaveformDescription
SinePure sine wave — ideal for deep sub-bass and kick drums.
TriangleWarm timbre with odd harmonics.
SquareSquare wave — rich in odd harmonics, punchy and resonant.
SawtoothSaw wave — complete harmonic spectrum, great for aggressive synth percussion.
NoiseInternal noise generator embedded as oscillator waveform.

2.4 Braids Macro Oscillator

TOMiC includes an integrated macro oscillator engine derived from the eurorack module Mutable Instruments Braids. Available algorithms (BraidsWave, 42 total, listed in code/discriminant order):

AlgorithmDescription
CSawSawtooth wave with phase and envelope shaping
MorphWaveform shape morphing: triangle -> saw -> square -> sine
SawSqSaw and square blending, variable pulse width
SinFoldWavefolded sine wave
BuzzHarmonic pulse buzz synthesis
3×SawTriple detuned saw oscillators
HarmoAdditive harmonic synthesis
FM / FeedFM / ChaosFMThree variants of FM synthesis: classic 2-operator FM, self-feedback FM, and chaotic-modulator FM
WTable / WLine / WMapWavetables with scanning modes: 32-frame scan, curated step sequence, and 2D grid
Swarm7-voice detuned oscillator swarm with adjustable HP filter resonance
3×RingTriple ring modulation
ToyLo-fi circuit-bent chiptune simulator (sample-rate decimation, glitch/repeat)
FltNoise / TwinPkColour-filtered noise and dual resonant formant peaks
Particle / GrainParticle (impulse/burst) and granular algorithms
Vosim / Vowel / VowelFofFormant vocal and speech synthesis (pulse-density VOSIM, vowel formants, FOF vocal synthesis)
ResLP / ResBPResonant LP/BP filter oscillators, noise-excited pluck blend
Lorenz / RosslerChaotic attractors as sound sources
Pluck / BlownPhysical modelling of plucked strings and blown pipes
FltPk / FltHpResonant filtered shapes (peak/high-pass) driven from a pulse/saw source
AnalogBd / AnalogHhAnalog kick drum and hi-hat circuit modelling (Plaits-style)
PDCasio CZ phase distortion: saw, square, pulse, saw-pulse and three resonant (windowed hard-sync) shapes. Timbre = DCW depth, Color = shape, Aux = bend of the distorted phase
DSFDiscrete summation formula (Moorer): alias-free partial series. Timbre = brightness, Color = partial spacing (harmonic to metallic), Aux = fewer partials or a denser two-sided series
PulsarPulsar synthesis (Roads): a windowed pulse per period, then silence. Timbre = formant, Color = pulse shape, Aux = random or 1-of-N burst masking (crackle, subharmonics)
ScannedScanned synthesis: a struck 32-mass string read as a wavetable; the timbre moves at the hit and settles into a sine. Timbre = stiffness, Color = damping, Aux = strike position
TerrainWave terrain synthesis: an orbit over a 2D surface. Timbre = orbit radius, Color = terrain, Aux = flat ellipse / circle / Lissajous orbit
WalshWalsh functions (square-wave harmonics). Timbre = function 1-16, Color = single function or additive stack, Aux = edge smoothing
SupEllipSuperellipse (Lamé curve): star, sine and square in one sweep. Timbre = exponent, Color = up/down asymmetry, Aux = curve rotation (a rotated square gives a trapezoid)
WarpPhase warps on a basic wave: bend, asym, remap, mirror, sync, quantize. Timbre = amount, Color = mode, Aux = base wave (saw / sine / triangle)
ShepardEndless Shepard/Risset glissando. Timbre = falling / static / rising glide, Color = partial interval (octave to tritone), Aux = window width

Each algorithm exposes 3 modulatable macro controls — Timbre, Color, Aux — but their meaning is remapped per algorithm (e.g. for AnalogBd, Timbre is tone/click amount, Color is decay length, Aux is pitch-drop depth; for Vowel, Timbre/Color/Aux sweep vowel position, formant shift and nasality). Hover any knob in the editor for a per-algorithm tooltip. Aux is always centred at 0.5 (the neutral/classic sound) rather than at 0.

Braids can be combined with other architectures from the Type dropdown: plain Braids (via Wave), Ring+Braids (ring-modulated), and FM+Braids (Braids as an FM carrier, frequency-input only).

2.5 Plaits Macro Oscillator

Alongside Braids, TOMiC ships a second, independently-ported macro-oscillator family: a clone of Mutable Instruments Plaits (dsp/plaits_osc), built fresh from Plaits' own DSP rather than reusing Braids code, so it contributes genuinely different sound categories. The first pass ships 9 engines (PlaitsModel):

EngineGUI LabelDescription
VirtualAnalogVAnalogTwo-oscillator virtual analog with detune and hard sync
WaveshaperWshapeWavefolder-driven waveshaping oscillator
ChordChordChord generator (triads, sus, sevenths...) with per-voice unison
WavetableWTable4-frame wavetable with buzz/brightness control and crossfade glide
SpeechSpeechVowel/formant speech synthesis, continuous A-E-I-O-U with breathiness
ModalResonatorModalNoise-excited modal resonator bank (no phase concept — always behaves as Linear FM regardless of FM Engine)
AnalogBassDrumAnalogBDAnalog kick drum circuit model with click/attack sharpness control
AnalogSnareDrumAnalogSDAnalog snare drum circuit model, tone/noise balance
AnalogHiHatAnalogHHAnalog hi-hat circuit model, metallic partial count

Plaits reuses the same three macro knobs as Braids, remapped as Harmonics (onto the timbre param), Timbre (onto color), and Morphology (onto aux) — the labels differ per engine (e.g. for AnalogBassDrum: Harmonics = attack sharpness, Timbre = pitch drop depth, Morphology = decay time).

Plaits can be combined with FM (FM+Plaits, Plaits as the FM carrier) but not with Ring or the Granular carrier slot. It is not available while Granular, Ring+Braids or FM+Braids are active, since those are Braids-carrier-only modes.

2.6 Granular Processor (CloudsProcessor)

TOMiC utilizes a port of the Mutable Instruments Clouds engine with 5 granular processor instances:

InstanceSignal SourceFunction
granular / granular2Live recorded oscillator signal (OSC1/OSC2)Live synth signal granulation — records into a rolling 1.5 second buffer (RECORD_SECONDS), so grains top out at ~375ms
noise_granular / noise_granular2Loaded sample buffer (NOISE1/NOISE2)Sample granulation — reads the sample's start/end window directly (process_static), no live recording
clouds_fxFull stereo post-filter FX signalGranular texture effect in the master FX chain

The oscillator granular layer is enabled per-oscillator via the universal Granulate checkbox (gran_layer_enabled), which layers the grain cloud on top of whatever synthesis architecture is active rather than replacing it — this is what superseded the old dedicated Granular SynthesisType.

Active Granular Controls

Grain Size: grain length, 1–2000ms (skewed), default 50ms
Grain Pitch: playback-rate multiplier for grains, 0.25x–4x, default 1.0
Grain Position: scan position within the recorded/loaded buffer, 0–1
Grain Freeze: stops recording so grains scan a frozen snapshot of the buffer
Grain Width (Spread): random per-grain stereo placement, 0–1
Grain Density: below 0.5 = evenly spaced grains, above 0.5 = randomly seeded grains, with a dead zone around the centre where grains only fire on a trigger — default 0.7 so a fresh patch is audibly granulating
Grain Texture: shapes the grain window — 0–0.75 morphs a hard trapezoid into a raised cosine, 0.75–1 fades in an allpass diffuser
Grain Blend: dry/wet between the raw source and the grain cloud, default 1.0 (fully wet)
Grain Feedback: re-injects the granular output back into the record buffer
Grain Reverb: send amount into a built-in reverb tail for the grain cloud
Grain Dens Sync / Div: optional tempo-sync for grain density, quantized to standard note divisions

Older Grain Scatter, the pre-Clouds Grain Density/Grain Window pair, and Grain Reverse are legacy parameters kept only so older DAW sessions still recall correctly — they are no longer read by the audio engine.

2.7 Cluster Oscillator

The Cluster architecture (ClusterOscillator) generates a bank of 2–6 detuned partials (Cluster Cnt, default 6) for dense chords and bell-like harmonic structures:

Cluster Spread: detune amount across the partial bank, 0–1
Cluster Set (ClusterRatioSet): the frequency-ratio table used for the partials — Classic808 (default), Cymbal, or Gamelan
Cluster Wave (ClusterWave): per-partial waveform — Sine (default) or Square

2.8 Harmonics Oscillator

The Harmonics architecture (HarmonicOsc) is a Tremor-inspired additive oscillator with two operating modes (HarmonicsMode: Membrane default, or Harmonic) and a selectable per-partial waveform (HarmonicsWave: Sine, Triangle, Square, or Sawtooth):

Harmonics Space: spacing between partials, 0–100 (default 50)
Harmonics Peak: position of the spectral energy peak, 0–1
Harmonics Rolloff: amplitude falloff of higher partials, 0–100 (default 50)
Harmonics Decay: per-partial decay/damping amount, 0–100

2.9 Per-Voice Signal Topology

Beyond the oscillator/noise carriers, each Layer (VoiceParams) exposes a small set of controls that shape how its signal is routed and combined:

Saturation Topology (SaturationTopology): where the voice's drive/saturation stage sits relative to its filter — PreFilter (default, drive before the filter), PostFilter (drive after), DualStage (half the drive amount applied on each side), or Parallel.
Feedback Amount: 0–1, routes a portion of the voice's own output back into its input for self-resonant/chaotic timbres.
OSC Ring Mod: a standalone bypass-able ring modulation toggle between OSC1 and OSC2, independent of either oscillator's SynthesisType.
Hat Mode (HatMode): a decay-time multiplier tailored for hi-hat-style channels — Normal (1x, unchanged), Closed (0.08x, very short/choked), Open (5x, long ring-out), Pedal (0.02x, near-instant).
OSC Mix Mode / Noise Mix Mode / OSC-Noise Mix Mode (LayerMixMode): how OSC1+OSC2, Noise1+Noise2, and the final oscillator+noise sum are combined — Crossfade (default linear blend), EqualPower (constant-power law, no loudness dip), RingMod, Add, or MinMax.

2.10 Mesh 2D FDTD Plate Physical Modeling Oscillator

TOMiC features a real-time 2D Finite-Difference Time-Domain (FDTD) biharmonic acoustic plate solver on both OSC 1 and OSC 2 across Layer A and Layer B. Unlike static sample libraries or modal resonators summing fixed sine banks, Mesh 2D physically simulates the transverse wave propagation, mechanical stiffness dispersion, boundary reflections, and natural structural damping of a physical struck plate in real time.

Mathematical Solver & Real-Time Stability

8-Wide SIMD Biharmonic Solver: The plate surface displacement is computed using a discrete biharmonic operator running 8-wide SIMD lanes (f32x8 via the wide crate) through a pre-allocated scratch buffer.
von Neumann Energy Stability Guarantee: The discrete solver parameters satisfy the von Neumann energy stability criterion:

$$2S + 16K + 4D_1 \le 1$$

where $S$ is the wave propagation/tension coefficient, $K$ is the biharmonic stiffness/dispersion factor, and $D_1$ is damping. This mathematical constraint guarantees zero risk of numerical explosions or DC runaway across all parameter ranges, requiring zero dynamic memory allocation on the real-time audio thread.

5 Boundary Geometry Masks

The boundary of the active plate grid can be shaped into 5 physical geometry masks, each exhibiting distinct acoustic eigenmodes:

1. Circle: Classic cymbal, gong, or bell geometry with concentric Bessel vibration nodes.

2. Square: Orthogonal reflection geometry producing chime-bar and metallic plate tones.

3. Ellipse: Asymmetric boundary introducing subtle modal splitting, acoustic beating, and shimmering flutter decay.

4. Hexagon: Complex multi-axial reflections suited for raw industrial hits and metallic snares.

5. Chladni: A disc pinned on the antinodes of a seeded plane-wave interference field (about 8 % of the area), with a pin-free core so the lowest mode always sits where the stick lands. Every seed yields a different set of pins — and a different modal fingerprint — without ever cutting the plate into silent islands; the strike point and pickups snap to solid material so no seed reads a hole edge.

Every shape is tuned to its real lowest eigenmode (solved on the built mask whenever the geometry, size or seed changes) rather than to an idealised pinned square, so a rimmed circle or hexagon lands on the note the Tune knob says. Rim-only changes are scaled analytically and never clear a ringing grid — an LFO on Rim no longer wipes the previous hit at every strike.

Dynamic Re-Strike Interference (Zero Machine-Gun Repetition)

In standard sample-based or static wavetable synthesizers, rapid successive hits either abruptly restart the sound or trigger independent parallel voices that sound identically repetitious. In Mesh 2D, the physical displacement and velocity state of the plate grid persists across voice triggers. Subsequent strikes land on a plate that is already vibrating. Wavefronts physically collide, cancel, and reinforce in real time. Rapid 16th-note rolls naturally build acoustic turbulence and organic sonic evolution, eradicating the artificial "machine-gun" effect completely without needing multi-gigabyte round-robin sample folders.

Physical Choke & Dampening

Hi-Hat choke and voice choke groups in Mesh 2D do not simply clamp an amplitude envelope. Instead, choke dynamically injects heavy numerical damping directly into active grid cells — exactly like a percussionist dampening a ringing cymbal or gong with a hand. Subsequent strikes automatically lift the damping.

Real-Time 16×16 Modal Vibration Heatmap

A normalized 16×16 modal visualizer rendered above the preset bar displays active surface deformations and nodal lines while the plate vibrates. The visualizer is published only when the plate is active, maintaining idle overhead at less than ~7ns per audio block.

Mesh 2D Parameters & Modulation

Mesh Tune: Base tension and propagation velocity ($S$).
Mesh Decay: Decay envelope length and structural energy loss ($D_1$).
Mesh Mallet / Strike Radius: Width of excitation impulse from sharp metal point to broad soft felt mallet.
Mesh Material / Stiffness: Biharmonic stiffness coefficient ($K$) governing high-frequency inharmonic dispersion.
Mesh Damping: High-frequency acoustic surface absorption.
Mesh Nonlinearity: Amplitude-dependent pitch glide and hardening under heavy strike velocities.
Mesh Pickups (1–4): Number of virtual contact microphones placed across the plate.
Mesh Pickup Radius & Spread: Placement distance and stereo separation of virtual pickups across the plate surface for natural stereo width.
Modulation Integration: Controlled in real time with 14 dedicated LfoTarget destinations (MeshTune, MeshDecay, MeshMallet, MeshMaterial, MeshDamp, MeshNonlinear, MeshPickupSpread, MeshGeometry, etc.).

2.11 Hosted Instrument Plugins (Standalone Only)

In Standalone mode, a channel layer's own sound source can be replaced by an external plugin instead of TOMiC's internal engines — turning the whole modulation matrix, sequencer and macro system into a generative brain for a third-party synth.

Two Hosting Formats: Load a CLAP instrument, or one of Omni's own .omniplugin (WASM) synths, using the +CLAP / +Omni buttons in the OSC tile. Both formats behave identically from the mod matrix's point of view.
Two Slots per Layer — OSC and NOISE: A hosted instrument can replace either a layer's OSC 1/2 stack (loaded from the OSC tile) or its NOISE 1/2 stack (loaded from the NOISE tile, via the same buttons there). Since each of Layers A and B can host one plugin per section, a single channel can run up to 4 hosted plugins at once. The existing Mix knob crossfades between the hosted instrument and the section's neighboring source (Instrument/Noise on the OSC side, Osc/Instrument on the NOISE side) exactly like the internal Osc/Noise balance it replaces.
Morph Still Works: With a plugin loaded, Morph becomes an audio blend between whatever Layer A and Layer B are each producing — internal engine, hosted plugin, or a mix of both — rather than a DSP-parameter interpolation. With no plugin loaded on either layer, output is bit-identical to a patch with no hosting involved at all.
20 Host Knobs per Slot, Fully Modulatable: Each hosted slot exposes 20 of the plugin's own parameters as regular TOMiC controls, so they carry per-step parameter locks, Macro routing, Song Mode automation, undo, and .tomic session persistence — and any LFO, ModEnv, Marbles, or other modulator can be patched onto them like any other destination.
Automatic Knob Mapping with Pinning: Whichever parameter you last move inside the plugin's own GUI window is automatically bound to the next available host knob slot — unless that slot is already wired from the mod matrix, in which case it is protected from being reassigned.
Always On: An optional Always On toggle keeps a hosted plugin's own internal clock/sequencer ticking through silence — needed when hosting a synth (including a second TOMiC instance) whose own sequencer must stay locked to host tempo rather than freezing between triggers. Off by default, since it costs CPU for an ordinary synth with no benefit.
Session Persistence: Loaded plugins, their knob mappings, and Always On state are all saved directly into the .tomic file; opening a new song cleanly clears every hosted slot before loading the new song's own.

Hosting an effect plugin (rather than an instrument) on a channel or the Master bus is a separate feature — see 5.15 In-Process CLAP FX Hosting.

2.12 Melodic, Bass & Harmonic Sound Design in the Groovebox

While TOMiC originated around raw percussive physics, v0.6 is engineered as a complete Groovebox workstation capable of handling every tonal and harmonic duty in your arrangement:

Basslines & Sub-Bass:
Virtual Analog (Poly-BLEP): Clean Sine waves for 808-style sustained subs, Saw/Square waves routed through the 303 Diode or Moog 24dB ladder filter for acid basslines with biting resonance.
Phase / Linear FM: 2-operator FM synthesis produces classic punchy metallic basslines, garage organ basses, and snappy modern techno basses with dedicated FM envelope decay.
Braids CSaw / SinFold: Rich, harmonic-packed foundations that cut through dense mixes.
Chords & Polyphonic Pads:
Plaits Chord Engine: Generates 4-note polyphonic chords (triads, sevenths, suspensions) from a single voice trigger, with dedicated Harmonics (chord type), Timbre (inversion/color), and Morphology (unison detune spread) macro knobs.
Cluster Oscillator: Detunes a bank of 2 to 6 partials across customizable harmonic and inharmonic ratio sets for lush ambient chords and industrial stabs.
Leads, Plucks & Melodic Textures:
Mesh 2D Physical Modeling: Struck physical plate simulations produce authentic acoustic vibraphones, gamelan chimes, bells, and metallic melodic tones that resonate organically.
Braids Wavetables & Physical Plucks: Access to 32-frame wavetable sweeps, physical plucked strings (Pluck), blown pipes (Blown), and vowel formants (VOSIM, Vowel).
Hosted Synths: Load external CLAP synths or Omniplugin WASM instruments directly into any channel slot to trigger complex polyphonic synthesizers from TOMiC's polymetric sequencer.

Combined with scale-quantized pitch sequencing (see Chapter 06), each of TOMiC's 16 channels can fluidly alternate between rhythm, bass, melody, and harmonic accompaniment.

Previous chapter01. Introduction & Architecture
Next chapter03. Noise Generators & Sampler