Music-N Languages

The Music-N paradigm was introduced by Max Mathews as a result of his continuous iterations over his Music program. Out of all of them it was probably Music-V the one that had most impact on the community and most influenced the future evolution of computer music [Mathews, 1969]. Music-V was written in Fortran and could therefore run on any computer while previous attempts had been written directly in assembler and could only run on specific hardware. Music-V and its derivatives, thereafter known as Music-N languages, became popular in the 70's but are still in use today.

While designing Music-V, Max Mathews addressed two fundamental issues: first, the great amount of data needed to specify a sound function; and second, the need for a simple, powerful language to specify complex sequences of sound. The way he tried to give solution to these problems was to store functions to speed up computations, to use unit generator building blocks to provide flexibility, and to define the concept of note for describing sound sequences [Pope, 2004].

The concept of unit generator is a central issue in Music-N languages. A unit generator can be defined as the minimum functional entity in a Music-N system. Traditional unit generators receive input control signals and produce sound at their outputs and include functionalities such as simple oscillators or envelope generators. Unit generators can be combined into composite structures called instruments or patches.

Another fundamental issue in Music-N languages is that a sound structure is defined or programmed in two different parts: the instrument or orchestra definition and the score or note list. This model implicitly assumes that the composer can express everything as a list of notes and that all sound processing or generation can happen inside an instrument. In the synthesis process the composer uses a group of sound objects (or instruments) known as the orchestra. This orchestra is controlled from a score and is defined using a programming language with specific functions. These functions or modules can be organized and combined in multiple ways in order to define instruments. These instruments sounds can be controlled from the score parameters or from other parameters in the same instrument. A traditional Music-N orchestra file is very similar to a program source code. The score initializes the system (with information usually contained in the header) and then contains a list of time-stamped notes that control the different instruments.

In this section we will present some music languages that comply to the Music-N paradigm although most of them extend it in some particular way.