pl eng Paweł Adamowicz Website/Portfolio
Home About Contact


2D 3D Movies


MIDI Driver Tutorials

MIDI Driver

MIDI Driver – Blender's Python script aiding the creation of music driven animations.


Blender with MIDI Driver running Exemplary usage of MIDI Driver in Blender

YouTube playlist with original testing animations (see also in movies).


What is MIDI Driver?

MIDI Driver is an extension of Blender environment which aim is to help the animator in creation of complex music-driven animations.

So what are those music-driven animations?

Music-driven animations consist of actions which are strictly dependent on the selected notes. The time of their occurrence resembles the timing of the respective notes. The most intuitive case of such animation simply depicts a play on the instrument. Probably the most famous example of music-driven animation is Animusic.

How does it work?

Creating a music-driven animation by hand is practically impossible. The need to precisely key the animation with simultaneous repetitive listening to the same soundtrack may discourage event the most patient animators. However, one can automatize this process by incorporating a music stored as a sequence of events (ex. MIDI). Each event can have one elementary animation assigned (ex. Character is pressing a key when note C#1 starts). The synchronization is to playback this animation each time the respective event occurs. Instead of playback, it can store the set of animations and their playback times in the form acceptable by a given animation environment.

What can MIDI Driver do?

MIDI Driver can load and select notes from any MIDI sequence. When selecting notes one can set from which time interval they have to come, what is their pitch, channel and program. Selection criteria can be combined. A simple sequence viewer allows one to manually select the notes.
Selected notes can be related with any animation datablock for Object, Camera, Material, Texture, Light (IPOs) or Armature (Action). The synchronization resolves overlapping notes. It can also correct misshapen IPO profiles in longer pauses.
Additionally, the user can set the animation to be affected with notes velocities and their duration or automate the pause animation insertion.
You can find out more about the usage of the script in its manual.

So what cannot MIDI Driver do?

MIDI Driver will not prepare the source IPO or Action for you. It is you, who have to decide how the animated character will hit the drum, MIDI Driver will only set when it will be played.
MIDI Driver will not assemble the rendered piece with the MIDI sound. You have to do it yourself, either by using Blender's sequencer or other video assembling software. Remember, that you have to use „ordinary” sound file, like *.wav or *.mp3. You can read more about MIDI-to-wav here.


MIDI Driver utilizes (as it name suggests) MIDI sequences as a synchronization data source. It is due to the fact that MIDIs are something like a „digital” musical notation. Therefore, there is no need to perform complex and inaccurate signal processing to determine the notes occurrence. Furthermore, MIDIs are easy to obtain – many authors release them for free and it is quite easy to find sequenced equivalent of a popular tune.

Related resources

Script's manual
Blender 2.49b download
Audacity download (if you want to record your MIDIs to *.wav)
Old and current script thread at

Check out the tutorials section for additional exemplary blend files.