← All modules
AvailableInstrument

Gong

A struck gong voice with a late shimmer.

Engine preview

VST3

About

A gong is not a big bell, and it is emphatically not a bar. Two of its most recognisable behaviours are nonlinear, they depend on how hard you hit it, which is why a linear modal bank, the technique behind the Gamelan module here, cannot produce them at any setting. This instrument is built around those two behaviours rather than around a partial table.

The first is bloom. Fletcher and Rossing's account of the tam-tam (and Legge and Fletcher's measurements behind it) describes a strike putting its energy into the low modes, after which tension and shear coupling at the hammered bumps cascade that energy UPWARD into the high modes over hundreds of milliseconds to seconds. The shimmer therefore swells after the attack instead of decaying from it. Because it is a nonlinearity it is amplitude-dependent: a quiet strike barely blooms, and a soft beater blooms hardest of all, because it puts its energy exactly where the cascade can find it.

The second is pitch glide. The 2018 JASA paper on internal resonances in Chinese gongs measured what every opera percussionist already knows: a large flat-centred daluo hardens with amplitude, so it enters sharp and sags down as it decays, while the small convex xiaoluo softens, so it enters flat and slides up. The depth scales with how hard you hit, and several modes glide with the fundamental moving most. Motion, Depth and Settle expose the full contour while the selected plate still decides its direction.

The third instrument worth naming is the Balinese gong ageng wadon, whose lowest four partials were measured by Krueger and colleagues at 93.8, 187.5, 281.3 and 375 Hz, near-integer harmonics, unlike any bar in a gamelan, with a two-and-a-half hertz ombak beating between closely spaced hammered modes. That is why it sounds pitched where a tam-tam sounds like weather.

The playable panel uses a Web Audio implementation of the same gong model as the portable restricted-TypeScript engine. Offline renders are checked across the TypeScript reference and compiled browser/plugin lanes; the browser package remains a preview until its persistent realtime voice interface is certified.

System requirements.

The downloadable Gong release supports the hosts and systems listed below.

  • VST3macOS · arm64

    Works in Ableton Live, Reaper, Cubase, Studio One, Bitwig and FL Studio.

Version 0.0.0

Build evidence

Every row below is a recorded build row or the recorded absence of one. Nothing here is inferred from what this module is meant to support.

Module
music.codex.gong v0.0.0
Built at
Closure hash
1535d0fe5922…
Toolchain
  • scriptc 64acce1ae3b8…
  • moduleToolchainDist c621ffab721d…
  • pluginShellKitRuntime bca003784692…
  • faceShellGeneration 8533207ab81f…
  • uiPreservation cd28dbd7e3d6…
  • packagerVersion 3
Build result and download for each format
FormatResultDownload
Browser package (JS)
Builtweb

bundle sha256 f09e8e8dd979… · 842 KB

Built, but no downloadable archive was recorded.
Browser package (WASM)
Builtweb

bundle sha256 75bf7046028b… · 2.0 MB

Built, but no downloadable archive was recorded.
VST3
Builtdarwin-arm64Steinberg validator + VST3 host render: passed

bundle sha256 1a45a74f9792… · 2.2 MB

CodexGong-vst3-darwin-arm64.zip

archive sha256 8fa610d4fcdd… · 2.2 MB · darwin-arm64

Audio UnitNot built

no recorded artifact row for au; native-lane-report.json is absent or records no au row for this module

Not built for macOS
CLAPNot built

no recorded artifact row for clap; native-lane-report.json is absent or records no clap row for this module

Not built for macOS, Windows or Linux
Standalone appNot built

no recorded artifact row for standalone; native-lane-report.json is absent or records no standalone row for this module

Not built for macOS, Windows or Linux

Parity

browser-js = browser-wasm = vst3 qualified against their own recorded digests. Not recorded: au, clap, standalone.

Presets

Start from a named sound, then adjust the instrument to make it yours.

InitTam-Tam YarnTam-Tam Rim ShimmerWind Gong SplashDaluo TheaterXiaoluo RisingGong Ageng WadonGreat TamTable GongSymphonic SwellMetal Beater Clang

Popular presets for Gong

Open a sound shared by the community, then play it in this module.

Signal graph.

Experimental

Migration fallback: approximated from parameter groups, not a runtime wiring diagram.

How it works.

Each strike starts as a shaped contact-force pulse, not a noise burst. Mallet hardness sets its nominal length, then the played pitch scales it within a 1.5 to 14 millisecond range: a higher note gets a shorter contact so the pulse cannot cancel its own modal excitation. A small filtered roughness residual can still ride on the pulse. The duration and pulse shape set the excitation bandwidth, so a compliant head reaches mostly low modes while a rigid head wakes the whole bank. That force drives an impulse response synthesised for the selected gong, pitch, position and velocity.

Bloom is baked into the IR as an amplitude split. Each mode gets a fraction of its energy marked as arriving late, rising toward zero to one over the bloom time while the mode's own exponential decay runs underneath; the product of a rising and a falling term peaks after the attack, and that peak is the swell. The fraction ramps with position in the mode bank, so the fundamental speaks immediately and the top of the bank arrives last. It is driven by bloom amount times the beater's coupling times velocity SQUARED, which is what makes it a nonlinearity rather than a knob: at a third of full velocity the drive is under a tenth.

Glide is a per-mode exponential detune with a one-over-one-plus-mode falloff, so the fundamental moves most and the body does not sound like a tape-speed bend. Motion scales the recipe behavior, Depth bounds the initial offset, and Settle controls its time course. The renderer integrates that contour to phase, so every affected mode starts sharp or flat and converges on its nominal frequency instead of jumping between pitches.

Because both effects depend on velocity, an IR is only reusable for strikes of similar force, so velocity is quantised into four buckets and the bucket is part of the cache key alongside note, gong, beater, position, size and every timbre parameter. Level still follows continuous velocity, so dynamics are smooth and only timbre steps. Each strike is a one-shot whose open duration grows from 2.5 to 8.5 seconds with velocity, followed by the Tail Fade; voices are capped at six with oldest-first stealing and a nine-second resource cap.

Goes well with.

Preview

Gamelan

Modelled bronze instruments with flexible tuning.

Preview
Preview

Space Mini

Convolution reverb: eight synthesized spaces, twenty-five real cabinets.

PreviewNo build recorded
Preview

OSC Mini

A compact subtractive synth for learning the signal path.

Preview