12、音符与音符集合的语义与算法解析

音符与音符集合的语义与算法解析

1. 语义澄清

在音乐结构的表示中,音符和音符集合的继承方案提供了强大的表达能力,尤其在表示复杂音乐结构方面。下面详细探讨该继承方案的一些语义细节以及相关约束。

1.1 音符添加到连音线(Beam)的规则
  • 规则一 :不允许添加时长大于或等于四分音符的音符到连音线中。此规则仅针对要添加的音符时长,而与连音线本身的时长无关,且音符在连音线下保留其原有时长。
  • 规则二 :在连音线下添加连音线,会使新增连音线下的元素时长减半。

在操作上,添加音符和添加连音线在时长缩放的一致性上存在冲突。为解决这一问题,有两种思路:一是添加时长小于二分音符的音符,并让减半规则适用于添加到连音线的所有元素,但这种方法在可用性上较为笨拙;另一种是按照规则一添加音符,这种方式更直观,在 API 设计中采用了后一种方式。

添加元素到连音线的操作可以在仅考虑该连音线的上下文中进行,也可以考虑连音线及其所有父节点的上下文。为保持上下文简单,选择专注于单个连音线添加音符,并自动根据嵌套元素应用适当的缩放因子。例如,将十六分音符添加到有父连音线的连音线中,通过计算实际上会使其变为三十二分音符。

1.2 三连音(Tuplet)的语义微妙之处

以图 6.8 中的两个三连音为例,一个有连音线,另一个没有,表面上它们似乎相同,都是在四分音符跨度内有三个八分音符。但实际上,它们不能在不同上下文中随意替换。如图 6.9 所示,将这两个三连音插入到由两个八分音符环绕的音乐图形中,结果完全不同。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值