This functor extends the contribution HS, and provides abstractions for composing music in 31-tone equal temperament. For more information on this interesting temperament visit http://www.tonalsoft.com/enc/number/31edo.aspx or http://en.wikipedia.org/wiki/31_equal_temperament.
This functor defines a few procedues for a convenient 31 ET notation and exports several subfunctors.
Functor
Import
- HS at "x-ozlib://anders/strasheela/HarmonisedScore/HarmonisedScore.ozf"
- DB at "source/DB.ozf"
- Out at "source/Output.ozf"
- C at "source/Convenience.ozf"
- Score at "source/Score.ozf"
Export
Define
fun{Acc SymAcc}
Transforms symbolic accidental (atom) into the corresponding accidental integer. The following symbolic accidentals are supported: '' is natural (!), '|' is 'half sharp', '#' is sharp, '#|' is 1 1/2 sharp, 'x' is double sharp, ';' is half flat, 'b' is flat, 'b;' is 1 1/2 flat, 'bb' is double flat.
Note: Returned value depends on {HS.db.getAccidentalOffset}, using the database defined by ET31.db.fullDB is recommended.
This accidental notation stems from the Scala software, see the Scala documentation for details (hexample.html, or set HELP SET NOTATION).
fun{PC SymPC}
Tranforms a conventional symbolic note name to the corresponding 31 ET pitch class. Notation of the symbolic note names: 'D' is d natural, 'D|' is d 'half sharp', 'D#' is d sharp, 'D#|' is d 1 1/2 sharp, 'Dx' is d double sharp, 'D;' is d half flat, 'Db' is d flat, 'Db;' is d 1 1/2 flat, 'Dbb' is d double flat.
NB: the following pitch class names are undefined (otherwise, the meaning of octave would become inconsistent): any flattened C and any B raised higher than B#.
fun{PCName MyPC}
Expects a PC (an int) and returns a list of the corresponding symbolic note names (a list of atom). Complements function PC.
fun{Pitch SymPC#Octave}
Transforms a symbolic pair SymPC#Octave into the corresponding pitch (an int). SymPC is a pitch class symbol (an atom) as expected by the function PC, octave is an integer. The returned value depends on PitchesPerOctave.
End