Microtonal Support - 0xfe/vexflow GitHub Wiki

VexFlow currently supports microtones in two areas: accidentals and key signatures.

Microtonal Accidentals

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)
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%23.png # sharp Standard and all others
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%23%23.png ## double sharp Standard and all others
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/b.png b flat Standard and all others
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/bb.png bb double flat Standard and all others
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/n.png n natural Standard and all others
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%2B.png + 1 quarter-tone sharp Arabic / Stein-Zimmermann
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%2B.png + 1 comma sharp Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%2B%2B.png ++ 3 quarter-tones sharp Arabic / Stein-Zimmermann
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/bs.png bs 1 quarter-tone flat Arabic
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/d.png d 1 quarter-tone flat Stein-Zimmermann
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/d.png d 1 comma flat Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/db.png db 3 quarter-tones flat Stein-Zimmermann
https://user-images.githubusercontent.com/33069673/73285990-26afbb80-41f7-11ea-8df7-e29a4e3254ae.png ashs Arabic-Sharp-Half-Sharp (1.25 tones sharp) Arabic
https://user-images.githubusercontent.com/33069673/73286221-7c846380-41f7-11ea-8b39-2bbc722a4242.png afhf Arabic-Flat-Half-Flat (1.25 tones flat) Arabic
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%2B-.png +- 5 commas sharp Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/%2B%2B-.png ++- 8 commas sharp Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/bs.png bs 5 commas flat Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/bss.png bss 8 commas flat Turkish
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/bbs.png bbs Unknown Unknown
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/k.png k 2-3 commas flat (koron) Iranian
https://github.com/infojunkie/music-l10n/raw/master/images/vexflow/o.png 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". https://github.com/infojunkie/music-l10n/blob/master/images/vexflow/microtones.png

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". https://github.com/infojunkie/music-l10n/blob/master/images/vexflow/keysig-altered.png

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.