Ekmelos Font

Download Ekmelos 2.3

Ekmelos is a music font designed primarily for use together with Ekmelily – an extension for LilyPond in order to provide accidental symbols which are not defined in LilyPond's own Emmentaler font for the notation of microtonal music.
The font is compliant with SMuFL1 (except for versions prior to 1.0).

Ekmelos is licensed under the SIL Open Font License, version 1.1, which means it is free to use, redistribute, and modify, but please do respect the conditions set out in the license.

Repertoire

Ekmelos is in development. The latest version 2.3 includes 724 glyphs. Most of them (430) are accidentals. Currently, only a selection of important other musical symbols is defined (staves, brackets, dividers, barlines, repeats, clefs, note heads, individual notes, flags, rests, and arrows).

The font includes, beside musical symbols, a selection of Unicode characters for textual alternatives to the accidentals, as used in the Monzo HEWM notation and in the Sagittal Pure-long and Mixed-short ASCII representation, e.g. the small letter v or \!/ for a quarter-tone down.

Starting at code point U+F600, the font includes some “Optional glyphs”: among others, the accidentals of the Richter Herf / Maedel notation which are used in the predefined notation style rhm of Ekmelily. These glyphs are private supplements and subject to change in future versions.

See the file Ekmelos.pdf in the download package for all glyphs defined in Ekmelos.
See also the complete Ekmelos project and the table of Alterations.

Some accidental symbols from Ekmelos:

  • Gould:
  • Stein / Zimmermann:
  • Sims / Maneri: 
  • Richter Herf / Maedel:
  • Sagittal:. . .
  • Wyschnegradsky:. . .. . .

Installation

Install Ekmelos like other OpenType fonts 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 which include glyphs of the Ekmelos font; among others, the newly defined class accidentalsRHM with the accidentals of the Richter Herf / Maedel notation.
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:
    0000Basic latin (ASCII)U+0020..U+007F
    2000General PunctuationU+2000..U+206F
    2600Miscellaneous symbolsU+2600..U+26FF
    E000Recommended characterU+E000..U+F3FF
    F400Optional glyphU+F400..U+F8FF
    1D100Musical symbolsU+1D100..U+1D1FF
  • "classes": List of classes including this glyph.
  • "ligature": List of glyph names of the components. There are currently no ligatures in the Ekmelos font.
  • "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 tables on the Ekmelic System.)
    "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, 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.