Anda di halaman 1dari 14

Cadenza: A Music Description Language

Author(s): H. S. Field-Richards
Source: Computer Music Journal, Vol. 17, No. 4 (Winter, 1993), pp. 60-72
Published by: MIT Press
Stable URL: http://www.jstor.org/stable/3680545
Accessed: 14-12-2015 07:07 UTC

Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at http://www.jstor.org/page/
info/about/policies/terms.jsp

JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide range of content
in a trusted digital archive. We use information technology and tools to increase productivity and facilitate new forms of scholarship.
For more information about JSTOR, please contact support@jstor.org.

MIT Press is collaborating with JSTOR to digitize, preserve and extend access to Computer Music Journal.

http://www.jstor.org

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
H.S. Field-Richards Cadenza: A Music
8 Hop Pole Green
Leigh Sinton, Malvem
Worcestershire,WR13 5DP UK Description Language

The development of computing has been motivated cessing system or general text editor. Cadenzacould
by a desire to automate or, at the very least, ease provide a common interchange formatbetween ex-
manual tasks. Nowhere does this have greaterim- isting commercial programs,such as HB Engraver,
pact on people than in the committing of ideas to pa- Finale, Score, and ProfessionalComposer.It could be
per. Text processinghas undergone a revolution from used as an entry system in its own right for those
the first simple line editors (used almost entirely for with simple nongraphicaleditors for printing, or for
programdevelopment ratherthan publishing), to controlling synthesizers using mechanisms within
complete systems that will take text and graphics, Cadenza that allow one text file to control both.
edit them on a single screen, and then present the
finished whole for publication on a phototypesetting
printing press. MusicEditors
Representingtext on the screen in a basic form is
very simple. There are only 26 letters (for English) Severaldifferentapproachescan be made to editing
and a furtherhandful of extra punctuation symbols and printingmusic, in much the same way as painting
that must be used to convey information. Together or drawingis done. We can considerthe music sheet
with their uppercase representation,the entire set in its simplest form as a paintableareaon which we
can be reducedto fewer than 128 characters,which add and subtractpixel informationin the same way
gives us the familiar ASCIIcode set. This restricted that any other graphicalinformationis processed.This
characterset, with a few additions, has made it pos- approachis not suitable for anythingbut the most ba-
sible to produceeditors of all sorts, from simple line sic of music because it is very difficultto modify.
editors to sophisticated screen editors and desktop A better method is to consider each of the musical
publishing systems. elements as an object and manipulate such elements
Music, however, is far more complex in its repre- as any object-orienteddrawingpackagemight. The
sentation. Although it has a comparablenumber of problem here is still the modification, as the ele-
symbols to representit, they are put together in a con- ments all bear a relationship to each other in much
siderablymore elaborateway. There are very few mu- the same way that charactersdo within text. Behind
sic editorsat present, and almost all of them are based the drawingthere must be a considerableamount of
on a graphicalscreen editor approach.Thus, they re- layout information that is used to producethe music
quire relatively expensive computers that, together on the page. A change at one point may yeild a con-
with a laserprinter,can cost tens of thousands of dol- sequential change elsewhere, for example, the trans-
lars. There are some availablethat are based on small posing of a part.
personalcomputers,but they do not generally offer Almost all currentmusic editorsarea mixture of a
the rangeof typesetting features of largeprograms. drawingpackageand a specializedlayout program.
Some form of text entry of music would allow The first music editorto be basedon graphicaltech-
written music to be preparedon relatively simple niques was the Mockingbirdsystem (Maxwelland
machines that only provide a simple line or screen Ornstein 1984),which ran on an experimentalXerox
text editor and would provide a standardfile format computerknown as the Alto, later to become the
for the interchangeof data between various graphical Xerox 1108. One of its innovationswas in the entry of
music editors. the notes, which was done by playingthe music on a
The Cadenzalanguageis based solely on text and piano-stylesynthesizer keyboard.Mockingbirdhad
thereforewould be easy to generate on any word-pro- knowledgeof standardmusic notation--beams,
chords,rests, etc., and the rules by which they should
ComputerMusic Journal,17:4,pp. 60-72, Winter 1993, be laid out. Its chief disadvantagewas its restrictionto
? 1993 MassachusettsInstitute of Technology. piano staves and to a few of the more common musi-

