Top-level functor for 22 ET and related tunings with 22 pitches per octave (e.g., Paul Erlich's Pajara).
Functor
ET22 ("/Users/torsten/oz/music/Strasheela/strasheela/trunk/strasheela/contributions/anders/ET22/ET22.oz")
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: the empty atom '' is natural (!), '/' is a comma sharp, '\\' is a comma flat (two slash because of an escape character), '#\\' is a semitone minus a comma sharp, 'b/' is a semitone minus a comma flat, '#' is a semitone sharp and 'b' is a semitone flat.
Note: Returned value depends on {HS.db.getAccidentalOffset}, set the HS database to ET22.db.fullDB.
This accidental notation stems from the Scala software, see the Scala documentation (hexample.html or set HELP SET NOTATION).
fun{PC SymPC}
Tranforms a conventional symbolic note names to the corresponding 31 ET pitch class. Notation of the symbolic note names: 'C' is c natural, 'C/' is c 'comma sharp', 'C#\\' is c sharp flattened by a comma, 'C#' is c sharp, 'C//' is c comma flat, 'Cb\' is c flat raised by a comma, 'Cb' is c flat.
NB: the following pitch class names are undefined (otherwise, the meaning of octave would become inconsistent): any flattened C and any raised 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