Data Collection
Given the very subjective nature of predicting music quality, and the
need for classifiable results, this
project constrained itself to exploring the preferences of a single
musician, the author. A simple web application was designed that
generated a random rhythm, played it as an embedded MIDI file in a web page
through a computer's speakers, then let a user rate the quality of the
rhythm from 1 to 6, recording
the results into a simple text file:
Although the project would later
dichotomize the ratings into "good" and "bad," the six-step scale
was used so that the threshold of "good" be varied. For example, it might be
difficult to classify the very best rhythms alone (e.g. rating=6), since only
5% were rated as such. However, it could be much easier to accept rhythms
with ratings 4 through 6 (about 40%), or alternatively, to design a classifier which
only rejects the very worst of the rhythms.
Ratings
Rating 1 : random-sounding blobs of drum hits without any recognizeable
order.
Rating 2 : patterns that sounded only a little better than rating 1.
Rating 3 : patterns that could almost "be a rhythm," meaning, they
developed a sense of anticipation, but "leave you with one foot in the air." (Picard, 2004)
Rating 4 : rhythms that were "just barely a rhythm." That means they
sounded rhythmic, but were uninteresting, with no firm definition of the beat.
Rating 5 : rhythms that sounded very good.
Rating 6 : "artist's choice," the very best of the rhythms,
indicating one that would not only find its way into a presentable
piece of music, but to do so without further editing.
Constraints
For simplicity's sake, this project put a number of constraints on the patterns:
All patterns were the same tempo.
All patterns were the same length.
All drum sounds were played at the same volume- no accent.
Only three drum sounds were used. Bass ("kick") drum, snare drum and hand clap.
All patterns were quantized into 16 even time steps.
Data Format
Given the above constraints, all possible rhythms can represented on a 16x3 grid:
On this grid, the horizontal axis represents time. The vertical axis represents
the drum sound. An 'X' indicates that at that particular time, the drum should
be sounded. A '.' indicates it is to remain silent.
The 3 rows, or "tracks", therefore represent the pattern of triggering for each of the
drum sounds in time. The left side of the grid represents T(time) = 1. As time
progresses, the play moves to the right. When it reaches the righthand edge
of the grid, it restarts at the left.
Combinations
Given the constraints of this project, the number of
sounds at each time step 2^3=8. Therefore, the number of possible rhythms is 8^16, or
2^48. We should divide this by 16 because repeated rhythms are rotationally identical (more about
this later). Therefore, there are about 2^44 possible rhythms. There are actually a bit fewer
because of additional symmetry when, for example, the first 8 steps of a rhythm equal the
second 8. Anyway, on a planet with more than 2^32.5 people on it, it would seem that we could
solve this problem simply by asking everyone to rate 3000 rhythms each :)
-->Features
Index