Ekmelos Font

Download Ekmelos 2.7

Ekmelos is a music font compliant with SMuFL1.

It has been initially designed for use in conjunction with Ekmelily (an extension for LilyPond) and ekmelib, to provide mainly accidental symbols for the notation of microtonal music. Meanwhile, it includes over 1000 symbols of several groups (clefs, noteheads, flags, articulations, rests, repeats, etc.)

The Ekmelos Font Software is a family consisting of four fonts:

  • Ekmelos
  • Ekmelos 12-EDO
  • Ekmelos 24-EDO
  • Ekmelos 72-EDO

The three "Ekmelos N-EDO" fonts are intended for use with ekmelib and provide only the symbols required for the supported tunings 12 / 24 / 72-EDO, thus reducing significantly the download volume.

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.

Ekmelos is created with FontForge 2.0. The WOFF2 fonts are created with woff2woff2.

Repertoire

The latest version 2.7 implements 1129 symbols. It 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 Symbols in Ekmelos, the Tables with alterations, and the Ekmelos project.

Installation

Install the OpenType font file Ekmelos.otf like other fonts on your system:

  • On GNU/Linux, copy the file 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 to /Library/Fonts.
  • On Windows, drag the file to C:\Windows\Fonts.

For use with 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 is also necessary after each update with a new version of Ekmelos.

Metadata

The folder metadata 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 (Optional glyphs).
  • accidentalsMedRen: Medieval and Renaissance accidentals. These are SMuFL Recommended characters, however without a class.
  • noteheadSetTick: Tick notehead intended for the notename t (metronome tick) in ekmelib (Optional glyph).
  • 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.
  • "ekmelib": True if the glyph is used in one or more tunings of ekmelib. Else it is not defined.
  • "ekmelily": True if the glyph is used in one or more predefined notation styles of Ekmelily. Else it is not defined.
ekmelib.json
Groups the glyphs of Ekmelos together into tunings supported by ekmelib:
{
  "EDO": [
    "GLYPHNAME",
    ...
  ],
  ...
}

  • EDO is one of the equal-temperament tunings 12, 24, or 72.
  • GLYPHNAME can appear in multiple tunings.
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.
  • GLYPHNAME can appear in multiple tunings and notation styles, possibly representing different degrees.
  • DEGREE is the degree of the alteration that the glyph (accidental) represents in the respective EDO and NOTATION.
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.