This is a demo of AudioContext.createOscillator()
“The createOscillator() method of the AudioContext interface creates an OscillatorNode, a source representing a periodic waveform. It basically generates a constant tone.”
Source: Violent Theremin
And here is a keyboard made in a similar way from 2013
I was not able to make anything good using my mouse, but the shading and texture of the paint is remarkably realistic in some places. It’s always fascinating when someone is able to do something in a web browser that would have been impressive as a desktop app just 10 years ago.