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. It is in development.

The latest version 1.14 contains 318 characters, primarily accidental symbols representing semi-, third-, quarter-, sixth-, and twelfth-tone degrees. The standard 12-EDO accidentals (sharp, flat etc.) correspond to the Feta font in LilyPond. Many others are arrow-like signs, upward and downward, to be placed either alone or in combination to the left of a standard 12-EDO accidental. Also Basic Latin (ASCII) punctuation marks and lowercase letters are included for use as alternative accidentals. The character encoding is compliant with SMuFL1 version 1.20. But it currently does not meet all the SMuFL guidelines for the font metrics.

All characters defined in Ekmelos are listed in the file Ekmelos.pdf in the download package.
See also the collection of files for Ekmelos.

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

Installation

  • On Windows, drag the file Ekmelos.otf into "C:\Windows\Fonts".
    On OS X, copy the file EkmelosMac.otf into "/Library/Fonts".
  • For use with LilyPond (Ekmelily), the LilyPond 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:
    E000 Recommended Character U+E000..U+F3FF
    F400 Optional Glyph U+F400..U+F8FF
    0000 Basic Latin (ASCII) U+0000..U+007F
    2600 Miscellaneous Symbols U+2600..U+26FF
    1D100 Musical Symbols U+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.