音乐编码之道(二十二)|music21 高级时值(复杂和分音符)

用户指南,第19章:高级时值(复杂和分音符)

上次我们遇到 DurationTuples 对象是在第3章,那时我们还不了解流(Streams)或其他一千种酷炫的功能,所以现在回顾一下时值对象并深入了解一下它们的工作原理是个好主意。

我们会记得所有 Duration 都有一个 Music21Objects 对象存储在它们的 Duration 属性中:

.duration

from music21 import *
n = note.Note('C#4')
n.duration

…并且时值可以直接创建:

 <music21.duration.Duration 1.0>



d = duration.Duration(4.0)
d

…并且所有时值都有

 <music21.duration.Duration 4.0>

.type .dots 属性。

.quarterLength

d = duration.Duration(1.5)
(d.type, d.dots, d.quarterLength)

标准

 ('quarter', 1, 1.5)

值从极小的2048分音符到巨大的双倍最大值:

type 点的数量只受你的想象力限制(或计算机的表示能力限制):

 0<music21.duration.Duration1.0>1<music21.duration.Duration1.5>2<music21.duration.Duration1.75>3<music21.duration.Duration1.875>4<music21.duration.Duration1.9375>5<music21.duration.Duration1.96875>6<music21.duration.Duration1.984375>7<music21.duration.Duration1.9921875>8<music21.duration.Duration1.99609375>9<music21.duration.Duration1.998046875>10<music21.duration.  
   
   
   
   
   
   
   
   
   
  持续时间1.9990234375>11<music21.duration.持续时间1.99951171875> 

对于非常好奇的人,尝试将点的数量设置为

 0 <music21.duration.Duration 1.0>
 1 <music21.duration.Duration 1.5>
 2 <music21.duration.Duration 1.75>
 3 <music21.duration.Duration 1.875>
 4 <music21.duration.Duration 1.9375>
 5 <music21.duration.Duration 1.96875>
 6 <music21.duration.Duration 1.984375>
 7 <music21.duration.Duration 1.9921875>
 8 <music21.duration.Duration 1.99609375>
 9 <music21.duration.Duration 1.998046875>
 10 <music21.duration.Duration 1.9990234375>
 11 <music21.duration.Duration 1.99951171875>

,然后看看 float('inf') type dots 会发生什么。 (一个小彩蛋…)

许多持续时间的值可以用所有这些类型和点来表示,但并非全部。我们可以通过转向三连音来获得更多的值。

三连音 ¶

三连音,比如三连音,可以通过给出一个分数或接近分数的四分之一长度来设置:

quarterLength

d = duration.Duration(0.3333333333333)
d

这样的duration的quarterLength将被表示为一个

 <music21.duration.Duration 1/3>

类:

fractions.Fraction

d.quarterLength

这可以通过将其包装在

 Fraction(1, 3)

函数中转换为浮点数的近似表示:

float()

float(d.quarterLength)

我们可以通过查看duration的

 0.3333333333333333

属性来检查该duration

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_31339083

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值