5

I am trying to use an Open Type music font called Bravura Text. I want to use that font in an application that I am currently developing.

I did a little research on the features of Bravura Text and the documentation of the font points out, that it is possible to write notes and adjust their vertical position on a staff. There are special characters to raise/lower a notehead on the staff to represent the different tones.

I tried to use that features in text applications like Word 2013, Open Office Writer and Libre Office Writer. But I didn't manage to raise/lower the noteheads. All I can see is the notehead on its default position which is the tone B (on the middle line of a 5 line staff).

The documentation file, bravura-text.md, says the following about how to adjust vertical positions:

Bravura Text uses OpenType ligatures to modify the default vertical position of symbols. In OpenType fonts, ligatures are a kind of glyph substitution, where two or more glyphs are replaced with another single glyph. This is commonly used in text fonts to produce an elegant appearance for particular combinations of letters, such as "fi" or "fl".

In Bravura Text, ligatures are used to adjust the vertical position of individual symbols. First, you enter the code point corresponding to the amount by which you want to change the vertical position, and then you enter the code point for the symbol itself. Provided the application you are using supports OpenType ligatures, you should see the symbol appear at the desired vertical position.

I found out that the code points for the vertical positioning characters mentioned in the documentation are wrong, per a mailing list reply. The correct code points are U+EB90–U+EB9F.

In my example I use the correct code points as mentioned in the mailing list answer. I configured Word 2013 to enable ligatures and I entered the following code points: U+E014 U+EB9E U+E0A4

  • U+E014 ("staff5Lines") for displaying a 5 line staff
  • U+EB9E ("staffPosLower7") for lowering the notehead 7 semitones.
  • U+E0A4 ("noteheadBlack") for displaying a notehead on the lowered staff position

I think this is what the documentation says about entering notes with adjusted vertical positions, but this does not work in my text applications. All I see is the notehead on the middle staff line representing the note B.

Is there any Open Type font expert out there, who can help me in using this font? Do I miss something? How do I enter those ligatures the right way?

I wrote a question to the their mailing list, but didn't receive an answer yet.

I tried to use the font in Firefox and Chrome, with ligatures, kerning and some other OpenType features enabled. Here is the short HTML example:

<!DOCTYPE html >
<html lang="de">
<head>
<meta charset="UTF-8"/>
<style>
.opentype-on {
font-family: "Bravura Text";
font-size: 40pt;
font-weight: 300;
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
-moz-font-feature-settings: "liga" 1, "dlig" 1, "kern" 1, "salt" 1;
-ms-font-feature-settings: "liga", "dlig";
-webkit-font-feature-settings: "liga", "dlig";
-o-font-feature-settings: "liga", "dlig";
font-feature-settings: "kern", "liga", "dlig", "salt";
text-rendering: optimizelegibility;
}
</style>
</head>
<body>
<div class="opentype-on">
&#xE014;&#xEB9E;&#xE0A4;
</div>
</body>
</html>

The ligature character to lower the notehead still does not work. Other fonts using ligatures for "fi" or "ft" working as expected.

I am not sure, but should it really be as easy as typing the specific code points of a font to affect the position of the next character?

Is there any font expert that can confirm that this feature can work in a font?

Community
  • 1
  • 1
