The Bell and the Silence: Replicating Arvo Pärt's Tintinnabuli in Code
The Bell and the Silence
Around my university years, a video of a composer I didn't know came across my screen.
Seeing someone so deeply passionate and inspired by music was profound. Sitting at that piano playing Für Alina, each single note he struck carried so much intention. You could feel the passion and presence in every note. It is piece that, to this day, I still listen from time to time.
He said something during that conversation that stayed with me forever:
"a blade of grass has the status of a flower"
It brought me straight back to my childhood experience.
Learning the Rules
As a child, I studied at the classical music conservatory for ten years.
It was an environment heavily focused on classical rigor. You learn about the different periods in music history, where in many moments felt strictly structured. There was an era of showcase, of wonders, of grand maestros, of overcomplications but always strictly following the rules. Never parallel octaves (8–8) or parallel fifths (5–5) together... certain intervals were even demonized depending on the moment in history.
I remember how improvisation on the piano felt completely different.
On my free time, with no teachers and no sheet music, I was just exploring. Not following any rule. I let my fingers follow peace. My mechanical technique was (and is) pretty bad, but every sound had a soul. I felt the sound moving with me, held by the long, rich resonance of the pedal.
Years later, listening to Arvo Pärt felt immediately familiar to that experience I had at the piano.
Post-classical music feels closer to my soul. Artists like Arvo Pärt, Ólafur Arnalds, Max Richter, Nils Frahm, Luke Howard, Hania Rani, Jóhann Jóhannsson... evoke that same stillness.
The Software Exploration
With my background in software, I became deeply curious about whether I could replicate the Tintinnabuli technique in code.
Tintinnabuli is, after all, an algorithm, as described from Wikipedia and Grokipedia:
- An M-Voice (Melodic Voice) that steps conjunctly through a modal scale.
- A T-Voice (Tintinnabular Voice) mathematically locked to the three notes of the tonic triad.
Tintinnabuli Algorithm:
- M-Voice: Stepwise diatonic exploration (The Human wanderer).
- T-Voice: Fixed triadic invariance (The Bell, ringing in the distance).
- Synthesis: Two voices forming an indivisible whole.
Of course, an algorithm does not have a human soul behind it to place weight, warmth, and conscious intention into each key strike. But I wanted to see how close we could get.
After experimenting with it for some time, I wanted to publish it so anyone can play with it.
It may help you explore new musical concepts, find a quiet moment to relax, or even dislike it. At the very least, I hope it makes you feel something you haven't experienced before.
Experience the Tintinnabuli Engine
Explore the live generative engine: cycle through historic Pärt tonalities (Für Alina, Spiegel im Spiegel, Fratres), play directly on the interactive canvas, and shape cathedral resonance in real time.