## classes.json

classes.json groups glyphs together into classes, so that software developers can handle similar glyphs (e.g. noteheads, clefs, flags, etc.) in a similar fashion. Here is an excerpt of this file:

    {
    ...
      "clefs": [
        "gClef",
        "gClef15mb",
        "gClef8vb",
        "gClef8va",
        "gClef15ma",
        "gClef8vbOld",
        "gClef8vbCclef",
        ...
      ],
      "noteheads": [
        "noteheadDoubleWhole",
        "noteheadWhole",
        "noteheadHalf",
        "noteheadBlack",
        "noteheadNull",
        ...
      ],
      "flags": [
        "flag8thUp",
        "flag8thDown",
        "flag16thUp",
        "flag16thDown",
        "flag32ndUp",
        "flag32ndDown",
        ...
      ],
    ...
    }

Glyphs are listed within their classes using the names specified in glyphnames.json. Not all glyphs are contained within classes, and the same glyph can appear in multiple classes.

The classes defined at present are as follows:

Class name | Description
--- | ---
accidentals | Contains all glyphs in all accidentals ranges.
accidentals24EDOArrows, accidentals53EDOTurkish, accidentals72EDOWyschnegradsky, accidentalsAEU, accidentalsArabic, accidentalsHelmholtzEllis, accidentalsJohnston, accidentalsPersian, accidentalsSagittalAthenian, accidentalsSagittalDiacritics, accidentalsSagittalMixed, accidentalsSagittalPromethean, accidentalsSagittalPure, accidentalsSagittalTrojan, accidentalsSims, accidentalsStandard, accidentalsSteinZimmermann, accidentalsStockhausen | These classes contain useful subsets of accidentals, each class essentially providing all of the accidentals glyphs required for a given convention or system.
articulations | Contains all articulations, regardless of whether they are intended to be positioned above or below the note/staff.
articulationsAbove, articulationsBelow | Contains only those articulations that are positioned either above or below the note/staff, as appropriate.
combiningStaffPositions | Contains glyphs that are available in ligatures with the Combining staff position glyphs, in fonts intended for use in text-based applications. (N.B. not implemented in the current Bravura font, which is intended for scoring applications.)
clefs | Contains all clefs, regardless of the position on the staff at which they are typically positioned.
clefsC | Contains all C clefs.
clefsF | Contains all F clefs.
clefsG | Contains all G clefs.
dynamics | Contains the glyphs in the Dynamics range, which should be scaled differently to other glyphs in fonts designed for use in text-based applications.
forTextBasedApplications | Contains glyphs that scoring applications can generally ignore, i.e. these are useful for text-based applications (or for runs of normal text in scoring applications). This contains glyphs like the Beamed groups of notes range, pre-composed stems, pre-composed staff lines, etc.
multiGlyphForms | Contains all glyphs that are designed to be used in combination to produce larger forms, e.g. ornaments, wiggly lines, etc.
noteheads | Contains all glyphs in all noteheads ranges.
noteheadSetCircled, noteheadSetCircleX, noteheadSetDefault, noteheadSetDiamond, noteheadSetDiamondOld, noteheadSetHeavyX, noteheadSetLargeArrowDown, noteheadSetLargeArrowUp, noteheadSetNamesPitch, noteheadSetNamesSolfege, noteheadSetPlus, noteheadSetRoundLarge, noteheadSetRoundSmall, noteheadSetSacredHarp, noteheadSetSlashed1, noteheadSetSlashed2, noteheadSetSlashHorizontalEnds, noteheadSetSlashVerticalEnds, noteheadSetSquare, noteheadSetTriangleDown, noteheadSetTriangleLeft, noteheadSetTriangleRight, noteheadSetTriangleUp, noteheadSetWithX, noteheadSetX, parenthesesNotehead | These classes contain useful subsets of noteheads, each class providing a set of noteheads, e.g. the notehead to be used for quarter notes and shorter, for half notes, for whole notes, etc., for different conventions.
octaves | Contains all glyphs relating to octave lines.
ornaments | Contains all pre-composed ornament glyphs, excluding the component parts in the Combining strokes for trills and mordents range.
pauses | Contains all fermatas/caesuras, regardless of whether they are intended to be positioned above or below the note/staff.
pausesAbove, pausesBelow | Contains only those fermatas that are positioned either above or below the note/staff, as appropriate.
rests | Contains all rests glyphs.
stemDecorations | Contains glyphs that are designed to be positioned on stems. This is a useful class, because the individual glyphs that are intended to be drawn on stems are dotted around various ranges.
wigglesArpeggiato, wigglesArpeggiatoDown, wigglesArpeggiatoUp, wigglesCircularMotion, wigglesQuasiRandom, wigglesTrill, wigglesVibrato, wigglesVibratoVariable | These classes contain useful subsets of the Multi-segment lines range.