60 ComputerMusic Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
cal notations such as slurs. In common with many of is still more of an art than a science (Read1982).Mod-
the editors today, it could play the score back. This is em scores are sometimes presentedas much for their
an importantpoint as it is much easier to find errors artistic,visual qualities as for the musical informa-
in the music by listening than by inspecting the tion and performance;indeed, some say that this may
printed score. always be the case for certain compositions. Even a
Mockingbirdwas the direct ancestorof today'smod- fairlymodest baroquescore includes a considerable
em graphicalmusic editorssuch as HB Engraverand amount of artistic judgmentin its layout.
Finale for the AppleMacintoshpersonalcomputer, Music requires several threads of information to
and Scorefor the IBMPC and its clones. All these pro- be presented as a coherent whole, each having a re-
gramsuse the same basic input scheme. There are two lationship to the others. Also, each thread can have
partsof the entry process:the basic notes which give a separateexistence away from the whole; thus, a
pitch, duration,key, and time information;and the set of separate parts makes up a complete musical
"extra"informationsuch as text and dynamic marks. score. The essence of music is that it has many
The differencebetween these two types of information things happening at once, and the notation must re-
is that the formeris "fixed"to the stave that it appears flect this. In music representation, this is usually
on, while the latter can float (within reason).Although conveyed by having time running horizontally and
this is somewhat of a simplification,it is a useful way separateparts vertically; within each part the pitch
of consideringthe musical content. is representedvertically.
With HB Engraverthe entry process is dividedinto A single music characteris a note. It has positional
three parts.The first is the entry of the fixed informa- significanceon the page and has associatedwith it a
tion-notes, key, etc. This level also controls the justi- set of modifiers (sharps,flats, duration,etc). Loosely,
fication,the numberof staffsystemsperpage,measure these are equivalent to boldface,font size, etc., in text
numbering,etc. Once the notes have been entered,it processing.On top of this there is other global infor-
is possible to check the entry by playing the music via mation such as dynamic marks, tempo, etc., which
a MIDIsynthesizer.Note that this process does not re- each have a relevance to particularnotes and must
quire any of the "floating"informationto be present have a definedstart and finish point. As well as this
for the basic music to be heard.The next stage is to purely "mechanical"information,each note must
enter the dynamic entry process that allows placing of have a wealth of informationthat is not relevantto
the various kinds of extrainformation-accents, dy- the actual music it is describing-a note's interaction
namics, slurs, etc. Finally,there is a text entry mode with its neighbors,for example, both horizontallyand
for placing text blocks and page numbers.As with vertically. This must all be representedin additionto
most graphicaleditors,the choice of music element to the pure "mechanical"information.
be placed is done by on-screenmenus, and elements
are manipulatedon the screen into the place where
they will appearin the printedscore. History
All this requiresa substantialprogramand rela-
tively sophisticatedhardwareto supportthe on-screen I first approachedthe problem (in 1979) from a rela-
graphicsoutput. The textual representationof music tively low level when I was programming a simple
describedhere is an attempt to breakaway from these computer-controlled synthesizer and was able to
requirements. look very closely at the problems of the basic note
representation without any of the fine detail re-
quired in a score. From my experience arranging
TextRepresentation
of Music and copying music, I was interested in having a lan-
guage that related to what was on the page in a
BeforedescribingCadenza,it is importantto realize natural way. The language I finally used for the
that no text representationof a musical score can be synthesizer was simple because it was representing
entirely satisfactory.The laying out of musical scores simple musical information. With one or two mi-

Field-Richards 61

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig.1. Excerptfromthe
WeissenbornStudyforthe
Bassoon Book 2, No. 21.

ooo

nor differences, this basic notation formed the basis works in practice. Figure 1 (an excerpt from
of the Cadenza language. Weissenborn's Study for the Bassoon, Book 2, No.
Other researchin the field such as that by Gourlay 21) shows a simple example of a single melodic line.
(1986) and Foxley (1987)arrivedfairly late in my for- The Cadenzatext for this is relatively simple:
mulations, although it confirmed some of my ideas bass clef
regardingbasic note names and lengths. It was inter-
major key (f)
esting to see that convergent evolution had suggested
the idea of using the begin( timesig (6/4)
... ) end( ... ) con- %Measure 1
struction and some of the primitive names. Using
words like dots and beam, is fairly logical in any mu- begin (slur) c4. beam(d/// c/// bn///
sic language,which accounts for their use both in begin(cresc) c///)
the work of Gourlay and in Cadenza. Unlike previ- beam(a5/. end(slur) begin(slur) e//
ous work, I had tried to relate the text with the notes end(cresc))
in a simple and natural manner, something I felt beam(f/ end(slur) slur(a4/
could be improved in almost all other work that I cresc(d/ c/ b-/ a/)))
%Measure 2
had seen. The other chief areas of innovation are the
timesig(4/4)
concept of elements and the way of describingthe
beam(g/. begin(slur) c+//) d..
output format, which no other work has used.
end(slur)
beam(slur(b// g/.) f//)
%Measure 3
TheLanguage beam(slur(f/ e/)) c5.
Cadenza is formed aroundthe concept of an element. slur(cresc(g/ a/ b/))
%Measure 4
An element is a set of items, notes, text, etc., that
can be manipulated as a unit. Elements can consist slur(decresc(g+ a)) r/
of one item; if more than one element is needed, we cresc(
can form a list of elements, known as a group. Once beam(slur(bn3// c//))
an element or grouphas been constructed, modifiers beam(slur(e// f//)
can be attached to it; these modifiers are applied to slur(g+// a//))
the single element, or with a group, to every element )I
within that group. I am ignoring for the present the stave that the
This scheme reflects the nature of music since music is printed on, and will concentratemerely on
notes appearin groupsand can be manipulated as a the notes and various annotations.
group. For example, a group of notes can be dotted to First of all there is the note name, which is the
denote staccato, or have a tenuto mark on each of musical name with the addition of the symbol "r"
them. Notes can be groupedtogether as a single unit for a rest. Since this representation breaks down
so that they can be dealt with in the same way as an over more than one octave, we have to have some
element. This element/group can be any size from a form of octave modifier. This is a number that is
single note up to an entire work, but typically it is of put after the note to force the note into a particular
the orderof a few notes. octave. The modifier acts on succeeding notes. Oc-
Having said this, it is best to demonstrate how it taves start on a and finish on g# . The octave nota-

62 ComputerMusic Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 2. Octave naming in Fig. 3. Example of multiple Fig. 4. Example of multiple
Cadenza. accidentals in Cadenza. time signatures in Ca-
denza.

a8
7
a6
Sa5

Fig. 3.

a5 a4 a4 a3
a3 a2

Fig. 4.
tion starts at A"" (approximatelyone octave below
the range of the contrabassoon)and extends upward
as far as is needed. Figure2 shows how this fits in
with the stave. Note, however, that the lowest oc- Time Signatures
tave is Al, not AO.
Accidentals are relatively simple: "-," "+," and The generalizedform of time signature in Cadenza is
"n" representflat, sharp,and natural, respectively. time_sig (n/m) where n is the number of beats in
The use of the character "#" was resisted despite be- the measure and mis the note length. Forexample, in
ing an obvious candidatefor the sharp.This was Fig. 1 we had time_sig (6/4). Where music has al-
done to retain symmetry with the use of "-" for the ternatingbars of differentrhythms, it is generalprac-
flat. These two symbols have an obvious correspon- tice to show the multiple time at the beginning of
dence with the concepts of sharps and flats raising (+) the section only. For example, Fig. 4 can be set rela-
and lowering (-)the pitch of the note. Double sharps tively easilywith the notationtime sig(4/4 3/4).
and flats are represented by "++" and "- -" respec- Where it is necessary to have an irregularrhythm
tively. If a mixture of the symbols is required,we can through several bars, the notation time (n/m) can be
explicitly use the pitch modifiers as Fig. 3 shows. used; this changes the time signature for the follow-
This would be representedas a6++ an+. ing barswithout the time signature'sprinting.
The bare note name, "a," "b," etc., represents a
quarternote, and length modifiers can be used to al- Key Signatures
ter the duration of the note. Eighth and sixteenth
notes, for example, are given the modifiers "/" and Key signaturesare achieved using two methods. The
"//" to show division by successive powers of 2. Half first is to give the key name F major or, C# minor, for
and whole notes are given "*" and "* *" representing example,using the key wordsmajorkey (key_name)
multiplication by 2 and 4, respectively. This scheme or minor_key (key_name). Alternatively, it can be
can obviously be extended to any depth, limited only done in terms of the actual accidentals appearingin
by machine accuracy,good taste, etc. Dotted notes, the key signature as key_notes ( list).
which extend the length of the note by half its value, For example, the following two declarationsboth
are handled in a similar fashion by the period symbol representE-flat major:
(.). One benefit of this notation is that the number of
strokes on the stem of the note is the same as the major key(e-)
keynotes(b- e- a-)
number of the "/" symbols after the note name,
which makes readingand entering much simpler. I Where the key changes in the middle of a piece, the
have found that note entry can be as fast as when us- new key signature is noted, and the printing program
ing any graphicaleditor. would make allowance for this and make natural

Field-Richards 63

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig.5. Changeof key
signaturein Cadenza.

~ [ ol beam(g/. slur(c+//) d..)


LaI1.

would not be correct.

Barline
The barline symbol "I"represents the simple
those notes that are necessary where required.For barline. If different flavors of barline are required,
example, Fig. 5 could be written as we can use double barline, dotted barline,
treble_clef major key(e-) left_repeat, and so on.

double barline
Vertical
Grouping
naturalise major key(d)
Not all music is a single thread, so there has to be
wherethe keywordnaturalise definesthe cancel- some mechanism for showing harmonic construc-
ing of the three flats and the printing of the three tions. Consider Fig. 6, which in Cadenzawould be
natural signs.
treble clef
Groups
minor_key(c)
Horizontal (Melodic)Groups time sig(3/8)
Up to now we have only discussed simple elements
within the music-notes, accidentals, etc. There are in beam(dots(slur(g6/;e/; g5/ g6/;e/;g5/
Fig. 1 many symbols that operateon a groupof notes.
We can build a set of elements into a groupvery sim- g6/;e/;g5/))) jg5;bn;d r/
ply. Measure3 has the excerpt beam(slur ( f/ e/))
where the two elements "f/" and "e/" have been Chords are formed by the use of the vertical group
groupedtogetherby using parenthesesthus, (f / e/). symbol ";". Once an element has been joined to one
We can then applyfurthermodifiers to them en or more elements, the vertical groupthus formed is
masse. We shall see in later examples how this sim- considered as an element in its own right. In this
plifies such constructions as triplets and tremolo. way we see that slur( ... ) in the above example
There are several sets of modifiers used in Fig. 1 acts on a groupof three elements, each of which con-
(beam, slur, cresc, and decresc) whose mean- sists of three other elements. The modifiers only act
once on each element, so that slur only appears
ing is self-evident from the Cadenza example de-
scribing it. What is worth noting is the alternative once, not for each note. If we were requiredto pro-
construction using begin( ) and end( ). These are duce Fig. 7, we would have to write
used because music does not follow the convenient
beam(slur(g6/ f/);slur(e/ d/);slur(g5/ a/))
block structuredrules that are seen in computer lan-
guages. Sometimes we have to start a modifier There are several pitfalls to constructing chords
within one groupand finish it within another. For with any automated system. The primaryone which
example, in measure 2 of Fig. 1 we have gives the most trouble is the "invisible rest." Chord
grouping presents no problem where there are notes
beam(g/. begin(slur) c+//) d.. end(slur) of the same value in the chord. But consider the ex-
where the slur begins within the beam group and ample shown in Fig. 8. The Cadenza text would be
ends outside it. Writing treble clef

64 ComputerMusic Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 6. Example of vertical Fig. 8. The need for Fig. 9. Incorrect Fig. 11. Example of vertical
grouping. invisible rests-two voices interpretation of the grouping and invisible
on one staff. example in Fig. 8. rests.
Fig. 7. A more complicated
verticle grouping example. Fig. 10. Correct Fig. 12. Actual
interpretation of the interpretation of Fig. 11.
example in Fig. 8.

c6 - i-- c
a. I4- a/
Fig.6. Fig.8. Fig. 9.

-c6 -I--- c -------


Fig. 7. -a. -4- a/
Fig. 10.
timesig(2/4)

c6;a. c a/ I
This looks innocent enough, but it hides consider-
able problems. The first, most obvious problem is
which note associates with which? The trained mu-
sician knows--and even the layman can guess-that
the sixteenth note belongs with the dotted quarter Invisiblerests
note and the two quarternotes belong together. This
Fig.11. Fig.12.
is helped by the horizontal positioning of the notes
on the stave and the stem direction. This informa-
tion is not present in Cadenza,and somehow either Two solutions to the above present themselves
the groupingof the notes must be indicated unam- immediately. The first is to group the elements dif-
biguously, or there must be some algorithm for fit- ferently; thus,
ting the notes into the measure so that everything (c6 c); (a. a/)
comes out equally. 2 =2
When working out the layout of a measure, each
element is examined, and its contribution within the This would allow unambiguous placing of the notes,
measure is calculated. This is done by taking the but it would be impossible to relate the notes in the
minimum length of each element and then summing same chord, with an arpeggiomark, for example, as
each length contribution. The figure that is produced shown in Fig. 11.
is equal to the number of quarternotes within the If we wrote (c6 c); (a. a/); d5, it would be im-
measure. Normally this works well except for the possible to fit in the arpeggiomark;we would have
cases that we are considering here; thus, to resort to (arpeg (c6; a.; d5) c a/), and we
would be back to the original problem. Another solu-
c6; a c a/ tion is to introduce the concept of invisible rest, so
that we could write (arpeg (c6; a.; d5) c; ri/; ri
1 1 1/2= 21/2 a/), where "ri" stands for an invisible (i.e.,
nonprinting),rest. This would conceptually be like
which, as we can see, is not correctand should be writing out the rests explicitly, as in Fig. 12.
2 (in 2/4 time). We can look at this another way, as in
Inspecting just the note lengths for the measure,
Fig. 9, showing the length of each note where the du- we have
ration of the voice and their position within the mea-
sure can be shown. As can be seen, what we really c6;a.;d5 c;ri/;ri a/
requireis what is shown in Fig. 10. 1 1/2 1/2= 2

Field-Richards 65

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 13. Correcttiming for Fig. 14. Example of a Fig. 15. Interpretationof a
Fig.11. multiple-note group. multiple-note group.

- -c6 - ---- c -514.


Fig.
i:~::! :::x`.4:.``

* a/
::~::i:~::>..:::..`.:%.-`-.:::::
-:::::: t-':::?

. . .....
-4 -- a. - --4--r i
~i . . . .,;:?:;. . .t:;?; :??;

which is correct,giving the timing shown in Fig. 13.


.
.
.
.
The dotted "a"would sound for the requiredlength Fig.14. imult(
when sent to a synthesizer, but its contribution
when used for justification in the printing would
only be the length of a quarternote.
Fig.15.
Multiple-Note Groups
must be done within it. The printedmaterial of a
Triplets and other groupings of notes present no no-
tational problem within Cadenza. There are many composition can exist in several differentforms. In a
occasions when the normal beat pattern needs to be typical orchestralcomposition, these forms might be
the score and a set of parts. Ideally, the players
interrupted.For example, three notes to be played in should each have their own part,but on some occa-
the time of two. These are sometimes known as "n-
sions it might be desirablefor two players to share a
tuples," or in the case of two or three notes, "duplet"
and "triplet"respectively. Figure 14 shows 5 six- part. On the score it is necessary that the two parts
share one stave since the number of staves per page
teenth notes to be played in the time of 4.
can be critical.
Writing this makes use of Cadenza'sability to con- Another problem is swappingvoices from one
struct (groups)that can then be treated as an element
stave to another on the score, while keeping the
in its own right. We can write, ignoring the beaming
voice on the same part. It is possible also to have two
for the moment,
voices on separatestaves on the score while sharing
the same part (forexample, piccolo played by flute 2).
mult(a6/// b/// c/// d/// e///)/ While on the part, the voices may share a stave, or be
Figure 15 should make it clear which part of the on two separatestaves,or even a combinationof both,
text mult (c6* an7) * representswhich part of the dependent on whether they are in unison or not.
printed notes. The figure that is put in the brace is In orderto producean output, Cadenzaneeds to
derivedfrom the number of the smallest note values know several things: the medium on which the data
in the note list. So the an7 is the shortest (a quarter are to be transcribed(partsscore synthesizer, etc.),
note), and there are three of them in the note list--a the voices that are going to be used in the file, the
half note and a quarternote. This technique can be staves that are requiredfor the voices, how to assign
applied to other similar constructions, such as the voices onto the staves, and an output format for
tremolo. relating these items together.
We can see how all this works in practice from the
Output example for bassoon trio shown in Fig. 16, which
shows how we build up the music with the various
Having described the notes and the associated voices assigned to staves. It also shows the swapping
modifiers, it is to
necessary give information on how of voices from one stave to another on the score even
the music should be built onto the staves. We must though they are on separateparts.The actual music
distinguish here between the arrangement of notes output was not generatedfrom the text, so there may
on the stave and its appearanceon the page (justifica- not be a one-to-one correspondencebetween them.
tion of the lines, etc.). Justification is handled by the However, it should indicate what a largerexample
output program and is largely independent of the lan- will look like.
guage itself. How the staves are arrangedis not, and First, we must show the media on which we wish

66 Computer Music Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 16. Example of
multiple voices per staff,
and of voices changing
staves; excerpt from a
bassoon trio by Michael
Norris.

Intro.Presto

l~LAD 10-d
the
-CPO

IIIl I

I'

,ri /LZ ''


.
aim
ILI&_c ~ 3 ~ i
'f *g &

to have the parts and the voices that we require. stave(bassoonl-part fullname "Bsn 1")
stave(bassoon2_part fullname "Bsn 2")
media(score parts) fullname "Bsn 3")
voice (bassoonl bassoon2 bassoon3) stave(bassoon3_part
assign(
We define how the score will look here by giving bassoon3 :
the two staves onto which we will put the three bassoon2 : bassoon3_part
bassoon2_part
parts. Since the voices will move from the stave, the bassoonl : bassoonl_part)
names "upper"and "lower"will suffice here. First, output (bassoonl_part)
we define the staves on which the voices will appear. output(bassoon2_part)
Next, we assign voices onto staves and which out- output(bassoon3_part))
puts we want. It is worth giving the whole stave construction here.
score(
stave(
stave (upper)
stave name
stave (lower)
lines n
assign(
name("string")
bassoon3 : upper
abbrevname ( "string")
bassoon2 : upper
transpose(key))
bassoonl : lower) The "lines" parameterdefines how many lines
output(brace(upper lower))) the stave has; pitchless percussion staves would con-
The individual parts are quite simple and identical tain one line, and some lyric lines would contain no
in construction to the score definition. The only dif- lines. If omitted, this defaults to five. The full name
ference is that we have a text name that will be is used once at the beginning of the part with the ab-
given for each part. breviated name used thereafter.The transpose
parts( command indicates the key in which the voice is

Field-Richards 67

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 17. A more compli- Fig. 18. Fig. 17 is split plac-
cated example from the ing one voice per staff.
Nocturne Op. 15 No. 2, by
Chopin.

playing, transpose (b-) for a B-flat clarinet, for ex-


ample.
Next, we have a statement that can be used to de-
fine the system defaults. For our example, we have
assume( Fig.17.
beam(
)
time (2/4)
majorkey(f))
The construction beam(... ) with its dummy pa-
rametermeans that the programshould beam six- A Ole
teenth notes across quarternotes ratherthan half or
eighth. If the latter were required,then we would I z I
write beam( ... )/.
%Measures 1 - 5
t,
"Intro. Presto";
An- . R,o. .. , - ...
(bassoon3(
-M
score(begin(stems down) -l

slur("3";c5//;"\it f" bn//


tie(c/) c/ dots d/) I Fig. 18.
score(end(stemsdown)
stems_up(dots e/ (bassoon3(
slur(e// d+// e/.) r//) slur(accent c// b// c/)
slur(e// d+// tie(e/ e/)) slur(accent a// g+// a/)) I
dots f/) I slur(accent e// c+// e/)
dots g/ slur(g// f+// g/.) r// bass clef accent c3/ r/
slur(g// f+// tie(g/) g/ dots a/) score(rmoveto(lower))
bassoon2 ( g3/ r/ c3/ r/;"\it dim" I)
tenor clef bassoon2 (
r*;"2" score(moveto(lower))
r r/ g5/;"\it fz" stems_up(e/ r/ begin(cresc)
bn// tie(c/) c/ accent tie(c))
slur(c//
dots dn/) I c/ r/
dots e/ slur(e// d+// e/.) r// bass clef
slur(e// d+// tie(e/) e/ score(moveto(upper))
dots fn/)) begin(slur) c// b// a// g//
bassoonl ( f/ end(slur) c4// bn// c/ r/ I)
bass clef bassoonl (
ten "l";c5/;"\it p" begin(slur) c// c+// d// d+//
a// g// f// e// d//) e//;"\it cresc" f// f+// g//
slur(b//
slur(c// bn// c/) accent c3/ r/ g+// a// b// bn// c// c+//
ten c/ slur(b// a// g// f// d// e//l
e// d//) f/ end(slur) r/ r I))
slur(c// bn// tie(c/) c/ r//
dots g4/ I Since the text "Intro.Presto"is groupedwith the
ten c/ slur(b// a// g// f// next groupof voices, it always appearsat the begin-
e// d//)) ) ning of the groupno matter how it might be placed.

68 Computer Music Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
This type of output construction with assigned Text Notation
voices can be used to create more complex construc-
tions. For example, Fig. 17 shows part of a Nocturne Setting text into a score is relatively simple with Ca-
(Op. 15 No. 2) by Chopin. The example following denza. However, when using text as a lyric, there are
gives an extract of just the notes and their beams one or two points to consider. The chief one is that
with no other slurs, or articulations. the text must be associated with the music word-by-
At first sight, this looks totally impossible and un- word or even syllable-by-syllable.When the notes are
likely to be set using any automated system. It be- justified, the text must also be. When a word or a syl-
comes a little clearerif we split it up into a set of lable is to be sung over several notes, it is important
individual parts as shown in Fig. 18. that this is shown clearly.
Using Cadenza'sability to insert invisible rests Take, for example,Fig. 19, the word "dulci"is split
and assign several parts to the same stave, we can into two with every syllable assignedto a single note.
produce the following (the words stems_up and The hyphenationcharacteris used to join the two
stems down are introducedwith no further explana- halves of the word together.The word "jubilo"is di-
tion other than that their use is obvious). vided into three partswith the final syllable across
three notes. The latter is shown by the underscore
media(pianopart)
voice2 voice3 voice4
character" " as a continuation mark.
voice(voicel voice5)
pianopart( Figure 19 can be set in two ways, most simply as a
set of separateparts.
stave( right)
stave( left) media(part)
assign( voice( soprano soprano words)
voicel voice2 voice3 voice4 : right part(
voice5 : left) stave( sopranopart)
output(bracket (right left))) stave( soprano_lyric lines (0))
assume(treble_clef time sig(2/4) major_key(f+) assign(
beam()) soprano : sopranopart
voicel(stems_up(mult(e6/. ri// d//) soprano_words : soprano lyric)
mult(c/.ri// d//) I output( soprano_part soprano_lyric))
mult(e/. ri// f//) soprano(
mult(g/. ri// a//))) treble_clef major_key(f) time sig(3/2)
voice2(stems up(mult(ri// beam(g5// b/) ri//) "Moderato";
mult(ri// beam(g5// b/) ri//) I (right_repeat
mult(ri// beam(b// c/) ri//) "\it p";f5* f** f* a** b* I
mult(ri// beam(b// c/) ri//))) slur(c** d*
c**)
voice3(stems_up(mult(ri/. begin(beam) d5/) end_barline));
mult(c/ end(beam) ri// soprano_words(
begin(beam) d/) I "In"* "dul-"** "ci"*
mult(e/ end(beam) ri//. "ju-"** "bi-"*
"ilo_"** ..._t* ._"-**))
begin(beam) f/)
mult(g/ end(beam) ri//
begin(beam) a/))) Macros
voice4(stemsdown(mult(d5// g// b// d5// d6//)
mult(c5// g5// b// d5// d6//) I Music by its nature can be very repetitive, and it is
mult(e5// b6// c// f5// f6//) useful to have some form of shorthandavailable for
mult(e5// b6// c// f5// f6//))) often-repeatedphrases. The macro construction al-
voice5(bass_clef c3/ c4 g4 b g3/ lows the user to build up a set of often-used phrases
c3/ c4 g 4b g3/) to be called by a single name. The generalized con-

Field-Richards 69

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 19. Example of setting Fig. 20. The use of a macro
text. for repeated patterns.

Moderato Byrd(1974)and Gomberg(1977).Two are especially


1
1 s worth looking at in comparisonwith Cadenza-those
I
S,, describedby Foxley (1987)and Gourlay(1986).
In dul- ci ju- bi - lo
Fig. 19.
Music
-
0 ? = ? ? ?
?- ? ? ?

Foxleydescribesa simplemusic typesettingscheme


basedon a language,MUSIC,which acts as a prepro-
cessorto the UNIXtypesettingprogram"troff."The
Fig. 20. musicalexampleshownin Fig.21 is set by the fol-
struction takes the form lowingMUSICtext:
"macro" <name><parameter list> "{" <macro body> "}" .MS # start MUSICcodes
title = "Glengarry's March"
where <name> is the name of the macro, and <pa-
time_sig = 4.4;
rameterlist> is the parametersto be inserted into the
key = a;
body of the macro. These take the form of names autobeam; # Inserts beams automatically
prefixedwith #. chords # Interpret text as chord names
Supposewe have the phrase given in Fig. 20, and e<d<)
we are ratherbored with entering all the notes and c "A" a a b<c<l
their beams, lengths, and so on. We can provide a d "E7" b b e<d<I
macro that contains all the phrasingand beaming \-2
thus: d< "-G" c=<b<a<g-e<d<
macro curio #1 #2 #3 #4 .ME # end Music codes
{cresc(slur(dots(beam(#1/// #2/// The same passage set in Cadenza would look like
#3/// #4///))))} media (part)
We can use this on the phraseabove to produce Fig. voice(tune)
20 as part(
curio(c6 d e f) stave (part_ stave)
curio(a6 b c d) assign(tune : stavepart))
curio(b6 c d e) treble clef;"Glengarry' s March"
curio(c6 d e f) major key( a)
time sig(4/4)
assume(beam()) % Default beaming on crotchets
OtherLanguages or less
tune(
There have been many attempts to producetextual
e6/ d/ I
representationsof music. The earliest of these was the c;"A" a a b/c/
DARMSnotation (Erickson1975),which in my opin-
d;"E7" b b e/ d
ion is about as unreadableas anythingcan be. In its
c;"A" a a b/ c/
defense, it was never intended to be readdirectlyby a d/;"G" cn/ b/ a/ gn e6/ d/ 1)
human operator.It was an internalrepresentationof
the music, and coding for it would take considerable As can be seen, the MUSIC excerpt is a lot shorter
time. Editingand graphicaldisplayswere to have been because it does not have any of the output informa-
addedto make this process easier,but they never ap- tion that Cadenza has. Setting items such as the
peared.Otherproposalsfollowed, such as those of Chopin extract shown in Fig. 14 would be difficult in

70 Computer Music Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
Fig. 21. Example used for Fig. 22. Example of the use
comparison of notations. of alternative graphical
symbols.

March
Glengarry's

A E7 A G
Fig.21. A I.
I l
w
f 7

MUSIC. It has the advantageover Cadenza that


much work has been done on the output process. Fig.22.

lies in the output format and the treatment of indi-


Gourlay vidual notes. This small example does not do justice
to the work of Gourlay, and I regardthe language as
The work of Gourlay is perhapsthe closest in spirit an important milestone in the textual representa-
to Cadenza. Producingan example was a little more tion of music.
difficult, as his original article does not give an ex-
ample. It is hoped that the following is correct,but
please excuse any errors,either of content or style. In Implementation
particular,I suspect that the way I have written the
actual notes may be wrong, especially the repetition The only implementation work that has been done
of the note duration. to date is an output driverfor a simple six-voice, five-
octave synthesizer using a very restricted subset of
title "Glengarry' s March" the notation. It consists of two parts:the first trans-
system(
forming the text into an internal format file with a
staff(
very simple serial data structure;and the second tak-
part_stave
voice tune)) ing the object data to drive the synthesizer.
block[
tune{ FutureWork
measure(
clef treble clef
There are severallanguageareasthat I am still work-
key 3 sharps
meter 4/4
ing on and refining,primarilythe programconstructs
to extend the macrofacility. Some form of escape
(8;e5 8;d)) barline mechanism to include constructsfrom other lan-
(4;c;"A"-4 4;a 4;a 8;b
guageswould be useful for simplifyingrepetitivemu-
8;c)) barline sic. It would be possible to producethe baroque
measure((4;d; "E7"-4 4;b 4;b musical dice "compositions"with very little effortfor
8;e 8;d)) barline
playing on a synthesizer.Another areathat would be
measure((4;c; "A"-4 4;a 4;a useful is the redefinitionof the charactersthat are ac-
8;b 8;c))barline
tually printed.Supposethat for some obscurereason
measure((8;d;"G"-4 8;cn 8;b 8;a we wished to print Fig. 22 (ducksin F minor, more in-
4;gn 8;e5 8;d)
barline } ]
teresting than ducks in sea);we would have to change
the characterrepresentingthe whole note (these are
Excepting that Cadenza uses English instead of tail-less ducks)to the characterfor the duck.
American terms for the parts of the music, there is While displaying ducks has a somewhat limited
much that is similar. The chief area of difference use, the facility is obviously far more useful for type-

Field-Richards 71

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions
setting modem music where a composer may use sion to use the extract from his fine set of trios for
many special symbols. bassoons called "ThreeDances" and "ThreeMore
Dances." I have played them over the last few years
with much enjoyment and can recommend them to
Conclusion any bassoonist. More helpful comments were pro-
vided by a colleague, Tim Dean, and my wife, Diana.
I have used Cadenza to set many examples of scores, I am particularlygrateful for her patience while I
and in only a very few obscure cases has it been spent many evenings working on Cadenza.
found wanting; future work will addressthese areas.
The speed at which I can enter data compares very
well with that of a graphicaleditor such as HB En- References
graver.The languageis presented to stimulate others
in the field to look at textual representationsof mu- Byrd,D. 1974."ASystemforMusicPrintingby
sic and to encouragethem to produce compilers for Computer." Computing in the Humanities 8(5).
Cadenza. It is also given as a possible standardinter- Erickson,R. F. 1975."TheDARMSProject:A Status
Report."Computing in the Humanities 9(6):291-298.
change languagebetween diverse graphicalmusic
editors. I have not included the entire list of reserved Foxley, E. 1987. "Music-A Languagefor Typesetting
Music Scores." Software Practice and Experience
words and formal syntax as it stands at present, but I
would be happy to hear from anyone who is inter- 17(8):485-582.
Gomberg, D. A. 1977. "A Computer-Oriented System for
ested in more information. Music Printing." Computing in the Humanities
11:63-80.
Gourlay, J. S. 1986. "A Languagefor Computer Printing."
Acknowledgients Communications of the ACM 29(5):388-401.
Maxwell, J. T., and S. M. Omstein. 1984. "Mockingbird:
I would like to thank HowardNichols, with whom I A Composer's Amanuensis." BYTE.9(1):384-401.
designed the original simple text language for the Read, G. 1982. Music Notation. London:
synthesizer. Howardprovidedmuch needed criticism Victor Gollancz Ltd.
of this paperand made many suggestions along the Ross, T. 1987. (Teach Yourself) The Art of Music
way. Thanks also go to Michael Norris for permis- Engravingand Processing. Hansen Press.

72 Computer Music Journal

This content downloaded from 132.77.150.148 on Mon, 14 Dec 2015 07:07:55 UTC
All use subject to JSTOR Terms and Conditions