UNIQUEorn
  • 420
  • 6
  • 17
  • 1
    If you want to use precision typesetting, using word processor software is a really weird choice: they have terrible OpenType feature support. Use typesetting software instead, like InDesign, or XeLaTeX. And if you're developing your own software, make sure to use a modern font engine that supports OpenType feature toggling. Heck, even CSS3 can do ligatures better than Word at this point, so you could even try that. – Mike 'Pomax' Kamermans Jan 02 '16 at 05:37
  • Some preliminary investigation: the OpenType code indeed contains a substitution from `U+EB90 U+E0A4` to a glyph that displays the note one position higher, and similar for other notes. However, according to the tool I'm using, this is in an *unused table* – not in the `liga` ligatures table as the Markdown text says. (My own font tool could be wrong though, so I'll try to double-check this.) – Jongware Jan 02 '16 at 14:31
  • Thank you for this useful information. I tried to analyze the Bravura Text font in the FontForge application. I can see that the substitution you mentioned is defined and leads me to another character. FontForge displays this substitution definition under the view named "ligatures". What I currently cannot understand is why word processor software like Word isn't showing this substitution character. – UNIQUEorn Jan 02 '16 at 17:13
  • Because Word *is terrible at OpenType*. It's a longstanding complaint amongst typographers and typesetters, because Microsoft's DirectWrite API can do OpenType features just fine. It's just not exposed in any meaningful way in their office DTP products. Which is why we don't use them for real typesetting, we use Adobe products, or OpenType-aware Tex, like XeLaTeX with fontspec. – Mike 'Pomax' Kamermans Jan 02 '16 at 18:16
  • I now managed to get ligatures like "fi" and "ft" working in my application using a system font. I use Swing to render text. I can now turn this kind of ligatures on and off. What I at least want to understand is, why does this ligature substitution does not work in Bravura Text? – UNIQUEorn Jan 03 '16 at 10:49
  • 1
    because if you ask someone who knows how OpenType works, they'll ask you "what do you mean with ligatures?" There are lots of different GSUB ligature feature tags, which one did you activate? Just activating `liga`, for instance, may not activate the music note ligatures, you need to know the feature/lookup name and then toggle that. Running the font through [TTX](https://github.com/behdad/fonttools), the font covers `ccmp`, `liga`, `salt`, and `ss01`-`ss05`, so probably toggle [ccmp](https://www.microsoft.com/typography/otspec/features_ae.htm#ccmp) and see what happens. – Mike 'Pomax' Kamermans Jan 03 '16 at 17:02
  • Yes this is the main confusing thing. I really don't know much about fonts, but the word processors point of view was a bad place to start. – UNIQUEorn Jan 04 '16 at 08:25
  • Just checked with another of my tools as well as with a professional-level editor. Neither one sees anything related to note lowering code in the OpenType code. It's just not there. Notify the font author. (@Mike'Pomax'Kamermans: `ccmp` has nothing to do with this, it ought to have worked with `liga`. `ccmp` is a convenience table to do the reverse: decomposing a ligature glyph into separate glyphs.) – Jongware Jan 04 '16 at 11:13
  • Okay thank you all very much for your help! I will contact the font author. Meanwhile I am learning much about Open Type ;-) – UNIQUEorn Jan 04 '16 at 18:08
  • 1
    @Mike'Pomax'Kamermans, you effectively answered the question, but in the form of a comment rather than an answer. I've expanded on your answer, as an answer. Good work. – Jim DeLaHunt Feb 04 '17 at 05:36
  • 2
    @JimDeLaHunt ... more than a year later =) – Mike 'Pomax' Kamermans Feb 05 '17 at 00:37

2 Answers2

4

I asked Daniel Spreadbury in the smufl discussion forum, and he finally answered that there was a bug in the otf version of the BravuraText font which actually broke the ligature table.

He made a fixed version of the font available on the steinberg github repository:

https://github.com/steinbergmedia/bravura/raw/master/redist/otf/BravuraText.otf

The fixed version works exactly as described.

MassMover
  • 529
  • 2
  • 17
2

This question is marked unanswered, because none of the very helpful people who commented phrased their comments as answers. So, I will collect their comments and some other remarks, and phrase it as an answer.

It is important to understand that the OpenType font specification requires that fonts work in conjunction with a "shaping engine", and that both font and shaping engine follow a script-specific external architecture. Look at the long list, "Script-specific development", in the Microsoft Opentype spec overview. You cannot expect to drop an OpenType font for a given script following a given architecture into an application which does not have a shaping engine for that same script and architecture, and expect it to work. Music notation is a "script" in this sense.

Music notation is also a complicated two-dimensional layout problem. You cannot expect text layout and shaping software which are not designed to handle music notation to do a good job of it.

And, as Mike 'Pomax' Kamermans points out, "Word is terrible at OpenType. It's a longstanding complaint amongst typographers and typesetters.…" Word is a terrible choice for exercising any OpenType font, but especially one for music notation.

To answer the specific questions:

Q: Should it really be as easy as typing the specific code points of a font to affect the position of the next character?

A: No. Music notation is a difficult layout problem. You should test using a music notation layout system.

Q: Is there any font expert that can confirm that this feature can work in a font?

A: I haven't looked at the Bravura font myself, but I can confirm that Bravura was developed by Daniel Spreadbury, who is the creator of SMuFL, an architecture which fills the role of "script-specific external architecture" mentioned above. I can also confirm that someone adapted Bravura to work with the Sibelius notation editor. You can expect that this font will work when used the right way in the right environment.

Community
  • 1
  • 1
Jim DeLaHunt
  • 10,960
  • 3
  • 45
  • 74
  • 1
    You can compare this font with Microsoft's Cambria Math, which contains *very* uncommon OpenType tables as well as a large number of 'extra' glyphs. These features and their associated glyphs only and exclusively work correct in ... Microsoft's own Equation Editor! No other software, however OpenType aware, will be able to magically typeset equations *just by selecting that font*. – Jongware Feb 05 '17 at 17:10