-
Notifications
You must be signed in to change notification settings - Fork 662
Microtonal Support
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:
Glyph | Mnemonic | Description | Notation System(s) |
---|---|---|---|
# | 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 | |
ashs | Arabic-Sharp-Half-Sharp (1.25 tones sharp) | Arabic | |
afhf | Arabic-Flat-Half-Flat (1.25 tones flat) | Arabic | |
+- | 5 commas sharp | Turkish | |
++- | 8 commas sharp | Turkish | |
bs | 5 commas flat | Turkish | |
bss | 8 commas flat | Turkish | |
bbs | Unknown | Unknown | |
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.
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.
[ VexFlow.com ] [ API ] [ GitHub Repo ] [ Contributors ]