See this plugin at work at Staggered Laboratories                                                 


Project Description

The Aleator is a chance music VST .NET plugin that generates randomized MIDI events based on data supplied by the user, and then sends them up to the host. Using a system of random distribution objects and and a bunch of algorithms, the plugin calculates note totals and placement both horizontally and vertically on the virtual staff. It also inserts rests, and is architected in such a way that different methodologies are easily used for phrasing the various instruments.

This plugin is obviously not meant for end users. There are developers who excel at building native VST plugins for the public; the goal here is not to take on that effort. We are trying to explore the possibilities of working in this medium, document that journey and give other developers a springboard to launch from if they are interested in generative or chance MIDI. As such, we will be focusing on the algorithms and techniques used to generate musical phrases and the results we get by altering them. The idea is that you borrow, expand on or get inspired by what you see here and do your own thing with it. Installation and build instructions are on the Documentation page.

After you download the source and install a couple of files in the GAC, would need to edit the set of XML documents in the /Data folder to provide the framework for the Aleator to run on. Otherwise, it will render the XML that is already present. Going down the hierarchy, this is comprised of sets of compositions, progressions and melodies. Melodies aren't specific - they allow you to specify a set of notes (by scale degree) that are available to be played for a certain length of time, designated by quarter note. Likewise, progressions do not specify particular chords (as we don't know the key signature until runtime). They only describe mode, scale degree and length (again by quarter note). Obviously use of the application requires at least a rudimentary understanding of music theory. 

The UI is very basic but now that tempo variation has been added I'll focus on getting all of the existing buttons to work.

I would be remiss if I didn't give a huge shout to obiwanjacobi for the work he's doing over at VST .NET and Leslie Sanford for the C# MIDI Toolkit. Without it, I would have stopped working on this ages ago.

Oh - please email me at if you see something wrong, have questions or do anything interesting related to chance MIDI generation.

Last edited Mar 8, 2014 at 6:24 PM by kil0watt, version 21