You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在music21中获取音符的时长数值

如何在music21中获取音符的时长数值

嗨,我之前也碰到过这个困惑!其实music21里的Duration对象本身就自带了几个能直接拿到纯数值的属性,完全不用自己写额外逻辑,给你整理几个常用的:

  • quarterLength:这是最常用的,返回以四分音符为基准的时长数值。比如全音符会返回4.0,八分音符是0.5,附点四分音符是1.5,刚好就是你看到的Duration对象里显示的那个{number}数值。举个简单例子:
from music21 import note
my_note = note.Note("D5")
# 默认是四分音符,所以输出1.0
print(my_note.duration.quarterLength)
  • seconds:如果你需要的是实际播放的秒数,这个属性会根据当前的乐曲速度(tempo)自动计算。默认情况下速度是每分钟60拍,也就是四分音符对应1秒,要是你设置了不同的速度,它会跟着调整:
# 假设我们设置速度为每分钟120拍
from music21 import tempo, stream
my_stream = stream.Stream()
my_stream.append(tempo.MetronomeMark(number=120))
my_stream.append(my_note)
# 此时四分音符时长变成0.5秒
print(my_note.duration.seconds)

要是你还想探索更多属性,直接用dir(my_note.duration)就能列出Duration对象的所有可用属性和方法,找起来超方便~

备注:内容来源于stack exchange,提问作者Apostolos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:02:58