Orme.04 a jam session featuring a computer as an improvising musician
Dott. D. Morelli, M°.
Orme.04 is a musical performance featuring the computer as a percussionist and as an organist. For this purpose a set of intelligent agents have been implemented to interact realtime with human musicians in the context of an improvisation.
The virtual band is composed of two percussionists (one human and one virtual), an organist (virtual) and a saxophone player (human). The virtual musicians listen to the rhythms and melodies played by human musicians through microphones and the human musicians listen to the rhythms proposed by the virtual percussionist and see the chords sequences decided by the virtual organist on a computer monitor.
The improvisation has no limited duration neither has predetermined musical patterns (rhythms, melodies, chords sequences, global form).
The virtual musicians are part of a larger project developed by Davide Morelli  and David Plans Casal  : "Frank: an Open Source framework for evolutionary music composition", a set of puredata [3-4] externals initially implementing Todd & Werner's co-evolutionary methods  using Genetic Algorithms and at the moment exploring the possibilities given by the usage of graphs to represent musical patterns.
2.1 The virtual organist
This agent is capable of learning which chords sequences I played most fo the times and which I played rarely. After a long enough training session I can ask the agent to build chords sequences in the same style I previously played. It is capable of answering to questions like: "we are in C major tonality, D minor chord, where did I usually go from here?" or even "build a chord sequence of 4 steps starting from G major 7th in C major tonality going to A minor using rarely used chords transitions".
Using an oriented graph in which each node is a chord and each arc is a transition between two chords we can express the probability of each chord transition in a given style. Moreover, choosing relative chord names instead of absolute names (relative to a main tone), we can apply the same rules to each tonality we may want to modulate to.
2.2 The virtual percussionist
This agent listens to the rhythms played by the human percussionist, parse them performing a quantization (reducing it to 32th and 16th triplet notes), group them in family recognizing similar rhythms. The agent is also capable of proposing variations of previously listened rhythms evolving them without losing the connection with the original rhythm.
This agent, like the previous, has been implemented through a graph dynamically built in realtime representing both the memory of played rhythms and a tool to build new ones.
 “Frankensteinian Methods for Evolutionary Music Composition” Peter M. Todd & Gregory M. Werner, Parallel distributed perception and performance. Cambridge, MA: MIT Press.