Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
VexFlow currently supports microtones in two areas: accidentals and key signatures.
VexFlow supports SOME microtonal accidentals. The limitation comes mainly from the usage of the Gonville music font that does not contain glyphs for many such accidentals. Of course, assembling a full set of accidentals used across musical cultures and traditions is a major undertaking in and of itself, and music engraving systems all vary in their support.
The microtonal accidentals that VexFlow supports are:
|#||sharp||Standard and all others|
|##||double sharp||Standard and all others|
|b||flat||Standard and all others|
|bb||double flat||Standard and all others|
|n||natural||Standard and all others|
|+||1 quarter-tone sharp||Arabic / Stein-Zimmermann|
|+||1 comma sharp||Turkish|
|++||3 quarter-tones sharp||Arabic / Stein-Zimmermann|
|bs||1 quarter-tone flat||Arabic|
|d||1 quarter-tone flat||Stein-Zimmermann|
|d||1 comma flat||Turkish|
|db||3 quarter-tones flat||Stein-Zimmermann|
|+-||5 commas sharp||Turkish|
|++-||8 commas sharp||Turkish|
|bs||5 commas flat||Turkish|
|bss||8 commas flat||Turkish|
|k||2-3 commas flat (koron)||Iranian|
|o||2-3 commas sharp (sori)||Iranian|
An example output from VexFlow is shown here. This is actually a screenshot from the VF test module "Accidental".
It is planned to further expand support for microtonal accidentals when Gonville is replaced with a more standard and comprehensive font, such as those that are SMuFL-compatible. SMuFL support is an ongoing topic for VexFlow. Once this happens, it will be trivial-ish to add new mnemonics to represent those accidentals.
Microtonal Key Signatures
VexFlow allows to specify key signatures that contain arbitrary accidentals, including microtonal ones, in place of the standard sharp and flat. An example output is shown here. This is a screenshot from the VF test module "KeySignature".
However, microtonal key signature support is not complete, because other musical traditions do not follow the canonical style of key signature layout. For example, Arabic musical notation includes key signatures such as Bb Eb F#. This is currently a work in progress.