Information Technology Reference
In-Depth Information
notes or events. Second, there is no concrete evidence that modelling higher-level
dimensions (harmony, pitch contour, etc.) yields interesting musical material, as
these dimensions are correlated to each other in intricate and complex ways, raising
the 'viewpoint problem' that inevitably leads to ad hoc solutions and compromises.
In some sense, the situation is comparable to the multiple inheritance problem in
object-oriented languages (Stein 1992 ): it works well when there is no conflict, but
all the solutions proposed to solve the problem in the general case failed and were
progressively abandoned.
5.4.2 Handling Harmony
There are several ways to consider harmony in a Markovian context. One of them
is to consider harmony as a specific musical dimension, and use it as a viewpoint.
This approach is followed for instance by Conklin and Witten ( 1995 ) or Cont et al.
( 2007 ). As discussed above, simultaneously handling several viewpoints creates
viewpoint interaction problems that do not have general musically meaningful so-
lutions. Furthermore, it introduces unnecessary level of complexity in generation.
In our case, we can observe that chord changes in bebop never occur within a beat
(they usually occur at the measure of half-measure level, sometimes at the beat,
never within a beat). Hence our solution is simply to use chord-specific training
databases, which are selected at each beat according to the underlying chord se-
quence.
More precisely, we use a simple set of chord/scale association rules. Such rules
can easily be found in jazz theory text books, e.g. Aebersold ( 2000 ). For each chord
type appearing in a chord sequence, we select the Markov model which corresponds
to a particular 'scale' (Fig. 5.8 ). Using various substitution rules, it is easy to re-
duce the number of needed scales to a much smaller number than the number of
chords. A drastic reduction is proposed by Martino ( 1994 ) who uses only minor
scales throughout all chord sequences, using clever chord substitutions (e.g. C7 th
chord uses the G minor scale, C altered uses the G# minor , Cmaj7 uses A minor ,
etc.). Although the Martino case is easy to implement (and is available in our reper-
toire of styles) we follow here a more traditional approach, and propose five scales:
major, minor, diminished, seventh and whole tone (for augmented chords). As a
consequence, we only need training data for these five scales, in a single key (C).
The databases for the other keys are simply transposed from the ones in C.
Many variations can be introduced at this level, such as chord substitutions (see
e.g. McLaughlin 2004 ). These can be typically performed at random, or according
to any other parameter (e.g. user controls), and belong naturally to the intentional
score. An important aspect of this method is that it is independent of all other pa-
rameters of the system, and notably does not necessitate an explicit memory of the
past.
Here again, our solution is analogous to the way humans improvisers practice
and improvise, as illustrated by the huge literature proposing training scales and
patterns.
Search WWH ::




Custom Search