EML Synthesizer
Additive synthesis, one complex EML node per partial, given its leaf: Im eml(i·2π·r·f·t, 1) = sin(2π·r·f·t). The sound is computed by evaluating those nodes — which, by Euler’s formula, means sines.
How to read the count. Each sounding partial is one complex EML node: eml(zₙ, 1) = exp(zₙ) − ln 1 = exp(zₙ), which is Euler’s formula once you take its imaginary part. The leaf zₙ is supplied, not built — making i, π and those products from 1 and t would take more nodes, and none are counted here. Im(·), the amplitudes and the sum are ordinary arithmetic, not EML nodes. So the count above reads 1 node given its leaf, not 1 node built from scratch — the ledger’s “EML + projection” accounting. Built entirely from eml, one sine’s cost: at most 243 nodes.
Why the detour through the complex numbers. Over the reals, no finite EML tree equals sin(x). See the boundary →
What you hear. Each node is evaluated as Im eml(z, 1) = eRe z·sin(Im z), with the browser’s own exp and sin — so underneath, what you hear is sines, exactly as Euler’s formula says. That happens at every sample at your device’s audio rate, then the partials are summed, faded in over 5 ms and out over 50 ms, and scaled so the peak sits at −6 dBFS — no setting can clip. The decay lives in the real part of the leaf, so a struck partial costs the same one node as a held one, and the ratio need not be a whole number: that is what lets the bell be inharmonic.