Ekmelos Font

Latest version: 1.14

Download Ekmelos

Ekmelos is a Unicode typeface for the notation of microtonal music, in particular in the 72-tone equal-temperament system (72-EDO, Ekmelic System), as well as in the included sixth-, quarter-, and third-tone systems (36-,24-,18-EDO). It is designed above all for use together with Ekmelily for which it is the default font used as an addition to LilyPond's Feta font. Thus it contains almost only accidental symbols – primarily those representing semi-, third-, quarter-, sixth-, and twelfth-tone degrees – and only a small selection of other symbols (clefs, note heads). Also Basic Latin (ASCII) punctuation marks and lowercase letters are included for use as alternative accidentals.

The latest version 1.14 defines 318 characters. Ekmelos.pdf in the download package shows a complete list. See also the collection of files for Ekmelos and the table of Alterations. Ekmelos is used also by ekmelib for typesetting; see Introduction and Ekmelic Series.

The character encoding is compliant with SMuFL1 version 1.20. But it does not meet all the SMuFL guidelines for the font metrics.

Ekmelos is released under the SIL Open Font License, Version 1.1.

Installation

Install the OpenType font on your system:

  • On GNU/Linux, copy the file Ekmelos.otf e.g. to /usr/local/share/fonts (or a subfolder), and rebuild the font cache with fc-cache -f -v (or reboot).
  • On OS X, copy the file EkmelosMac.otf to /Library/Fonts.
  • On Windows, drag the file Ekmelos.otf to C:\Windows\Fonts.

For use with LilyPond (Ekmelily), LilyPond's own font cache must be deleted, i.e. the folder ~/.lilypond-fonts.cache-2 (on Windows %HOMEPATH%\.lilypond-fonts.cache-2) must be emptied or completely deleted. So at the next execution of LilyPond this cache will be rebuilt from scratch inlcuding the new font. This applies also after each update with a new version of Ekmelos.

Metadata

The folder metadata in the download package contains the following files with metadata for Ekmelos, in JSON format 2 and as LilyPond include file (ily).

metadata.json
Provides font-specific metadata of the Ekmelos font compliant with SMuFL. It includes the keys "fontName", "fontVersion", "engravingDefaults", "glyphBBoxes", "ligatures", and "optionalGlyphs" (but not "glyphsWithAnchors", "glyphsWithAlternates", and "sets").
classes.json
Corresponds to the SMuFL file of the same name but with the classes that include glyphs of the Ekmelos font; in particular, classes with optional glyph:
  • accidentalsRHM: Newly defined class with the accidentals of the Richter Herf / Maedel notation.
  • accidentalsSims: Extended with the ligatures of Sims accidentals for quarter- and sixth-tone degrees.
glyphnames.json
Corresponds to the SMuFL file of the same name but with the glyph names in the Ekmelos font. The value of "description" is either taken from SMuFL, or for a ligature, a comma-separated concatenation of its components' descriptions, or for a Basic Latin (ASCII) character, its Unicode character name (in lowercase).
glyphdata.json
Provides summarized metadata of the glyphs in the Ekmelos font. This is an extended version of glyphnames.json with the following keys for each glyph name:
  • "codepoint", "alternateCodepoint", and "description" as in glyphnames.json.
  • "code": Codepoint as a numeric value.
  • "block": Start (as a hex string) of the block range that includes the glyph:
    E000Recommended CharacterU+E000..U+F3FF
    F400Optional GlyphU+F400..U+F8FF
    0000Basic Latin (ASCII)U+0000..U+007F
    2600Miscellaneous SymbolsU+2600..U+26FF
    1D100Musical SymbolsU+1D100..U+1D1FF
  • "classes": List of classes including this glyph.
  • "ligature": List of glyph names of the components (only for ligatures).
  • "ekmelily": Structure with all notation styles predefined in Ekmelily which use the glyph as an accidental (or empty for unused glyphs). ACCIDENTAL is the index of the accidental type (an integer in the range 0..34, used in the Ekmelic Music Tables.)
    "ekmelily": {
      "STYLENAME": ACCIDENTAL,
      ...
    }
ekmelily.json
Groups the glyphs in the Ekmelos font together into the notation styles predefined in Ekmelily:
"STYLENAME": {
  "GLYPHNAME": "ALTERATION",
  ...
}

STYLENAME is a predefined notation style, e.g. rhm. ALTERATION is the tone fraction (inflection) in the range −5/4 thru +5/4 that the glyph (accidental) represents in the notation style STYLENAME. The same GLYPHNAME can appear in multiple notation styles, in each representing another alteration.
ekmelos-map.ily
Provides a Scheme alist with code points mapped onto the glyph names in the Ekmelos font:
#(define ekmelos-map '(
  ("GLYPHNAME" . CODEPOINT)
  ...
))
  1. SMuFL (Standard Music Font Layout) is a specification for music symbols, initiated by Steinberg and now developed by the W3C Music Notation Community Group. It uses the Unicode Private Use Area (PUA) in the Basic Multilingual Plane (BMP) starting at code point U+E000.
  2. See json.org for more information about the JSON format.