Construction by programming


By Jørgen Mortensen

In the language of computer programming, a series of numbers in a particular sequence, which is what an infinity series actually is, is called an array. Each number has it place, or 'address'. If we call our array pn, the first address will be pn[0], the next number will have the address pn[1], the next pn[2]. The note number 'i' will have the address pn[i]. It is generally the case, as here, that one starts with 0.

The  first two elements in the series are G and A flat. If we establish the baseline at G, A flat will have the value +1.

In this way we have:

    pn[0] = 0
    pn[1] = 1

In order to find the next note, pn[2], we have simply to recall how we constructed a series using projection. We took the interval between the two first notes - in mathematical terms, (pn[1] - pn[0]) - and subtracted this from the first note. In other words:

    pn[2] = pn[0] - (pn[1] - pn[0]) = 0 - (1 - 0) = -1

We found the next tone by adding the interval to the second note:

    pn[3] = pn[1] + (pn[1] - pn[0]) = 1 + (1 - 0) = 2

A complete overview of the first 10 elements would be as follows:

    pn[0] = 0

    pn[1] = 1


    pn[2] = pn[0] - (pn[1] - pn[0]) = 0 - (1 - 0)

    = -1

    i = 1

    pn[3] = pn[1] + (pn[1] - pn[0]) = 1 + (1 - 0)

    = 2


    pn[4] = pn[2] - (pn[2] - pn[1]) = -1 - (-2)

    = 1

    i = 2

    pn[5] = pn[3] + (pn[2] - pn[1]) = 2 + (-2)

    = 0


    pn[6] = pn[4] - (pn[3] - pn[2]) = 1 - (3)

    = -2

    i = 3

    pn[7] = pn[5] + (pn[3] - pn[2]) = 0 + (3)

    = 3


    pn[8] = pn[6] - (pn[4] - pn[3]) = -2 - (-1)

    = -1

    i = 4

    pn[9] = pn[7] + (pn[4] - pn[3]) = 3 + (-1)

    = 2

At the extreme right a counter has been added, 'i'. This is set to 1 when the first pair has been calculated, to 2 at the next pair, etc.

This counter can be used to set up a general formula:

    pn[2*i]

    = pn[2*i -2] - (pn[i] - pn[i-1])

    pn[2*i +1]

    = pn[2*i -1] + (pn[i] - pn[i-1])


    given that i

    = 1, 2, 3, 4, 5, 6, ..... .

Having come so far, one has only to make what computer programmers call a 'loop' in order to determine the value of the numerator, 'i', and all the numerical values in the series. On this basis one can then get a computer to play the notes through a synthesiser.

It is really surprising how little text one needs in order to programme this sequence, and this fact reveals something of the simplicity of the infinity series. Read more about this in Appendix 1 of: Jørgen Mortensen: Per Nørgårds Tonesøer, (Per Nørgård's Tone Lakes), VM 1992.