|
There is a predefined set of generic functions with methods for all musical classes. They can be used to apply transformations to musical instances (e.g. transposition, inversion) or simply to play or visualize them. 2.3 Music editorsOpenMusic provides special editors for musical instances. We use the paradigm Model-View-Controller (E. Gamma, 1994), where the model is the musical instance, the view is its representation on the screen as a score and the controller is an user interface allowing to change slot values. Figure 5 shows the editor for an instance of the class polyphony (extract of the piece Harawi by the French composer Olivier Messiaen).
Musical entities can be built by hand. Editors allow operations like addition, delete, copy, paste, etc., for all structures in the score (e.g. notes, chords, measures, voices). Another possibility consists in creating musical structures by using computing techniques. For this purpose, we need to define a level of description between internal and graphical representations. We propose the representation of rhythmic structures as rhythmic trees. A Rhythmic Tree (RT) is defined as a pair (D S) where D is an integer ratio (¿ 0) and S is a list of n elements. Each element in S can be either an integer or a RT. For a given RT (D S), D expresses a duration and S defines a group of proportions of D. For instance, by taking as unity the quarter note, for RT = (1 (1 1 1 1)) we obtain the following rhythm:
RTs allow us to represent, in an homogenous way, different types of musical objects. Polyphonies, voices, measures groups, etc. are expressed as RTs. When the value D is at the measure level, we express it in whole note units. For example, the RT for the next rhythm will be (3/4 (1 1 1)). |