Strike a bell and it does not produce a pitch — it produces a chord that its shape has decided for it. There is a hum an octave below, a prime, a minor third, a fifth, and a nominal two octaves up, each with its own decay time. The bronze is tuned by shaving the inside of the bell a fraction of a millimetre at a time.
The partials of a real bell are not in harmonic ratios. The hum sits near half the nominal, the prime at the nominal, the tierce a minor third above, the quint a fifth above, and the nominal two octaves up — but each of them is a little sharp or a little flat, and those small errors are what make a bell sound like a bell and not like an organ pipe.
Because the hum decays slowest, a struck bell appears to go flat as it rings: the high partials die away within a second or two, leaving the hum and the prime, and the pitch you hear in the last five seconds is a fifth below the pitch you heard in the first.
A carillon is played from a keyboard, usually by hand on batons connected to ropes and wires, and a good carillonneur can change the tempo of a phrase in real time. Fifty bells is a large instrument; six is a chamber one.
Every bell here is synthesised in the browser: eight partials, each with its own gain and its own exponential decay, summed into one output. Nothing is played back — the sound is generated from the same partial table that lights the bars above it.