This functor defines Lilypond output and Explorer output actions for 22 ET.
Functor
Out ("/Users/torsten/oz/music/Strasheela/strasheela/trunk/strasheela/contributions/anders/ET22/source/Output.oz")
Import
- Explorer
- Resolve
- Path at "x-ozlib://anders/tmp/Path/Path.ozf"
- GUtils at "x-ozlib://anders/strasheela/source/GeneralUtils.ozf"
- Out at "x-ozlib://anders/strasheela/source/Output.ozf"
- Score at "x-ozlib://anders/strasheela/source/ScoreCore.ozf"
- HS at "x-ozlib://anders/strasheela/HarmonisedScore/HarmonisedScore.ozf"
- DB at "DB.ozf"
- ET22 at "../ET22.ozf"
Export
Define
proc{RenderAndShowLilypond MyScore Args}
Lilypond output for 22 ET.
Args:
'upperMarkupMakers': a list of unary functions for creating textual markup placed above the staff over a given score object. Each markup function expects a score object and returns a VS. There exist four cases of score objects for which markup can be applied: note objects, simultaneous containers of notes (notated as a chord in Lilypond), chord objects and scale objects. The definition of each markup function must care for all these cases (e.g., with an if expression test whether the input is a note object and then create some VS or alternatively create the empty VS nil).
'lowerMarkupMakers': same as 'upperMarkupMakers', but for markups placed below the staff.
In addition, the arguments of Out.renderAndShowLilypond are supported.
Please note that RenderAndShowLilypond is defined by providing Out.renderAndShowLilypond the argument Clauses (via HS.out.renderAndShowLilypond) -- additional clauses are still possible, but adding new note/chord clauses will overwrite the support for defined by this procedure.
proc{SetEnharmonicNotationTable Table}
The enharmonic notation for 22 ET can be customised by specifying for each numeric 22 ET pitch class how it is notated. Note that this setting will be fixed throughout the score though (e.g., pitch class 7 may be notated as 'E\\', but then it is never 'D#'). The enharmonic notation is specified by a record which maps pitch class integers to pitch names. See ET22.pc and friends for an explanation of the pitch names. The default are the default pitch names in Scala for 22 ET (using E22 notation system).
Note that the lowest feature in the table is 0 (i.e., 'C') and not 1 (i.e. Table is not a tuple if all pitch classes are specified, a tuple has no feature 0).
NB: an error will occur if you fail to specify a notation for a 22 ET pitch class in your scores, so Table should specify a notation for every 22 ET pitch class.
proc{AddExplorerOut_ChordsToScore Args}
Creates an Explorer action for outputting a pure sequence of chords. This is a version of HS.out.addExplorerOut_ChordsToScore, customised for 31 ET. Please see the documentation of HS.out.addExplorerOut_ChordsToScore for further details such as supported arguments.
proc{AddExplorerOuts_ArchiveInitRecord }
Adds ET22 declaration on top of *.ssco file and calls {HS.db.setDB ET22.db.fullDB}
End