查找在musicxml文件中播放音符的时间(以秒为单位)

时间:2016-01-16 07:49:50

标签: musicxml

我注意到了

<note default-x="106.96" default-y="-25.00">
    <pitch>
      <step>A</step>
      <octave>3</octave>
    </pitch>
    <duration>2</duration>
    <voice>1</voice>
    <type>eighth</type>
    <stem>up</stem>
    <staff>1</staff>
    <beam number="1">begin</beam>
</note>

如果tempo = 120bpm,我怎样才能找到花费时间(第二节)?

1 个答案:

答案 0 :(得分:0)

创建一个这样的表:

durationHashTable = {
{ "whole", 4.0 },
{ "half", 2.0 },
{ "quarter", 1.0 },
{ "eighth", 0.5 },
{ "16th", 0.25 } }

然后,公式为:

noteDurationSeconds = ( 60.0 / beatsPerMinute ) * durationHashTable["eighth"];

这是针对特殊的,简单的情况

  • 笔记没有点缀
  • 时间签名有<beat-type>4</beat-type>
  • 您不需要支持连音符。

事情可能变得更加复杂,但我建议首先使用这个特殊情况。