Overview of Scales and Scale References

Heinrich Taube

Zentrum fuer Kunst und Medientechnologie
Ritterstr. 42
7500 Karlsruhe 1
Germany
		
		Mail: hkt@zkm.de
		Fax: +49 721 9340 39 
		Vox: +49 721 9340 300

___________________________________________________________

Scale Classes

Every reference to a scale in Common Music is made with respect to some particular scale object.  There are currently three types of scales defined in the system: equal tempered, gapped, and scales with no fixed interval relation. The defscale macro creates any of these types of scales.  See the dictionary entry for defscale for further information.  The file contrib/defscale.lisp contains a number of examples of  scales that employ non-standard tunings.

The Standard Chromatic Scale

The system uses defscale to predefine the standard chromatic scale over a 10 octave range, from C00 to B9.  The global variable *standard-scale* provides a default scale context for note references and is initially set to the standard chromatic scale scale.  You are free to bind *standard-scale* to a differenct scale.  See the documentation on in-scale and *standard-scale* for further details.

Note Names in the Standard Chromatic Scale

The standard chromatic scale implements a common naming convention.  Note names A B C D E F G may be optionally qualified by a trailing accidental F (flat), S (sharp), N (natural) followed by an optional octave number:  00 through 9.  Inside the item stream constructors notes, pitches and degrees the octave number is sticky, so that it is only necessary to supply an octave number when the octave changes:

<cl> (setf x (notes c1 d e c2 d e))
#<CYCLIC-NOTE-STREAM 131361431> 

<cl> (read-items x)
(C1 D1 E1 C2 D2 E2) 

Scale References: Note, Pitch and Degree

Every reference to a scale in Common Music is made with respect to a particular scale object.  A scale reference may be a note (symbolic name), a pitch (floating point frequency), or a degree (integer scale position).  The system defines three functions: note, pitch and degree to provide a mapping between the reference types.  The function note returns the symbolic note name of any reference:

<cl> (note 'a4)
A4

<cl> (note 440.0)
A4

<cl> (note 69)
A4

The function pitch returns the floating point frequency of a scale reference:

<cl> (pitch 'a4)
440.00018

<cl> (pitch 440.0)
440.00018

<cl> (pitch 69)
440.00018

The function degree returns the ordinal position of the reference:  

<cl> (degree 'a4)
69

<cl> (degree 440.0)
69

<cl> (degree 69)
69

The item stream constructor macros notes, pitches and degrees create items streams that arrange scale references into patterns.  See the documentation on these item stream constructors for further details.

Chords

Chords are notated in Common Music by delimiting the chord members inside square brackets [] or by using the chord macro.   Elements in a chord may be of type note, degree, pitch or interval. For example, the two chords in the following pitch stream both describe a C major chord:
    
<cl> (setf x (pitches [c4 e g] [60 64 67]))
#<CYCLIC-PITCH-STREAM 133527221> 

<cl> (read-items x)
(261.62555 329.6276 391.99554 261.62555 329.6276 391.99554) 

See:
note, notes, degree, degrees, pitch, pitches defscale, in-scale