Professional Documents
Culture Documents
com/article/7560
In all of these examples, the composer gives this increased freedom only to
performers or the conductor, not to the audience. My doctoral dissertation piece No
Clergy and its associated programs constitute one attempt to give similar freedoms
to the audience.
No Clergy has specific technical, logistical and esthetic requirements. The processing
must occur in real time. The audience's and performers' interfaces for the piece must
be familiar and comfortable. The piece must be transportableable to be performed
in any location with minimal setup requirements.
The user, who serves as the conductor and is either me or someone filling a similar
role in a performance where I am absent, starts the piece by running the bash script
setup.sh. The script generates, with Python, a markup file for GNU Lilypond, a music
typesetting program described in greater detail later in the article. It then processes
that Lilypond file into a PNG image, as shown in Listing 1. Portions of the script that
are not shown also perform cleanup actions to remove old data and ending actions to
place images in the appropriate Web directories.
python -O NoClergy/Python/make_ly.py \
clar > lilypond/ly/clar.ly
lilypond --png -o lilypond/out/ lilypond/ly/clar.ly
1 of 3 02/07/16 13:35
Generating Music Notation in Real Time | Linux Journal http://www.linuxjournal.com/article/7560
(/files/linuxjournal.com
/linuxjournal/articles/075/7560/7560f1.jpg)
Later, when user data are available, a similar bash script called noclergy.sh (Listing
2) reads the previous data and generates subsequent pages of notation. The script
mutate_config.py reads the user data and updates a config file, while mutate.py
applies those changes to the musical material, performing actions similar to the
setup.sh script described above, but this time with a previous example of output from
which to work.
python -O NoClergy/Python/mutate_config.py
python -O NoClergy/Python/mutate.py 'lilypond/ly/'
For Non-Musicians
Transposition
Transposition is a musical term for changing the pitch of a piece of music. Some
instruments sound lower or higher than normal and, therefore, require music written
for them to be transposed. This practice allows performers to learn fingerings for an
instrument family, rather than only one specific instrument.
Pitch Class
A note's pitch class is its pitch mod 12. Middle C is a pitch, whereas C is a pitch class.
When musicians talk about a C or a B flat, they are referring to pitch class. A
doubling of frequency is a rise of one octave, and differences in octave are what
separate notes with different pitches but the same pitch class.
Each Measure has a meter, which determines how long it is and its internal rhythmic
organization. It contains however many Notes fill that meter. The total number of
Notes also varies based on each Note's duration.
Notes also have durations, dynamics, which are variations in amplitude or volume,
and articulations, which determine whether the note is accented, detached or
sustained into the next note, among other things. Notes also can be tuplets, which are
a particular type of rhythmic organization.
Tuplets are notes or rests that occur at a different rate than their note type would
indicate. By far, the most common type of tuplet is the triplet. A set of three triplets
2 of 3 02/07/16 13:35
Generating Music Notation in Real Time | Linux Journal http://www.linuxjournal.com/article/7560
occupy the same duration as two notes, so three 8th note triplets occur in the span of
two normal 8th notes, or one beat in most instances. Quintuplets are five notes in the
span of four, septuplets are seven in the span of four and so on. Unless otherwise
indicated, a set of tuplets squeezes x notes in the span of y, where y is the highest
power of 2 lower than x. Composers generally indicate deviations from this practice
with x:y notation on the tuplet set, so a 7:8 tuplet set stretches seven notes across the
span of eight.
When the scripts generate notation, they read a configuration file, updated by the
mutate_config.py script mentioned above. The various pc variables shown in Listing
3 represent the percentage chance that a given note will have the characteristic in
question, such as being a tuplet, being a rest as opposed to a note that sounds, having
an explicit dynamic mark and having an explicit articulatory mark.
______________________
Comments
3 of 3 02/07/16 13:35