1

我有笔记

<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

4

1 回答 1

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>
  • 您不需要支持连音。

事情可能会变得更加复杂,但我建议先处理这种特殊情况。

于 2016-05-29T20:56:51.857 回答