Software/Hardware used >


Extract from Seismus, a system for generating interactive music by Professor Chris Hinde

Seismus basically follows the idea of a graph where there are choices depending on some set of inputs, possibly only one, that determine the passage through the components or motifs. The choices are which component to execute out of the choices available. In setting out a graph we are including the possibility that the graph will be a Markov chain whereby the history of the progression through the components is ignored and the next choice of component is independent of the history of the performance. This may be modelled as a petal diagram whereby after each component of the performance is executed the system returns to the same state and then a new choice is made. See Figure 1 (in slide show below) showing a simple petal diagram. Figure 2 shows a more complex performance graph where the choice of performance depends on whatever the previous component was.

The performance graph is still fairly simple, but bear in mind that any component may contain a whole concerto, or merely a note, or less. A component may be anything that affects the performance, including a change of key or tempo. A change of key or tempo may be carried through to the next component and may also affect the whole subsequent performance. Other aspects may include a change of mode, etc.
In computing terms the graph is known as a finite state graph as there are a finite number of states that the graph can be in. There are a limited number of reasonable values that the parameters, key, tempo etc. can take so the graph is still effectively finite, even though the performance may be continuous.

We now refer to the graphs outlined as Nets. Each component, so far, contains a finite performance so the next development is to allow embedding of the Nets as a component in any Net. In particular any Net could have itself as a component. A room may have a “trapdoor” in it leading to an identical room, or in fact an identical performance graph. In computing terms this is now an infinite machine. It isn’t in fact an infinite machine in that it does not have an infinite number of states, but it does have an arbitrarily large number of states. This lifts Seismus into a different category. Importantly it allows more complex structures to be applied to the performance. It would be very straightforward to design performances of ABA form, or any other arrangement.

Typically, by embedding a Net in itself it would be possible to play the first few components, drop down to an identical performance graph, perform the first few components, drop down, etc. The level that the performance would drop to, and therefore the level of nesting that the pieces performed would demonstrate would also be determined, either in advance or using some aspect of the random number stream or the audience participation.

Uncertainty is clearly an important part of the operation of Siesmus, but the uncertainty is delivered from outside the system. Uncertainty and vagueness is part of the presentation of concepts and as such is part of the semiotics existing between the performance and the audience. Everyday life, and this clearly includes audiences, exhibits uncertain and vague properties. An example of this is the concept of tall, this is an imprecise concept and as such cannot be measured exactly. Height is a precise concept and can be measured. Fast, in terms of the speed of a car is also an imprecise or vague concept, speed and velocity may be measured. Both vague concepts may be compared,  it is quite clear that, of two different people, it is straightforward to ascertain which of the two people is the taller, but we are unable the easily measure the degree of tallness of either of them. Fuzzy sets are designed to reason with vague concepts.

Fuzzy sets are generally used to model vague systems. One of the first systems to practically use Fuzzy logic was a system to control a cement cooking plant. Since then they have been used in cameras and various other control systems. Given we can model vague concepts and derive controllers it is clearly possible to use fuzzy systems to control a performance. The outside world, or the audience in our case, can be assessed using vague terms, passed through a fuzzy control system, defuzzified and then the values obtained used to decide on the properties of the subsequent performance. A slightly fanciful proposition might be to decide if the mood in the room is either sad or exuberant. This could then be used to choose the mode of the subsequent performance, either in a minor key or major. The mood in the room is a vague concept, it may be assessed by the level and tone of the conversation in the room, the degree of movement or many other aspects that could codified using fuzzy sets.

A useful area of research would be to investigate these aspects and examine whether a useful performance can be generated. In this endeavour we would be using humans to express their preferences in vague terms and observe how the performance can be delivered. The use of human terms based on vague concepts has been used productively in control systems, it shows promise in being able to capture the semiotics between a performance and the audience more accurately, but less precisely than is currently used.

Seimus, Figure 1
Seimus, Figure 2
Screen shot of Seismus
Screen shot of Seismus