No keyframes were used to create this: it’s a MIDI file recorded from my keyboard, stuffed into a mad CHOPs network in Houdini to handle all the timings and animation automatically. Depending on how loud a note is supposed to be, the timings are shifted to match how a player would actually play. Louder notes usually mean the key is hit faster, so the animations have to be slightly shorter. The key releases – how long the animation of each key “returning” to its upper position takes – are based on a number of factors, but mostly weighted toward what the overall frequency of notes is at that point. So slower passages have a more relaxed feel visually. And so on and so on… 😉