如何使用字体写乐谱

Posted

技术标签:

【中文标题】如何使用字体写乐谱【英文标题】:How to use font to write musical sheet 【发布时间】:2020-10-17 00:02:00 【问题描述】:

我正在尝试制作一个可以编写和编辑乐谱的 ios 应用程序。 我想知道如何将其可视化。 我没有在 swift 中找到任何可以使它成为可能的完整框架。

但是我找到了这个字体bravura,但是我没有找到任何使用的例子。

这是一个 OpenType 字体。

阅读documentation我应该可以通过unicode字符来决定如何改变下一个元素的位置。 但不,它似乎不起作用。起初我以为是连字的原因,因为并非所有编辑都支持它,我不是字体专家,我可能是错的。

所以我使用了 NSAttributedString 类来修改这些参数。但结果仍然不是预期的。

这是我的代码:

    textView.font = UIFont(name: "Bravura-Text", size: 40)
    let text = "\uE014\uEB99\uE0A4 \uE014\uEB91\uE0A4"
    let attributes = [
        NSAttributedString.Key.font : UIFont(name: "Bravura-Text", size: 40)!,
        NSAttributedString.Key.ligature : 2
        ]  as [NSAttributedString.Key : Any]
    let attributedString = NSAttributedString(string: text, attributes: attributes)

    textView.attributedText = attributedString

E014 = 显示五线谱表

EB99 = 减少两个员工职位

EB91 = 增加两个员工职位

E0A4 = 黑色符头

这是结果: result

有什么建议可以在 iOS 上使用此字体及其功能吗?

我想写一张像this one这样的乐谱。

【问题讨论】:

【参考方案1】:

乐谱的布局需要更高级别的布局,而不仅仅是显示一行文本。 (类似于使用 html 作为高级布局而不仅仅是文本行的网页。)字体可以提供基本符号,并且所有基本符号都以 Unicode 编码。但是您需要一些可以读取音乐符号标记语言并布局内容的库。

您可以在https://www.w3.org/community/music-notation/ 找到您需要的资源

【讨论】:

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

在 Xcode 中使用 Aubio 的乐谱

Unity - 单击重新启动按钮后如何重新启动乐谱?

提取json对象中的数据,转化为数组

51单片机蜂鸣器乐谱放不完

Guitar Pro里的编谱方式怎么用?

如何使用音乐字体 Bravura Text?