如何使用音乐字体 Bravura Text?

Posted

技术标签:

【中文标题】如何使用音乐字体 Bravura Text?【英文标题】:How to use the music font Bravura Text? 【发布时间】:2016-04-06 04:03:55 【问题描述】:

我正在尝试使用名为 Bravura Text 的 Open Type 音乐字体。我想在我目前正在开发的应用程序中使用该字体。

我对 Bravura Text 的特性做了一些研究,字体的文档指出,可以写笔记并调整它们在五线谱上的垂直位置。有特殊字符可以升高/降低五线谱上的音符头来表示不同的音调。

我尝试在 Word 2013、Open Office Writer 和 Libre Office Writer 等文本应用程序中使用该功能。但我没有设法提高/降低符头。我所能看到的只是默认位置的音符头,即音调 B(在 5 线五线谱的中间线)。

文档文件 bravura-text.md 说明了如何调整垂直位置:

Bravura Text 使用 OpenType 连字来修改符号的默认垂直位置。在 OpenType 字体中,连字是一种字形替换,其中两个或多个字形被另一个字形替换。这通常用于文本字体,为特定的字母组合(例如“fi”或“fl”)产生优雅的外观。

在 Bravura Text 中,连字用于调整 个别符号。首先,您输入对应的代码点 您要更改垂直位置的量,然后 您输入符号本身的代码点。提供 您正在使用的应用程序支持 OpenType 连字,您应该看到 符号出现在所需的垂直位置。

根据mailing list reply,我发现文档中提到的垂直定位字符的代码点是错误的。正确的代码点是 U+EB90–U+EB9F。

在我的示例中,我使用了邮件列表答案中提到的正确代码点。我将 Word 2013 配置为启用连字并输入以下代码点: U+E014 U+EB9E U+E0A4

U+E014 ("staff5Lines") 用于显示 5 行五线谱 U+EB9E ("staffPosLower7") 用于将符头降低 7 个半音。 U+E0A4 ("noteheadBlack") 用于在降低的五线谱位置显示符头

我认为这就是文档中关于输入带有调​​整的垂直位置的注释的内容,但这在我的文本应用程序中不起作用。我所看到的只是中间五线谱上代表音符 B 的符头。

有没有 Open Type 字体专家,谁能帮助我使用这种字体?我错过了什么吗?如何正确输入这些连字?

我向他们的邮件列表写了一个问题,但还没有收到答复。

我尝试在 Firefox 和 Chrome 中使用该字体,并启用了连字、字距调整和其他一些 OpenType 功能。这是简短的 html 示例:

<!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>

降低符头的连字字符仍然不起作用。其他使用“fi”或“ft”连字的字体按预期工作。

我不确定,但真的应该像键入字体的特定代码点来影响下一个字符的位置一样简单吗?

是否有任何字体专家可以确认此功能可以在字体中使用?

【问题讨论】:

如果你想使用精确排版,使用文字处理器软件是一个非常奇怪的选择:它们对 OpenType 功能的支持很糟糕。改用排版软件,如 InDesign 或 XeLaTeX。如果您正在开发自己的软件,请确保使用支持 OpenType 功能切换的现代字体引擎。哎呀,在这一点上,即使是 CSS3 也可以比 Word 做得更好,所以你甚至可以尝试一下。 一些初步调查:OpenType 代码确实包含从U+EB90 U+E0A4 到一个字形的替换,该字形显示高一个位置的音符,其他音符也类似。但是,根据我使用的工具,这是在一个 unused table 中 - 而不是 Markdown 文本所说的 liga ligatures 表中。 (不过我自己的字体工具可能有问题,所以我会尝试仔细检查。) 因为如果你问一个知道 OpenType 如何工作的人,他们会问你“连字是什么意思?”有很多不同的 GSUB 连字功能标签,您激活了哪一个?例如,仅激活liga 可能不会激活音符连字,您需要知道功能/查找名称然后切换它。通过TTX运行字体,字体覆盖ccmpligasaltss01-ss05,所以可能切换ccmp看看会发生什么。 @Mike'Pomax'Kamermans,你有效地回答了这个问题,但是以评论而不是答案的形式。作为答案,我已经扩展了您的答案。干得好。 @JimDeLaHunt ... 一年多后 =) 【参考方案1】:

这个问题被标记为未回答,因为评论中非常有帮助的人都没有将他们的 cmets 表述为答案。所以,我会收集他们的cmets和其他一些评论,并将其作为答案。

请务必了解,OpenType 字体规范要求字体与“shaping engine”一起使用,并且字体和整形引擎都遵循特定于脚本的外部架构。查看Microsoft Opentype spec overview 中的长列表“特定于脚本的开发”。您不能期望将遵循给定架构的给定脚本的 OpenType 字体放入没有针对相同脚本和架构的整形引擎的应用程序中,并期望它能够工作。从这个意义上说,乐谱是一个“脚本”。

乐谱也是一个复杂的二维布局问题。你不能指望那些不是为处理乐谱而设计的文本排版和整形软件能做得很好。

而且,正如Mike 'Pomax' Kamermans 指出的那样,“Word 在 OpenType 上很糟糕。这是排版师和排字员长期以来的抱怨……”对于使用任何 OpenType 字体来说,Word 都是一个糟糕的选择,但尤其是一个用于音乐符号。

回答具体问题:

:真的应该像键入字体的特定代码点那样简单地影响下一个字符的位置吗?

A:不。乐谱是一个困难的布局问题。您应该使用乐谱布局系统进行测试。

:有没有字体专家可以确认这个功能可以在字体中使用?

A:我自己没有看过 Bravura 字体,但我可以确认Bravura was developed by Daniel Spreadbury 是SMuFL 的创建者,这是一个充当“脚本”角色的架构- 特定的外部架构”。我也可以确认someone adapted Bravura to work with the Sibelius notation editor。您可以期望在正确的环境中以正确的方式使用此字体。

【讨论】:

您可以将此字体与 Microsoft 的 Cambria Math 进行比较,后者包含 非常 不常见的 OpenType 表以及大量“额外”字形。这些功能及其相关字形仅在……Microsoft 自己的公式编辑器中才能正常工作!没有其他软件,不管 OpenType 是什么,将能够神奇地排版方程只需选择该字体【参考方案2】:

我在 smufl 论坛上问过 Daniel Spreadbury,他最后回答说 BravuraText 字体的 otf 版本中存在一个错误,实际上破坏了连字表。

他在 steinberg github 存储库中提供了字体的固定版本:

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

固定版本与描述的完全一样。

【讨论】:

以上是关于如何使用音乐字体 Bravura Text?的主要内容,如果未能解决你的问题,请参考以下文章

android 如何设置text view上的字体使有向下凹陷的感觉

EXTJS 如何使grid的某一行字体颜色为红色

如何使用 .monospaced 系统字体设计

如何使文本框中的字体上下左右都居中

怎么让html字体变大?

VB6.0中如何使得一个字符串中的某一个字符选中高亮并使这个字符字体变大。