Ekmelos Font

Download Ekmelos 2.5

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 Feta 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

See all glyphs in Ekmelos or also Ekmelos.pdf in the download package.

Ekmelos is in development. The latest version 2.5 includes 829 glyphs. Most of them are accidentals. Only a selection of important other musical symbols is defined (some clefs, note heads, flags, rests, staves, barlines, etc.)

The font includes some “Optional glyphs” starting at code point U+F600. 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.

Beside musical symbols, the font includes the Unicode Basic Latin (ASCII) characters for textual alternatives to the accidentals, as used in the 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.

See also the Ekmelos project and the Tables with alterations.

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 the JSON format and as LilyPond include file (ily).

metadata.json
Provides font-specific metadata for Ekmelos 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 Ekmelos and the following supplements:
  • accidentalsRHM: Accidentals of the Richter Herf / Maedel notation.
  • accidentalsMedRen: Medieval and Renaissance accidentals. These are defined in SMuFL, however without their own class.
  • 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 only with the glyph names of Ekmelos.
The value of "description" is either taken from SMuFL, or for a Unicode character, the character name in lowercase, or for a ligature, a comma-separated concatenation of its components' descriptions. Note: The latest version of Ekmelos does not include ligatures.
glyphdata.json
Provides summarized metadata of the glyphs of Ekmelos. 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:
    "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 of Ekmelos together into tunings and predefined notation styles 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.
  • GLYPHNAME can appear in multiple tunings and notation styles, possibly representing different degrees.
ekmelos-map.ily
Provides a Scheme alist with code points mapped onto the glyph names of Ekmelos:
#(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) starting at code point U+E000.