aleatoric midi sequencer
MidiLoops is a midi implementation of Tape Loops. It was made specifically to avoid working with audio files in Pure Data and instead use an external sampler to load audio without interruptions. MidiLoops is much more flexible than the audio approach, since each module can trigger several notes.
Currently this is one of my main tools for soundscape performance.
What is it good for?
For ambient soundscapes as well as for thoughtful melodic passages. Particularly good to trigger sound effects and thus create a variable, naturally sounding landscape of ambience.
What does it do?
The idea is quite simple - you give it a time range, within which it decides a random moment to trigger a note. When the note finished playing (which is determined by is duration), MidiLoops once more chooses a random moment within the defined period to trigger the note again. So what is accomplished is a non-regular sequence of notes.
Additionally, each module offers 5 different notes to trigger, as well as a quick switch between scales.
By combining several modules triggering different sounds at different rates, complex soundscapes and melodic lines can be generated. The signature feature of this particular method of generation is that it is capable of sounding natural as opposed to typical generated note sequences which usually give an impression of being generated rather than composed/played.
How does it work?
MidiLoops consists of 8 modules. It has several controls on the top which control all the modules, but most of the work is done within each module. Let's look at one closely.
midi ch - set midi channel
>  - play/stop. Note that pressing "stop" will not stop the timer, so if it is already in motion, it will trigger one more note. To stop instantly, see Mute below
chosen/range - "range" is the time range in seconds within which MidiLoops has to choose a random moment to trigger the next note. "chosen" is the actual number of seconds it has chosen
vol - midi note volume (0-127)
vrange/const - "vrange" is the volume range within which MidiLoops has to choose a random value. "const" is the amount of volume that will be added to the random value. Put "const" to 0 if you want absolutely random volumes.
rndvol switch - switches random volume mode on/off
duration - this is the duration of the note in miliseconds
max - this is the maximum note duration, which affects the duration slider range. Set by default to 5 sec, you can make it as high as 100 sec. Useful if triggering longer audio files and if you need to make sure they finish playing before the next note is triggered
warning: the global duration range is always 0 - 5 secs and is intended to be used when triggering instruments (synths) rather than long audio loops
purple/orange buttons - purple buttons on the top of the notes add 1 to the note value, ones on the bottom substract 1. Orange butons do the same but add and substract 12 (an octave). Buttons to the side of the notes trigger all five notes at once. Purple button to the side of the notes sets all notes to the value of the first note
checkbox - mute/unmute switch. If unchecked - module will instantly stop transmitting notes. Useful if you want to manually change notes with a mouse without playing them
notes - this shows which note is currently chosen along with its number
scales - predefined note numbers for easier use. Remember that Amin, for instance, is same as Cmaj, so there are really 10 scales here - 5 minor and 5 major.