{{ keyName(i-1) }}
Temperament


Options




Debug

Enhanced Edition - Where Mathematics Meets Music

This enhanced version extends the original with revolutionary features that bridge the ancient wisdom of mathematical harmony with modern cyber-age technology:

🎵 What We've Added:

🎹 The Magic of Direct Connection

Simply plug in your USB MIDI keyboard and watch mathematics come alive through your fingertips! No drivers, no software installations - just pure mathematical harmony flowing from ancient Greek theory through your keyboard into the cyber realm of WebGL visualization.

✨ The Beauty of Pythagorean Perfection

In the cyber era, we can finally experience what Pythagoras only theorized: the perfect mathematical relationships that create harmony. The 3:2 ratio of the perfect fifth isn't just a number - it's a gateway to understanding how the universe structures beauty itself. When you play a perfect fifth in Pythagorean tuning, you're not just making music; you're participating in the same mathematical principles that govern planetary orbits, flower petals, and the spiral of galaxies.

Watch as the Lissajous curves freeze into perfect, unchanging geometric forms when you play pure mathematical intervals. This is mathematics made audible, geometry made visible, and ancient wisdom made interactive in our connected digital age.

Description

This is a visualization tool for music temperament. The complex shapes that appear with sounds on the black canvas are called Lissajous curve. This curve represents frequency ratios between notes that compose the chord. Classical temperaments (like just-intonation temperament) uses integer ratios for many intervals. This means that the Lissajous curves doesn't move in many chords for the classical temperaments, unlike the modern temperament (equal temperament), which uses an irrational number (2^(1/12)) for the interval ratios.

In this tool, the single sound wave of each note is alternately accumulated into Lissajous x and y sound wave streams in the order you play. The shape represents most recent (1024 / sampling_rate (= 44100 in most case)) [sec] sound wave.

This work is inspired by this video originated(?) from Justonic Tuning Inc products. I don't have the product, so I guessed how it works and emulated it. (It's unbelievable that the instructions of the video seems to be using the real sounds from the microphone. How is it possible to extract frequencies with such accuracy? Someone tell me.)

Features

Q&A

Used technologies

Source codes (GitHub) Any suggestions and issues are welcome.

Future works

Contacts