I began outlining the model. The general concept I already had in place: each “instrument” would be comprised of an agent modeling system. Then, using data from each model, the instruments would listen and respond to each other.

First thing I wanted to determine was what variables I wanted pulled out of the model. I decided on the following: pitch, volume, reverb, and pan. More could be added later, but I figured this was a good start. The more important bit is the spread of notes. This is a concept I partially borrowed from the Mahadevibot. Essentially, each instrument has a percentage chance to play on each beat, which then is repeated each measure. (The number of beats per measure and tempo are assigned universally). The difficult thing would be to assign pitch, volume, etc. per each note, but that’s not going to be in initial attempt.

The variables assigned per player at the start are: Sociability and Cooperativeness. Sociability is the chance the player will interact with others. Cooperativeness, if high, will cause a player to attempt to fill the same beats as other agents. If low, will cause them to be more likely to fill empty space.

The important step, then, is building a model that works with these variables I want.