带有时间拉伸(stretch)的javascript音高转换

标签 javascript audio playback pitch-shifting

我是一名学习 JavaScript 的初学者。我的网站上有一个与微调频率和行星频率相关的交互式页面,我已经想到了各种项目。 我需要能够循环播放我的音频样本 .wav 文件,但音频样本时间会随着相应的音调变化而延长。

我试过 myAudio.playbackRate = 0.5; 播放音频的速度慢了 0.5,但音高保持不变。 我研究并发现了一些东西。但是如何将 preservesPitch 设置为 false 或 true?我认为这只适用于“谷歌浏览器”,所以我找到的其他程序在这里:
https://github.com/janesconference/KievII/blob/master/dsp/pitchshift.js

它似乎无法正常工作,我不知道我应该如何修改它,我应该将我的音频 .wav 文件 URL 粘贴到程序中的什么位置? 与此相关的任何其他提示将不胜感激。 提前感谢您的时间和帮助。

最佳答案

您可以将 mozPreservesPitch 属性设置为 false 以使用 Firefox 更改元素或声音文件的音高。 webkitPreservesPitch 应该可以与 webkit 浏览器一起使用,但请注意“此 API 尚未标准化”...

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

这对我有用:

var soundPlayer = new Audio();

function playLowerNote() {
    soundPlayer.src = "piano.mp3";
    soundPlayer.mozPreservesPitch = false;
    soundPlayer.playbackRate = 0.5;
    soundPlayer.play();
}

playLowerNote();

仍在寻找更好的循环方式。

关于带有时间拉伸(stretch)的javascript音高转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25157513/

相关文章:

JavaScript/如何在 node.js 中创建一个新对象?

javascript - 模板文字内的事件回调

java - 在程序中更改Java中程序的输出音频电平

android - 多个音频播放器(Java 或 C++),可实时修改

java - 在akkatell中,当actor执行逻辑并出现异常时,执行任务的线程会发生什么

javascript - 如何在 JavaScript 中同步播放音频文件?

JavaScript 不会使用 HTML DOM 显示日期

java - 从 Java Swing App 中的 URL 流式传输音频

scala - Play 框架隐藏了初始异常

javascript - 当我的模块 cron 运行时动态更改内容