Figure I-10. Four examples of four closed
form or moveable shapes that define major chords for the ukulele. See text for details.
Many Diagrams for One Chord
In music theory a tetrachord is merely a
chord comprised of four different pitch-classes. From other perspectives, however, the notion
of a tetrachord becomes more practical, and possibly more complicated.
One such practical perspective is provided
by the ukulele, which is a small, four-stringed, guitar-like instrument
typically tuned to the notes G4, C4, E4 and A4.
Any chord strummed on the ukulele is a tetrachord because it is produced
by vibrating these four strings.
Learning to play the ukulele involves studying
the finger positions that define various chords. These positions are provided in charts or
books filled with chord diagrams like the examples provided in Figure
I-10. In a chord diagram, the horizontal
lines indicate the positions of the frets on a ukulele’s fret board, and the
vertical lines represent the instrument’s four strings. The black dots in a chord diagram indicate
where, on the fret board, a finger should be pressed on the string to produce a
pitch that is part of the desired chord.
The interacting physical structures of the ukulele
and the human hand place constraints on the note combinations that constitute
playable ukulele chords. It is impossible
to play every conceivable tetrachord on the ukulele. A chord that involves placing the index
finger on the first fret of one string, and the little finger on the 12th
fret of a different string, is a practical impossibility. In other words, in a playable ukulele chord
one’s fingers are not too far apart.
The notes played on different ukulele
strings are not too far apart either. In
terms of tuning, the furthest distance is between the C and the A strings, but
this distance is only a major sixth (9 semitones). The G and the A strings only differ by a
major second (2 semitones).
The relative nearness of fingers in a
playable chord, and the relative nearness of the tunings of ukulele strings, means
that relatively minor changes in finger positions can produce the same chord. This is because the changes in finger
positions invert the chord’s notes. That
is, different fingering positions can produce the same component pitches of a
chord, but on different strings.
The upshot of this is that there is a
many-to-one relationship between fingering patterns and chords. More than one chord diagram can represent the
same ukulele chord. For example, one of
the modern bibles of ukulele chords (Johnson, 2005) provides three different fingerings for each of the 28 chords that
it describes for each musical key, producing a book that consists of 1008
different chord diagrams.
Chord Shapes
How does a budding ukulele player even hope
to learn such an incredible diversity of possible chords? Thankfully there are some fingering patterns that
can be moved up and down the fret board.
These are called closed form chords because their shape is defined by placing
a finger on each of the ukulele’s four strings.
Four examples of such chords are provided in Figure I-10: these are all
closed form chords because each chord diagram contains four fingering dots.
When a closed form chord is moved up or
down the fret board, it causes the same type of chord to be played, but in a
different key. All of the closed form
chord shapes in Figure I-10, for example, create a major chord no matter where
they are formed on the fret board. If
one is formed at one location, it produces the B@ major
chord. The same fingering shifted to a
different position produces the C major chord.
Closed form chords are efficient for learning
the ukulele because once one learns a fingering pattern (e.g. any of the four
patterns in Figure I-10), one has really learned 12 different chords. All the player has to do is learn the name of
the chord produced (e.g. B@ major, C major) at each location that
the same fingering pattern is used.
Of course not all ukulele chords are closed
form. Some are special cases of closed
form chords where the ukulele’s nut (the top of the fret board where the
strings end) takes the place of fingers on some of the strings. The four chord diagrams in Figure I-11
provide examples of such special cases.
These chords are typically learned first, are learned with different
fingerings than the patterns in Figure I-10, and are only later related to the
more general notion of closed form chords.
Still other chord forms are standalone patterns that cannot be moved
along the fret board. As a result, even
learning one kind of chord, such as a major chord, requires acquiring a number
of different chord diagrams.
Nevertheless, focusing on the shapes of the
chord diagram – the relative positions of fingers on each string – provides
efficiency. The Hal Leonard Ukulele Chord Finder (Johnson, 2005) provides at total of 36 different chord diagrams for the major
chords in each musical key. However,
from a player’s perspective, these 36 diagrams can be condensed into only 13
different chord shapes.
Figure I-11. Four special case major chord
shapes. The top fret of each of these
chord diagrams is the first fret of a ukulele; the wide horizontal black line
in each diagram is the ukulele’s nut.
Each of these shapes is a special instance of each of the four general
chord shapes in Figure I-10. See text
for details.
Towards Reverse Chord Finding
Chord dictionaries are organized alphabetically
by the root of the chord, and then by chord type. If you need to find out how to play a
particular chord, then you can quickly look it up by using its name.
Learning to play the ukulele is,
thankfully, more than just poring through the pages of chord dictionaries. A player can explore different fingerings
without knowing the name of the chords being played. On finding one such chord that has a
particularly pleasing sound, there may be keen interest in finding out the
chord’s name. However, chord
dictionaries are not organized by fingering patterns. This problem – known as reverse chord lookup
– does not have an easy book solution.
The reverse chord lookup problem, though,
is very similar to problems of identifying scale roots, of identifying scale
modes, and of keyfinding that have appeared earlier in this book. In those earlier problems, a set of notes was
presented to a network, and the network output some judgment about the input –
a root note, a scale mode, or both. Is
it possible to create a network that can provide the names of chords when
provided their fingering?
One complication that presents itself when
considering this possibility is the many-to-one relationship between chord
diagrams and chords. In our previous encounters
with scale roots and modes, the relationship between input and output was
one-to-one. Can networks adapt to the
complexities of many-to-one relationships?
I decided to explore this particular question
before facing the larger reverse chord lookup problem. I trained a network to decide whether a chord
was major or minor when presented the chord’s diagram. This is an interesting test case because, as
we have seen, there are many different chord diagrams that are each associated
with a major chord. Furthermore, there
is a great deal of similarity between the shapes of major and minor chord
diagrams because one can change a major chord into a minor chord by moving only
one finger. Detecting major chords is a
challenging problem.
Major chord detection is also an interesting
problem with respect to network interpretation.
As discussed above, ukulele players learn chords by paying attention to
the shapes of their chord diagrams. Such
shape information is not likely to be directly available to a network whose
only window onto a chord diagram is a set of input units. If a network can detect major chord patterns,
then how does it represent their structure?
The first problem to deal with in developing
this network is representing input patterns.
I decided to represent each chord diagram as a set of activities using
20 different input units. Each of these
input units indicates a possible finger position on a chord diagram, as is
illustrated in Figure I-12. The first
five input units (labeled G1 to G5) represent five possible finger positions on
the G string. The next five input units
represent five possible finger positions on the C string, and so on.
Figure I-12. An array of 20 input units
used to represent finger positions in a chord diagram. See text for details.
Any of the chord diagrams in Figures I-10
or I-11 can be represented with this set of input units. If a string position is fingered in a chord
diagram, its input unit is turned on with a value of 1. Otherwise, its input unit was turned off with
a value of 0. This means that any chord
diagram can be represented as a vector of 20 different bits. For example, the representation of the A
major chord in Figure I-11 is [0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].
To explore major chord detection, I created
a training set composed of the 36 different instances of chord diagrams for
major chords on the ukulele, as well as the 36 different instances of minor
chord diagrams, from the Hal Leonard
Ukulele Chord Finder (Johnson, 2005). Each of these 72 chords was
converted into a representation that could be encoded in the fashion required
by Figure I-12. I trained a network with
one output unit (a value unit with a Gaussian activation function) to turn on
when it was presented a major chord pattern, and to turn off when presented a
minor chord pattern.
Of course, another key question to answer
concerns the nature of the network required to solve this problem. Does the many-to-one relationship between
inputs and outputs require using hidden units?
It turns out that the answer to this question is no. A perceptron – a network without any hidden
units – quickly learns to identify major chords provided that it modifies the
output unit’s µ during training. For
instance, the network described below solved this problem after only 397 epochs
of training with a learning rate of 0.1
How does this perceptron detect major chord
fingerings? Figure I-13 provides the
connection weights from each of the 20 input units to the output unit of this
perceptron. The connection weights in
this figure are arranged to correspond to the arrangement of input units in
Figure I-12. Note that the value of µ for this output
unit is equal to 1.92. In order for this
output unit to turn on and identify a major chord pattern, the signal coming
from the 20 input units must cancel this value out. In other words, the net input from a major
chord pattern must have a value that is very close to -µ, or around -1.92.
A glance at the connection weights in
Figure I-13 does not provide any indication that the network is making explicit
patterns of the sort that are evident to a human ukulele player in the chord
diagrams of
Figures I-10 or I-11. However, a closer examination reveals that the network has carefully adapted its connection weights to be sensitive to these patterns. The network has learned that particular combinations of input unit activities (i.e. particular chord patterns) turn the output unit on. It assigns connection weights so that the sum of their signals cancels µ out. Of particular interest, though, is that the network chooses its weights very carefully so that it is equally adept at dealing with the closed form patterns of Figure I-10 and the much sparser special cases of Figure I-11.
Figures I-10 or I-11. However, a closer examination reveals that the network has carefully adapted its connection weights to be sensitive to these patterns. The network has learned that particular combinations of input unit activities (i.e. particular chord patterns) turn the output unit on. It assigns connection weights so that the sum of their signals cancels µ out. Of particular interest, though, is that the network chooses its weights very carefully so that it is equally adept at dealing with the closed form patterns of Figure I-10 and the much sparser special cases of Figure I-11.
Consider
the special cases first, because they place important constraints on the connection
weights to be assigned. The C major
chord in Figure I-11 requires that only one finger be placed on the third fret
of the A string. This means that the
connection weight from input unit A3 must be approximately equal to -µ, because
this unit must be able to turn the output unit on by itself. The weight from this unit is in fact -1.86.
Figure I-13. The connection weights from
the 20 input units to the output unit in the major chord detecting perceptron.
The A
major chord in Figure I-11 sends signals from input units G2 and C1, while the
F major chord in the same figure sends signals from input units G2 and E1. Because both sets of signals cancel out µ,
and because both sets include a signal from G2, the weight from C1 must be the
same as the weight from E1. Figure I-13
shows that both weights are equal to -3.01.
Not
surprisingly, any of the chord diagrams illustrated in the earlier figures will
produce net inputs that essentially cancel µ out and turn the output unit
on. Training the network has found a set
of weights that provide the right combinations to activate the output unit when
a major chord pattern is presented, but fail to activate it when a minor chord
pattern is given as input. The surprise
here, perhaps, is the speed with which the learning rule discovered the correct
combinations of weights to use.
The fact
that a network as simple as a perceptron can solve this problem is also
exciting because this in turn suggests that this approach can be extended. It should be possible to train networks to
detect many different types of chords, and hopefully their roots, so that one
could perform reverse chord lookup by presenting a chord’s fingering to this
network. Developing such a network is my
next step in pursuing links between artificial neural networks and the ukulele!
References
No comments:
Post a Comment