Connecting to engine…
Mantice is a procedural ambient drone generator. The name comes from the Italian word for organ bellows — the invisible breath engine that gives life to the pipes. Like a mantice, this tool provides the continuous, living airflow beneath your sound.
Unlike sample-based instruments or DAW plugins, Mantice generates audio from mathematical processes — every sound is computed in real-time from oscillators, noise, and grain clouds. No two renders are ever exactly alike (unless you lock the seed).
A Mantice preset consists of 1–5 independent layers, each with its own frequency, timbre, spatial position, and movement. Layers are mixed together to create complex, evolving textures. Think of layers as individual instruments in an ensemble — each contributes a different voice to the whole.
Each FM layer uses Frequency Modulation synthesis as its core. Multiple detuned voices per layer create rich, beating textures. The FM index controls harmonic complexity — low values produce pure tones, higher values create metallic, bell-like timbres.
Subtractive layers use classic waveform oscillators — sawtooth, square, or triangle — instead of FM. Two detuned oscillator pairs (±detune cents) create the thick, beating quality of a Reese bass. A third sub-oscillator one octave below adds weight. The output is then shaped by the per-layer filter for the full subtractive sound design workflow.
Every layer has five filter modes: LP (low-pass), HP (high-pass), BP (band-pass), Comb, and Formant. LP/HP/BP are biquad filters with resonance and optional LFO modulation (sine/triangle/square) on the cutoff. Comb creates metallic ringing via feedforward delay — the Cutoff sets the delay frequency, Feedback controls resonance intensity. Formant shapes the sound into vowel resonances (A, E, I, O, U) using three parallel bandpass filters at human vocal formant frequencies — ideal for chant-like and throat-singing textures.
On top of FM, each layer can add harmonic overtones (up to 16 partials with configurable decay) and filtered noise (white, pink, or brown) for breath-like textures and organic warmth.
Layers can also be granular — extracting tiny overlapping slices (grains) from real audio recordings. The included samples (singing bowls, gongs, bowed glass, throat singing, water, wind) become raw material for evolving textures impossible with pure synthesis. Control grain size, density, pitch spread, and read position to sculpt the cloud.
Each layer has a position in 3D space — horizontal (left/right, front/back) and vertical (elevation). Layers can move through space using trajectories: orbit, drift, bounce, or random. This creates an immersive, living soundfield — especially powerful with headphones.
A per-layer chorus effect adds width and shimmer through modulated delay copies. Slow rates create gentle swaying; faster rates add vibrato-like movement.
A per-layer flanger modulates a short delay (comb filter) with an LFO, creating the classic jet-plane sweeping sound. Rate controls sweep speed, Depth controls modulation intensity, Feedback controls resonance. Runs sample-by-sample for artefact-free audio. Applied after Chorus in the per-layer chain.
A per-layer phaser uses cascaded all-pass filter stages to create notch sweeps through the spectrum. Center Hz sets the sweep range, Stages controls the number of notches (more stages = deeper effect), Feedback adds resonance. Applied after Flanger in the per-layer chain.
Layer parameters are organised into four sub-tabs: Synth (oscillator type and tuning), Filter (filter type + LFO), Space (quadrant, trajectory, elevation), and FX (chorus → flanger → phaser, distortion). Global processing lives in the Global FX card below the layers, ordered by signal chain: Reverb → Shimmer → Earth & Air → Binaural.
Per-layer signal chain: Synthesis → Filter → Distortion → Panner → Chorus → Flanger → Phaser
Global chain: DC Block → Saturation → Reverb → Shimmer → Earth & Air → Master EQ/Comp → Limiter → Binaural
A master soft saturation stage using 4× oversampled tanh waveshaping. Running internally at 4× the output sample rate eliminates aliasing artefacts on harmonically rich material. Adds analog tape-like warmth and gently compresses peaks. At low values it's transparent; higher values add harmonic richness and density.
An 8-line Feedback Delay Network with Hadamard mixing matrix, per-line damping, and stereo decorrelation. Choose from algorithmic spaces (cathedral, cave, hall, chamber, plate) or switch to IR mode — real impulse responses convolved with the signal for authentic acoustic spaces. The reverb glues layers together into a unified acoustic space.
A global pitch-shifted feedback tail applied after the reverb. The reverb output is pitch-shifted (by a selectable interval — octave up, fifth, fourth, etc.), then fed back into the reverb input, creating an ethereal upward bloom. Feedback controls how long the tail sustains. Works best with reverb enabled.
Optional binaural entrainment creates a perceived beat frequency by slightly detuning left/right channels. Frequencies correspond to brainwave bands: Delta (0.5–4 Hz, sleep), Theta (4–8 Hz, meditation), Alpha (8–13 Hz, focus), Beta (13–30 Hz, alertness). Requires headphones.
Earth adds sub-bass tectonic rumble (10–40 Hz) — felt more than heard. Air adds high-frequency breath and wind turbulence. Together they extend the frequency range beyond what the layers provide, grounding the drone in physical space.
Any global or per-layer parameter can evolve over the duration of a render or stream. Open the Automation card and enable any parameter with the toggle. Each row shows a compact inline breakpoint editor — up to three nodes, each with a timing position (t%), a value, and a curve shape.
Click the shape label between nodes to cycle through lin (linear), exp (exponential), and S (S-curve). + mid inserts a midpoint at the largest gap; − mid removes it. Values before the first node and after the last node are held constant.
Five global templates — Journey, Arc, Breathe, Meditate, Sunrise — appear as quick-set pills at the top of the card. One click wires up a coherent multi-parameter automation so you don't have to start from scratch. Use ✕ clear all to reset.
Automation only runs when a duration is set (Render or timed Stream). It has no effect in open-ended infinite playback.
Enable JI mode in the Synth tab to switch from 12-TET layer roots to exact rational-fraction tuning. All layer frequencies are derived from a single tonic via pure intervals (e.g. 3/2 for a perfect fifth, 5/4 for a major third), so intervals between layers beat at zero — the defining quality of sustained sacred drone music.
A small ● dot in the layer header confirms JI is active on that layer. Existing presets with decimal ratios load without change.
Preview streams audio in real-time via WebSocket — tweak parameters and hear changes instantly. Render computes the full duration at high quality for export. Use the seed to reproduce exact results, or leave it random for variation.
The Generator creates random presets biased by mood. Choose which synthesis types to include — FM and/or Subtractive — then click Generate. Mutate takes the current preset and introduces controlled variation (use the Amount slider to set how wild).
Presets are stored as YAML files — human-readable, version-controllable, and shareable. Use Save/Save As to create your own library.
Created by Matteo Bassi — github.com/bassimatte/mantice
Download Mantice and run it entirely on your machine — no internet required after cloning.
# Clone the repository git clone https://github.com/bassimatte/mantice.git cd mantice # Install Python dependencies pip install -r requirements.txt
Requires Python 3.10+ and pip. Works on Windows, macOS, and Linux. No GPU needed.
# Start the server and open browser python main.py --gui # Or start server only python -m engine.web_server # → http://127.0.0.1:8432
# Render all presets to WAV (default 60s each) python main.py # Render a specific preset python main.py --name "Breathing Cathedral" # Custom duration (seconds) python main.py --name "Om" --duration 300 # Export as FLAC or OGG python main.py --name "Solar Choir" --format flac # Set a seed for reproducible output python main.py --name "Gong Bath" --seed 42 # Generate a random preset and render it python main.py --generate # Generate with a mood bias python main.py --generate --mood dark # Mutate an existing preset python main.py --mutate "Breathing Cathedral" --amount 0.3 # List all available presets python main.py --list
# Preview a preset through speakers python main.py --preview --name "Cavern of Echoes" # Infinite drone (Ctrl+C to stop) python main.py --preview --infinite
# Render all presets (5 min, 24-bit, 48kHz, normalized) python batch_render_freesound.py # Regenerate metadata XLSX only (skip rendering) python batch_render_freesound.py --metadata-only
Output goes to exports/freesound/
Apply parameter automation curves to any preset:
# Available: journey, arc, breathe, meditate, sunrise, wander, trance, shimmer, sustain, drift, pulse python main.py --name "Om" --auto-template journey --duration 300 python main.py --name "Crystal Bowl" --auto-template breathe --hires python main.py --name "Simple Drone" --auto-template sustain --duration 600
journey: Fade-in, filter opens, reverb builds, binaural drifts alpha→delta
arc: Sweeping rise and fall, full frequency journey
breathe: Gentle pulsing, in-out cycles
meditate: Ultra-slow drift, minimal movement
sustain: Pure static drone, no automation (La Monte Young style)
drift: Ultra-slow filter evolution (barely perceptible)
pulse: Slow breathing envelope (classic drone technique)
Render multi-preset sequences with auto-selected presets and timed crossfades:
# Available: drift, flow, pulse, ceremony, dawn, shimmer python main.py --journey-template drift --duration 600 --hires python main.py --journey-template ceremony --format flac --seed 42
drift: 30s holds, 12s morphs — very slow evolution (forest/nature)
flow: 15s holds, 6s morphs — smooth pingpong (singing bowls)
pulse: 8s holds, 2s morphs — rhythmic cycling (drone/bass)
ceremony: 60s holds, 20s morphs — monumental pace (sacred)
dawn: 20s holds, 8s morphs — one-shot journey (light/celestial)
shimmer: 4s holds, 1s morphs — fast shifting (bright/crystal)
All audio is generated on CPU via NumPy/SciPy — typical render time is ~40s per 5-minute file.
| Setting | Range | Default | Description |
|---|---|---|---|
| Duration | 1–3600 s | 60 | Total audio length |
| Saturation | 0.0–1.0 | 0.3 | Master soft saturation — normalized tanh waveshaping for tape-like warmth |
| Seed | any integer | random | Reproducible output |
| Setting | Range | Default | Description |
|---|---|---|---|
| Root Frequency | 20–8000 Hz | 110 | Fundamental frequency of the layer |
| Voices | 1–12 | 8 | Number of detuned oscillator copies |
| Ratios | floats | [1.0] | Frequency multipliers relative to root |
| FM Index | 0.0–5.0 | 0.1 | FM modulation depth (higher = more harmonics) |
| Setting | Range | Default | Description |
|---|---|---|---|
| Waveform | saw / square / triangle | saw | Oscillator waveform shape |
| Detune | 0–50 cents | 8 | Spread between the two detuned oscillator pairs — wider = thicker beating |
| Sub Mix | 0.0–1.0 | 0.3 | Level of the sub-oscillator (one octave below root) — adds low-end weight |
Subtractive layers produce richer bass and lead textures than FM. Combine with a LP filter + slow LFO for a classic Reese bass effect.
| Setting | Range | Default | Description |
|---|---|---|---|
| Type | off / LP / HP / BP / Comb / Formant | off | Filter type |
| Cutoff | 20–20000 Hz | 2000 | Filter cutoff (LP/HP/BP); comb delay frequency (Comb) |
| Resonance / Feedback / Strength | 0.1–8 | 1.0 | Q (LP/HP/BP); feedback gain 0–0.97 (Comb); wet mix 0–1 (Formant) |
| Vowel | A / E / I / O / U | A | Vowel shape — selects F1/F2/F3 formant frequencies (Formant only) |
| LFO Rate | 0.01–5 Hz | 0.1 | Cutoff modulation speed (LP/HP/BP only) |
| LFO Depth | 0.0–1.0 | 0.0 | Modulation amount — 0 = off (LP/HP/BP only) |
| LFO Shape | sine / triangle / square | sine | LFO waveform (LP/HP/BP only) |
Comb: feedforward FIR comb — metallic ringing and spectral combing. Formant: 3-band vowel resonance (A=800/1200/2500, E=400/2000/2800, I=270/2300/3000, O=570/850/2500, U=380/950/2200 Hz). Filter is applied after synthesis, before chorus/flanger/phaser on all layer types.
| Setting | Range | Default | Description |
|---|---|---|---|
| Drive | 0.0–5.0 | 0.0 (off) | Waveshaping intensity — 0 bypasses the stage |
| Type | soft / hard | soft | Soft = tanh (warm, analog-like); Hard = hard clip (aggressive) |
Applied after the filter stage. Adds harmonic saturation; at high drive values creates heavy distortion. Keep Drive below 1.0 for subtle warmth.
| Setting | Range | Default | Description |
|---|---|---|---|
| Harmonics | 1–16 | 4 | Number of overtone partials per voice |
| Harmonic Decay | 0.0–1.0 | 0.7 | Amplitude decay per harmonic (0.7 = each partial 70% of previous) |
| Setting | Range | Default | Description |
|---|---|---|---|
| Noise Amount | 0.0–1.0 | 0.0 | Noise mixed into the layer signal |
| Noise Color | white / pink / brown | pink | White=flat, Pink=1/f (natural), Brown=1/f² (rumble) |
| Setting | Range | Default | Description |
|---|---|---|---|
| Volume | -60 to +6 dB | 0 dB | Layer gain in the master mix (replaces old Mix + Loudness controls) |
| Drift | 0.0–0.1 | 0.01 | Pitch drift for organic beating between voices |
| Setting | Range | Default | Description |
|---|---|---|---|
| Spread | 0–2 | 1.0 | Stereo field width: 0=mono, 1=default π/8–3π/8 arc, 2=full L/R |
| Blend | 0–1 | 1.0 | Voice amplitude taper: 1=all voices equal, 0=centre dominant, edges silent |
| Setting | Range | Default | Description |
|---|---|---|---|
| Pan | -1.0 (L) – 0 (C) – +1.0 (R) | 0 | Precise stereo placement; overrides Quadrant when non-zero |
| Width | 0–2 | 1 | Stereo spread via M/S: 0=mono, 1=normal, 2=extra-wide |
| Quadrant | center, front_left, front_right, rear_left, rear_right | center | Coarse starting stereo position (overridden by Pan) |
| Trajectory X/Y | none, drift, orbit, bounce, random | none | Motion pattern |
| Speed | 0.0–1.0 | 0.01 | Movement speed |
| Setting | Range | Default | Description |
|---|---|---|---|
| Elevation | -90° to +90° | 0 | Vertical angle (negative=below, positive=above) |
| Motion | static, rise, fall, float, breathe | static | Vertical movement pattern |
| Speed | 0.0–1.0 | 0.1 | Elevation motion speed |
| Range | 0–180° | 60 | Sweep range for motion |
Uses HRTF-like filtering: 800 Hz Butterworth crossover. High elevation boosts highs/cuts lows. Low elevation does the opposite.
| Setting | Range | Default | Description |
|---|---|---|---|
| Mix | 0.0–1.0 | 0.0 (off) | Chorus wet/dry balance |
| Rate | 0.1–5.0 Hz | 0.5 | LFO speed (slow sway → vibrato) |
| Depth | 1–20 ms | 5 ms | Delay modulation depth |
| Voices | 1–4 | 2 | Number of chorus copies |
Adds width and shimmer by creating modulated delay copies. Best for thin layers that need extra richness.
| Setting | Range | Default | Description |
|---|---|---|---|
| Wet | 0.0–1.0 | 0.0 (off) | Flanger wet/dry mix — 0 bypasses the stage |
| Rate | 0.01–2.0 Hz | 0.25 | LFO speed — slow rates for jet sweep, faster for vibrato |
| Depth | 0.0–1.0 | 0.5 | Modulation depth — controls delay sweep range |
| Feedback | 0.0–0.95 | 0.4 | Comb resonance — higher values = more metallic ringing |
Runs sample-by-sample (not chunk-wise) for artefact-free modulation. Applied after Chorus in the per-layer chain.
| Setting | Range | Default | Description |
|---|---|---|---|
| Wet | 0.0–1.0 | 0.0 (off) | Phaser wet/dry mix — 0 bypasses the stage |
| Rate | 0.01–4.0 Hz | 0.5 | LFO speed for notch sweep |
| Depth | 0.0–1.0 | 0.7 | Sweep depth — how far the notches move |
| Center Hz | 100–4000 Hz | 800 | Center frequency of the notch sweep |
| Feedback | −0.95–+0.95 | 0.0 | Resonance — positive brightens, negative darkens the notches |
| Stages | 2–12 (even) | 4 | Number of all-pass stages — more stages = more notches, deeper effect |
Cascaded all-pass filter stages create phase notches that sweep through the spectrum. Applied after Flanger in the per-layer chain.
| Setting | Range | Default | Description |
|---|---|---|---|
| Source | 18 CC0 samples | Singing Bowl | Audio file to use as grain source (Sacred, Nature, Earth, Atmosphere) |
| Grain Size | 20–200 ms | 80 | Duration of each grain (short=glitchy, long=smooth) |
| Density | 1–50 /sec | 15 | Grains per second (sparse=pointillistic, dense=continuous) |
| Pitch Spread | 0–2 semitones | 0.3 | Random pitch variation per grain |
| Position | 0–1 | 0.5 | Center read position in source file |
| Scatter | 0–1 | 0.5 | Randomness of read position |
| Envelope | hann / triangle | hann | Grain window shape |
Granular layers extract tiny overlapping slices from real audio samples, creating evolving textures impossible with pure synthesis.
| Setting | Range | Default | Description |
|---|---|---|---|
| Space | cathedral, chamber, hall, cave, plate | cathedral | Reverb character |
| Mix | 0.0–1.0 | 0.3 | Dry/wet balance |
| Decay Trim | 0.0–2.0 | 1.0 | Multiplier on tail length |
8-line Feedback Delay Network with Hadamard mixing, per-line damping, stereo decorrelation.
| Setting | Range | Default | Description |
|---|---|---|---|
| Wet | 0.0–1.0 | 0.0 (off) | Shimmer mix — 0 bypasses entirely |
| Pitch | −12, +5, +7, +12, +19, +24 semitones | +12 (Octave Up) | Pitch shift applied to the feedback tail |
| Feedback | 0.0–0.95 | 0.5 | How long the shimmer tail sustains — higher = longer bloom |
Pitch-shifted feedback tail fed after reverb — creates an ethereal upward bloom. Works best with Reverb enabled. Applied in the global chain after Reverb, before Earth & Air.
| Setting | Range | Default | Description |
|---|---|---|---|
| Method | detune / carrier | detune | Detune splits voices L/R; Carrier adds a sine pair |
| Beat Hz | 0.5–40 | 6.0 | Perceived beat frequency |
| Carrier Hz | 50–500 | 200 | Base frequency (carrier mode only) |
Delta 0.5–4 Hz (sleep) · Theta 4–8 Hz (meditation) · Alpha 8–13 Hz (focus) · Beta 13–30 Hz (alert)
| Setting | Range | Default | Description |
|---|---|---|---|
| Earth: Tectonic Freq | 10–40 Hz | 18 | Sub-bass rumble center frequency |
| Earth: Pressure | 0.0–1.0 | 0.4 | Earth intensity |
| Air: Intensity | 0.0–1.0 | 0.12 | High-frequency breath/wind |
| Air: Turbulence | 0.0–0.2 | 0.04 | High-freq chaos amount |
| Setting | Range | Default | Description |
|---|---|---|---|
| Low Cut | 20–400 Hz | 20 | High-pass cut-off — removes sub-rumble below this frequency |
| Bass Gain | −12–+12 dB | 0 | Low-shelf boost/cut around Bass Freq |
| Bass Freq | 40–500 Hz | 100 | Low-shelf transition point (visible when Bass ≠ 0) |
| Lo Mid Gain | −12–+12 dB | 0 | Bell boost/cut in the low-mid range |
| Lo Mid Freq | 100–1000 Hz | 250 | Bell centre frequency (visible when Lo Mid ≠ 0) |
| Lo Mid Q | 0.3–5.0 | 1.0 | Bell width — higher Q = narrower, more surgical (visible when Lo Mid ≠ 0) |
| Hi Mid Gain | −12–+12 dB | 0 | Bell boost/cut in the high-mid range |
| Hi Mid Freq | 500–8000 Hz | 2500 | Bell centre frequency (visible when Hi Mid ≠ 0) |
| Hi Mid Q | 0.3–5.0 | 1.0 | Bell width (visible when Hi Mid ≠ 0) |
| Air Gain | −12–+12 dB | 0 | High-shelf boost/cut for presence and sparkle |
| Air Freq | 2000–16000 Hz | 10000 | High-shelf transition point (visible when Air ≠ 0) |
5-band master EQ. Bass and Air are shelving filters (±6 dB/oct). Lo Mid and Hi Mid are constant-Q peaking (bell) filters — same formulas used in professional DAW EQs (Audio EQ Cookbook). Freq and Q sub-controls are hidden when a band's gain is at 0 to keep the UI clean. Filters run in series: Low Cut → Bass → Lo Mid → Hi Mid → Air.
| Setting | Range | Default | Description |
|---|---|---|---|
| Threshold | -40–0 dB | 0 | Level above which compression begins |
| Ratio | 1–20 | 2.0 | Compression ratio (e.g. 4:1) |
| Attack | 1–500 ms | 50 | Time to reach full compression |
| Release | 10–2000 ms | 200 | Time to recover after signal drops |
| Knee | 0–12 dB | 0 | Soft-knee width for gradual onset |
| Makeup Gain | -6–12 dB | 0 | Output gain after compression |
Feed-forward peak compressor on the master bus. Use a soft knee (4–8 dB) for transparent limiting; fast attack/slow release for pumping effects.
| Key | Action |
|---|---|
| A | Start/stop playback |
| S | Stop all audio |
| R | Render full audio (offline) |
| Key | Action |
|---|---|
| 1–5 | Switch to layer 1–5 |
| Key | Action |
|---|---|
| Ctrl+S | Save preset (overwrite) |
| Ctrl+Z | Undo parameter change |
| Ctrl+Shift+Z | Redo parameter change |
| Key | Action |
|---|---|
| Ctrl + / Ctrl - | Zoom in / out |
| Ctrl 0 | Reset zoom to 110% |
| Tip | Description |
|---|---|
| 🔒 Lock seed | Click the lock icon next to seed to get reproducible results across previews |
| 📁 File menu | Click "File ▾" at the bottom of the sidebar for Save, Save As, Restore, Export |
| 🎛 Collapse cards | Click any section header (Settings, Binaural, Reverb, Earth&Air) to collapse/expand |
| 📱 Mobile | Use the ☰ hamburger menu on small screens to toggle the sidebar |
Special thanks to CAT-FOX_ALEX on Freesound for ongoing feedback, suggestions and feature ideas that have shaped Mantice.
All samples are licensed Creative Commons 0 (public domain) from freesound.org.
| Sample | Title | Author | Link |
|---|---|---|---|
| Singing Bowl | E flat Tibetan singing bowl struck | mttvn | #535950 |
| Bowed Glass | Wine Glass Resonances by Violin Bow | robin.kaf | #711891 |
| Gong | Gong Drone.wav | jdagenet | #395422 |
| Metal Resonance | Closing large metal door-003 | AudioPapkin | #814881 |
| Wind | Autumn leaves falling on forest floor | Mjeno | #405136 |
| Water Waves | Waves close up | skrafft | #681374 |
| Water Drops | Quarry tunnel ambience – large splash | ecfike | #476318 |
| Rock Scrape | Low Stone Rubbing – Deep Rock Scrape | NikoletB | #846434 |
| Gravel | Walking on leaves (Brezzo di Bedero) | IlMotografo | #679104 |
| Fire Crackle | Fire Crackling | StevenMyat_ | #676385 |
| Rain | dribbling rain (snow melt from roof) | pillonoise | #329576 |
| Leaf Rustle | Spooky leaves (but looped) | happygummy | #581234 |
| Bubbles | bubbles.deep.loop.ogg | xUMR | #478653 |
| Sub Rumble | machination-dry.wav | newagesoup | #338869 |
| Stick Crack | Twigs Breaking | Elements-Library | #683793 |
| Gears | Stripped gears in VAV box | itickets | #490919 |
| Ice | Ice Cracking | northern87 | #369982 |
Loading presets...