2016-03-31 130 views
0

我正在调查操纵html5音频标签每秒节拍的可能性。操纵音频对象以改变bpm

本地标签提供播放速度。不幸的是,粒度不够好。

让我们例如假设一个现代的流行歌曲,并假设目前的BPM值是128

我很想能够通过1BPM放慢完成的曲目,或者甚至可能0.1bpm,甚至更好的是0.05 bpm(这对于几乎所有的音频软件来说都是非常正常的)。

另外,考虑有2种方式来更改BPM,一种是通过维护密钥,另一种是不维护密钥。

在第一种情况下,您加速曲目但音高不变,第二种情况下音高不变。

想知道是否有人在这里工作,直接manipalting字节数据。

回答

1

我喜欢的两个语句

"According to WebAudio specification (http://www.w3.org/TR/webaudio/) you CAN" AND 

"When I found out that IE doesn't support webaudio, it made it pointless." 

在: http://www.html5gamedevs.com/topic/6255-can-you-change-audio-pitch-at-runtime/

反正一个很好的演示, '自豪偷':

https://github.com/urtzurd/html-audio

+0

该演示的问题是,使用执行x2或x0.5的音调的原生API,并且如上所述,它不提供进行适当音高移位的粒度/ te mpo控制。 – Snick

+0

为了改变一个软件首先需要知道的bpm,该bpm当前运行的歌曲。这超出了浏览器的功能,根据我的知识 - 按照这里的链接“http://stackoverflow.com/questions/657073/how-to-detect-the-bpm-of-a-song-in-php”了解你可以如何代码bpm确定服务器端的歌曲。从那里你可以很容易地进步与x0.02或在客户端的东西。例如。一旦您知道一首歌曲具有128 BPM,添加1 BPM需要您调整1 + 1/128的比例=> 1.0078125 – Quicker

+0

替代html5,javascript为flash:请参阅http://blog.andre-michelle.com/ 2009/pitch-mp3/AND http://www.swftools.org/;预先确定bpm nr的问题,如果音高需要精确地改变bpm,则不能通过这种方式来修复 – Quicker