Building the Project

Before you build the Aleator, you need to set up your environment up to use VST .NET. See the project for more details. Be sure to make a copy of Jacobi.Vst.Interop.dll, renaming it <YourPluginName>.dll and placing it wherever you will be referencing your assembly, most likely your DAW's plugins directory (your assembly will be named <YourPluginName>.net.dll). I have been working with Reaper so I have a post-build action that copies my assembly into the Reaper plugins directory, just for convenience. Please let me know if you have problems building.

You will also need to install /Libraries/Sanford/Sanford.Multimedia.dll into your GAC.

You will want to edit the XML so that the Aleator plays the arrangements that you want. You will need to know a bit of music theory to do this - the plugin is a songwriting tool. We have kept these documents separate because the classes they represent were generated using the XSD tool and managing the data this way has helped with development. There are four documents and I will try to explain what the various nodes, values and attributes they represent. We'll go from the top down.

Changing the MIDI Configuration

By default the Aleator is currently configured to output MIDI to channels 1, 4 - 6 and channel 9, as indicated below. The plugin's phrasing techniques provide MIDI suitable for kicks, snares, high hats, bass, rhythm chords and lead melody. Right now, it will also play the occasional rim shot. The default mapping is:

We are using CC messages 14 and 15 on channel 1 to decrease and increase tempo, respectively. Reaper is set up to change the BPM of the current project in increments of 10 each time it receives one of these messages. You can't really do a direct program change in Omnisphere (my main synth) - instead you have to MIDI learn the browser up/down arrows and change multis using the learn if you need to automate that, which I do. That is set up as note 0 (scroll up) and note 127 (scroll down) on the channel 1.

The long story short is that if you want to change how these are being directed, you will need to change noteon/noteoff messageids in AppResources.resx. The comments will tell you which channel ids are associated with which message numbers.

You are now ready to start Aleating. Take a look at the Roadmap to see what changes we're working on.