NotationModel

Swift Version Platforms Build Status

NotationModel 包包含用于定义音乐记谱模型的模块。

此处包含的类型扩展了 dn-m/Music 包中定义的结构,为抽象音乐信息提供丰富的上下文,以便可以在各种记谱媒体中表示它们。 该包对具体的渲染后端保持不可知。

有关在 Swift 中音乐的图形表示方面的工作,请参阅 dn-m/NotationView

模块

SpelledPitch

SpelledPitch 模块公开了用于描述具有字母名称和变音记号的抽象音高(例如,您按下 MIDI 键盘上的键所获得的内容)的结构。 这是以渐进披露和类型安全的方式完成的:描述常见的音高场景很容易,描述更罕见的音高场景线性地更加困难,并且不可能描述逻辑上无效的音高场景。

Pitch.Spelling 结构提供了 Helmholtz-Ellis 记谱系统的模型。 该记谱系统从西方通用实践的 十二音平均律 调音系统优雅地扩展到高极限 纯律 调音系统。 该系统在 SMuFL 规范中表示,使这些结构到渲染上下文的映射尽可能无缝。

SpelledRhythm

SpelledRhythm 模块定义了连线、延音线和附点的模型。

PlotModel

定义了将值定位到二维绘图上的模型。

StaffModel

扩展了 PlotModel,加入了谱号、符头、变音记号等概念。

开发

此软件包需要 Swift 4.2。

构建说明

克隆仓库。

git clone https://github.com/dn-m/NotationModel

进入内部。

cd NotationModel

要求 Swift Package Manager 更新依赖项(全部为 dn-m)。

swift package update

在终端中编译代码并运行测试。

swift test

要求 Swift Package Manager 生成一个不错的 Xcode 项目。

swift package generate-xcodeproj

打开它。

open NotationModel.xcodeproj/

NotationModel 包包含多个模块