问题
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">

</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?
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/34559025/how-to-use-the-music-font-bravura-text