Ekmelos Font

Download Ekmelos 2.4

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.4 includes 744 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 Ekmelos project and the Tables with the 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 only with the classes that include glyphs of the Ekmelos font and extended with classes for optional glyphs and Unicode characters:
  • accidentalsRHM: Accidentals of the Richter Herf / Maedel notation.
  • letter, number, punctuation, separator, symbol: Unicode characters for textual alternatives to accidentals. The classes correspond to the Unicode “General Categories” L, N, P, Z, S.
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 Unicode character, its 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": Name of the block range including the glyph; one of:
    "0000"Basic latin (ASCII)U+0020..U+007F
    "2000"General PunctuationU+2000..U+206F
    "2600"Miscellaneous symbolsU+2600..U+26FF
    "E000"Recommended characterU+E000..U+F3FF
    "F400"Optional glyphU+F400..U+F8FF
    "1D100"Musical symbolsU+1D100..U+1D1FF
  • "classes": List of classes that include this glyph.
  • "ligature": List of glyph names of the components. This is defined only for ligatures. Note: The latest version of Ekmelos does not include ligatures.
  • "ekmelily": True if the glyph is used in one or more predefined notation styles of Ekmelily. Else it is not defined.
ekmelily.json
Groups the glyphs in the Ekmelos font together into predefined notation styles and tunings supported by Ekmelily:
{
  "EDO": {
    "NOTATION": {
      "GLYPHNAME": DEGREE,
      ...
    },
    ...
  },
  ...
}

  • EDO is one of the equal-temperament tunings 12, 19, 24, 31, 36, 48, or 72.
  • NOTATION is a predefined notation style, e.g. sag, rhm.
  • DEGREE is the degree of the alteration that the glyph (accidental) represents in the respective EDO and NOTATION. The same GLYPHNAME can appear in multiple notation styles and tunings, possibly representing different degrees.
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.