alo*_*lon 6 flash midi timeline actionscript-3 timecodes
我已经研究了这个主题一段时间了,但仍然没有弄清楚.我使用midas3库(Midi-actionscript3)将midi导入flash.我在时间轴上得到每个音符项目.我得到除法值(192),所有"GET-TEMPO"元素都等于81.
我尝试了很多组合来获得midi的实际时间但仍然没有好处(例如时间线*192/60).
我知道它与实际时间不同步的原因是当我将笔记可视化为flash中的简单矩形时 - 我检查它们是否与mp3文件播放完全一致(我已经使用简单的转换将midi文件转换为此mp3程序)
我已经阅读了很多关于如何计算所有内容的信息,但仍然没有弄清楚我需要使用的数字才能使它正确(时间轴*MysteriusConstant = ReaTIME,MysteriusConstant的值是什么?它是否真的不变?如果不是如何?我可以计算出它的变化吗?)
谢谢Alon
如果我正确理解你的问题,你基本上想要将每个MIDI音符的刻度转换为毫秒值,这样你就可以在时间轴上直观地显示音符.
首先,您需要使用除法和速度来确定单个刻度的值.转换基本上如下:
 [  1 min    60 sec   1 beat     Z clocks ]
 | ------- * ------ * -------- * -------- | = seconds
 [ X beats   1 min    Y clocks       1    ]
因此,在上面的转换中,X节奏Y是分度,Z是来自传入事件的时钟数.您可以看到所有单元如何取消,以秒为单位为您提供值.因此,该转换的精简版本为:
(60 * clocks) / (tempo * division) = seconds
请记住,此处给出的值seconds是自上一个 MIDI事件以来的秒数,而不是序列开始时的秒数.您需要保持此值的运行总计以构建连贯的序列.
| 归档时间: | 
 | 
| 查看次数: | 2936 次 | 
| 最近记录: |