My most recent challenge: using midi signals to drive a 3d model of a drummer and drumkit.
For music production I use ardour and hydrogen, synchronized by the jack audio connection server. For this project I set up an audio project for the classic Cheap Trick “Surrender” song and painstakingly created the drum midi track on hydrogen. I had to set more than 20 tempo changes just to keep it reasonably in-sync with the original performance!
The result was a stream of midi signals that were captured to a text file using the very useful kmidimon tool:
The script is a bunch of python code that loads the file with the midi events and then inserts the keyframes for the poses at the right frames on the animation.
The first result shows an awkwardly performing drummer hitting the drums on the right moments. The next steps involve working on more natural poses and dealing with alternate use of both hands for quick sequences. A draft animation of the first seconds into the song can be seen here: