Musical Rudiments


This attraction focuses on three rudimentary elements of music: pitch, time, duration. It also explores the operations used to manipulate these elements. A Musical Calculator applet allows you to cascade together operations which derive new pitch or duration sequences from known sequences provided by you.

Although the musical elements discussed on this page are rudimentary, the level of discussion is advanced. This assumes you are already familiar with how pitches are located on a keyboard, that you are able to identify intervals between pitches, and that you know how rhythms are notated. If these concepts are unfamiliar to you, there are other sites that can help you; for example

About Pitch

The third most fundamental element of musical theory is pitch. The elements more fundamental than pitch are time and duration, but theorists tend to ignore those things.

Our earliest lessons in musical theory teach us that pitches have letter names, accidentals, and registers. We learn that the letter names identify white notes on a keyboard, and that the letter names repeat from register to register. We discover that letter names in different registers share a ‘sameness’ that allows us to talk about a letter name while disregarding its register. This discovery brings us to the notion of a scale degree.

The other notes on a keyboard, the black ones, don't have proper letter names. At least not in English. Instead, we describe them as alterations of white notes. So the black note between A and B is an A-sharp, but it is also a B-flat. Medieval history teaches that the white notes were around for a couple of generations before the black notes started to creep in.

After learning to identify pitches, we learn about distances between pitches. Here the fun really begins. The distance between two pitches (or between two degrees) is called an interval. Intervals are measured in scale steps, starting with the unison. That is, a unison has 0 scale steps, a second has 1 scale step, a third has 2 scale steps, and so forth. Moreover, scale steps come in different sizes. There are whole tones and there are semitones. So it's not enough just to state the size of an interval, you also have to identify its quality.

To the newly initiated, all this complexity seems as arbitrary as English rules of spelling or German gender declensions. A radical revolutionary from the post World War II years might be inclined to throw it all out and start over. This was what actually happened with the postwar Serialists, both European composers associated with Darmstadt and American composers associated with the Columbia-Princeton Electronic Music Center. For the Serialists, at least in their theoretical writings, white and black notes where just artifacts of history. Their new system started with the chromatic scale, and treated all notes equally. Evoking the mathematical theory of groups, degrees of the chromatic scale became “pitch classes”. Thus D-natural became pitch-class #2, B-flat became pitch-class #10, and the interval between the two notes was no longer a minor sixth (neither an augmented fifth) but rather, simply, 8.

Serialists also co-opted the Emancipation of the Dissonance, changing the latter from a doctrine of liberation into a doctrine of denial. “Perfection” as an interval quality was banned from the vocabulary. Octaves became the new devil in music, with rules for their neutralization. Niceties of consonance and disssonance (which strangely seemed to correlate with the now-disparaged interval qualities) now became irrelevant — intervals were all just resources.

So much for theory, what about practice? Attempts to radicalize performance with new notations based on the chromatic scale have never caught on with players. It is not just the force of tradition. We have already seen that black and white notes are intrinsic to the keyboard layouts. The same goes for woodwind fingerings and especially for the chromatic harp. One should also acknowledge that the system of musical notation which began with Guido d'Arezzo, which was perfected in the ars nova, is itself a system of graphic notation. The musical lines go up and down, but by scale steps rather than chromatic steps. This affords compactness and, for those who hear notated pitches in their heads (I am not one of those people), something more. Because contrary to Serialist doctrine there are sonorous qualities associated with scale-step intervals: Octaves, fifths, and fourths are consonant in one way. Thirds and sixths are consonant in another. Seconds and sevenths are dissonant. And the real devil in music, the tritone, is easy enough to pick out.

Degree and Pitch Elements

If you want to import your score data into a graphical score editor such as Finale, you have to accomodate letter names and accidentals. Therefore my own computer-music applications rely on elements that incorporate these attributes. There are two. The Degree element is a register-free entity which combines a letter name with an accidental. The Pitch element embeds a Degree, which it supplements with an octave number and a cents deviation.


Notation of the Degree element follows Alan Ashton's Linear Music Code. Each letter name is associated with a step and a chroma. The term “chroma” was coined by Jim Tenney. “Chroma” has the same meaning as “pitch-class” — which latter term I do not use.

Letter NameStepChroma

Each accidental is associated with a chromatic adjustment:

Double Flat!!-2
Double Sharp##2

Under the hood, operations on Degree elements manipulate the step and the chroma, then adjust the accidental accordingly. Thus to add E! to F#, the framework first adds the step values 2 and 3, obtaining step #5 (A). It next adds the chroma values 4 and 5, obtaining 9. The closing step is to compare the chroma for letter-name A to this derived chroma. Since difference between the two values is 0, the appropriate accidental is a natural. If the chromatic distance threatens to exceed two semitones, the framework respells the note.

Notice that the framework treats any Degree as a displacement from C natural. Thus “C%” also represents a perfect unison, “D!” is an ascending minor second (or descending major seventh) and “C!” is a descending augmented unison (or ascending diminished octave).


The Pitch element combines a Degree with an octave number and a cents deviation. From the octave number, the framework is able to determine both the chromatic displacement from middle C and the frequency in cycles per second (Herz) relative to A4=440. Operations on Pitch elements apply principles similar to operations on Degree elements. Like Degree elements, Pitch elements can be both absolute locations on the keyboard (or in the cracks between keys) and relative distances between other Pitch elements.

Degree and Pitch Operations

The musical calculator implements the following operations on Pitch and Degree elements:

UnaryNEGATEInvert a single Pitch input around middle C.
Invert a single Degree input around C natural.
BinaryADDTranspose the first input by interval represented by the second input.
BinaryMULTIPLYMultiply the chromatic values of the two inputs, then figure out an appropriate letter name and accidental.
BinaryREFLECTInvert the first input around the second input.
BinarySUBTRACTDerive the interval between the first and second inputs.
BinaryMAXIMUMFrom two Pitch inputs, select the one with the larger cents displacement from middle C.
From two Degree inputs, select the one with the larger chroma.
BinaryMINIMUMFrom two Pitch inputs, select the one with the smaller cents displacement from middle C.
From two Degree inputs, select the one with the smaller chroma.

About Ratios

Among musicians, the word “ratio” usually evokes frequency ratios. The trail of thought then leads to just intonation and to the compromises made by instrument builders to approximate ideal ratios on equal-tempered keyboards. It also leads to the ideas and compositions of Harry Partch.

All of that is legitimate, but ratios apply equally well to time and duration. I refer specifically of the system of rhythmic notation that blossomed during the Ars Nova, which system remains in use today. This system began with the notion that there could be long neumes (longa) and short neumes (brevis), and that one could divide a long neume into either two or three short neumes. After a century or so, the system became more rigorous with the introduction of bracketed tuplets.

In my applications I take the whole note as unity, which means I assign it the ratio 1:1. From this basis any sequence of durations notatable using common rhythmic notation can be represented as a sequence of ratios. This is demonstrated in the following table:

[3        ]0:11:3
3:3 = 1:1
[5:3          ]0:13:40
6:40 = 3:206:40
12:40 = 3:103:40
15:40 = 3:8

Ratio Element

The Ratio element combines an integer numerator with an integer denominator. Under the hood, calculations are implemented using the fraction-handling methods we suffered through in grade school; for example, subtraction is undertaken by converting both denominators to their least common multiple, subtracting the numerators, and (when possible) simplifying. Ratios are always stored in simplest terms; thus if you ask for the ratio of 14 to 21, the framework will give you back 2:3.

The benefits of Ratio elements reveal themselves in applications associated with the framework I use to describe scores:

Ratio Operations

UnaryNEGATEIf the numerator is positive, flip it to negative; else if the numerator is negative, flip it to positive.
INVERTCreate a new Ratio with the input numerator as the new denominator and the input denominator as the new numerator.
BinaryADDTranspose the first input by interval represented by the second input.
MULTIPLYExpand the first input's intervals
REFLECTInvert the first input around the second input.
SUBTRACTDerive the interval between the first and second inputs.
MAXIMUMFrom two Pitch inputs, select the one with the larger cents value.
From two Degree inputs, select the one with the larger chroma value.
MINIMUMFrom two Pitch inputs, select the one with the smaller cents value.
From two Degree inputs, select the one with the smaller chroma value.

Scalars, Vectors, and Trees

The musical calculator manipulates scalars, which are single elements. It also manipulates vectors. A vector is a group containing one or more members. A member of a vector can be either a scalar or a vector in its own right. When vectors contain vectors, the resulting complex structure is known a tree. The branches of the tree are vectors, and the leaves of the tree are scalars. Each group contains zero or more members, and a group member can be a single element or a group in its own right. Other words for “vector” include “ordered set” “sequence” “series” and “array”. In music the appropriate terms include “chord”, “scale”, and “tone row”.

The basic constructive operation for a vector is to insert a new member at an indicated position. The basic deconstructive operation for a vector is to remove the existing member from occupying an indicated position. Although vectors are intrinsically ordered, they can easily be used to represent unordered sets. The thing to keep in mind with unordered sets is that they never list the same member twice. One can convert an ordered set into an unordered set using the DEDUP operation, which removes redundant members.

Binary operations on unordered sets include:

Notice that the basic construction and deconstruction of sets are covered by two of these essential four: UNION inserts new members into an unordered set, while EXCLUSION removes existing members.

The most common binary operation on ordered sets is CONCATENATION, which appends the members of vector B after the last member of vector A.

Permutations are unary operations which rearrange the members of a vector without affecting the vector's content. Permutations include:

The operations UNION, INTERSECTION, EXCLUSION, EXCLUSIVE_UNION, CONCATENATION, along with the permutations just listed, manipulate the top-level members of a vector. Operations like ADD, SUBTRACT, and MULTIPLY, by contrast, are distributive. For unary operations, the calulator simply works its way down the tree and applies the operation to each scalar leaf. For binary operations, the rules of distribution are as follows:

© Charles Ames Page created: 2013-09-01 Last updated: 2015-08-25