Once again thanks for comments and useful suggestions.
okchoir: The tempo change is handled - note timing is calculated into milliseconds and can be easily recalculated into frames using current scene FPS settings. Thanks for mentioning velocity, I totally forgot about it. Now, current velocity value is used to scale the Y position of the keyframes to vary the intensity of the action respective to particular note (Marcion - exactly what you asked about).
Chords are quite difficult to handle but can be generated with this script using some tricks (I’ll present it when I find some suitable piece of music)
yoff: The idea here is to use Ipo or Action which defines animation for single occurrence of particular note or set of notes. This way user can define animations consisting of much more than attack and falloff profile. The task of the script is to insert this “elementary” Ipo into “final” Ipo each time the respective note occurs in MIDI file. Duration of the “elementary” Ipo can be of course scaled to the length of the note. Ipo is also shifted so that its selected keyframe falls on the “contact” point of the sound.
Thanks for pointing out the mallet issue - I’ve started resolving it.
cecilff: I try to do my best with the interface. Hope it’ll be comfortable not only for me.
Getting back to the point: actions synchronisation is ready. Now, also the animation of armatures can be synchronised:
The animation was completed in a great rush, just to check if everything works, so it is a little bit messy. Now it’s time to refine the script, add some final improvements and start general testing in a bigger project.
Stay tuned for more MIDI-animations.
Oh, and happy Easter everyone!