问题标签 [tone.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
348 浏览

next.js - ReferenceError:未定义 AudioBuffer

我正在尝试在 next.js 反应项目中使用tone.js。当我运行或构建时,我收到此错误“ReferenceError: AudioBuffer is not defined”

我已经在代码和框中隔离了tone.js 代码,它运行良好。 https://codesandbox.io/s/tonejs-react-pink-noise-generator-pfnl0?file=/src/App.js

但不在 next.js 应用程序中

0 投票
1 回答
164 浏览

reactjs - 根据tone.js反应项目中振荡器波的形状绘制可视化/颜色变化?

我想根据振荡器波的当前部分设置动画/更改颜色,以创建与波匹配的脉冲颜色效果?波可以是任何类型,例如正弦波、三角波等,因此这将根据波的类型产生不同的脉冲,并且振荡器的频率也可以改变(然后我也想改变脉冲时间)。

大概我需要从振荡器对象中获取幅度和波长(这些甚至是我需要的正确术语吗?)并在使用一些 css 动画时将其与 Draw 对象相关联,但我有点不知道在哪里开始?特别是围绕tone.js部分,我将如何获得所需的值以及如何随着时间的推移从颜色A变为B并返回等。我是否需要包含一个像 p5 这样的外部库,或者我可以通过tone.js 单独使用draw 来完成这一切吗?

干杯大卫

编辑 - @paulwheeler - 非常感谢您的所有评论,这是一个很大的帮助。为了更清楚,并回答您的疑问,如果您有更多意见,这就是我所拥有和需要的 -

i) 我有两个从 Tone.js 连续播放的振荡器。它们以 A 和 B 频率“播放”,以产生双耳声音。我将两者之间的差异称为范围。例如,Osc1 可能是 100hz,osc2 可能是 104hz,范围是 4hz。这些振荡器可以是tone.js 允许的任何类型(锯齿波、正弦波、三角形......)

ii)当声音播放时,我想获取范围频率并将其附加到两种颜色。因此,在频率的峰值处,颜色 A 将显示为背景色,而在频率的波谷处,颜色 B 将显示。在这些时间之间,颜色将在两者之间变化,即在任何时间 t,颜色将代表波上的 Y 位置,即从 0 开始的距离。这将使它看起来颜色正在变化以匹配波浪的形状。有点像 css 中的这里(但在这个例子中只使用关键帧,只是为了举例说明我的意思) -

https://jsfiddle.net/CF3Np/4/

0 投票
1 回答
149 浏览

javascript - 附加到合成器的增益的 Tone.js 不一致

我是 Tone.js 的新手,并且对 Gain 对象有疑问。我在 html 中设置了一个音量滑块,如下所示:

单击“播放”时,我创建了一个 Tone.PolySynth 和一个 Tone.Gain,然后使用 .chain() 函数将增益连接到 PolySynth。增益值取自音量滑块。使用 Tone.Part 函数(下面的 js 代码)播放音符。

首次启动应用程序时,序列会以正确的音量播放。当音量滑块增加时,它也会以增加的音量(更高的增益)播放。但是,当音量滑块降低时,序列的音量不会降低。当从较高的值变为较低的值时,增益没有影响。

我对此感到困惑,并感谢知识/经验的帮助。

请在https://codepen.io/minapre/pen/QWpmdJm上编码

0 投票
1 回答
180 浏览

javascript - Tone.js 应用程序 - 直到第二次点击音频才会开始

我知道我需要用户操作才能在移动设备上启动 Web Audio。但是,我已按照建议在用户操作上恢复(在 Tone.js 调用 Tone.start() 的情况下),但它仍然不起作用。以下是我的代码的相关部分:

它在第二次触摸时工作正常,但在第一次触摸后,我收到有关音频上下文被暂停的警告,即使标准是当用户操作调用 start() 时它会恢复。我被难住了。

0 投票
0 回答
101 浏览

javascript - 如何使基本的 Tone.js 合成器听起来一致?

我想要一个恒定的音高,没有可听得见的裂纹来启动包络,在开始时音量超快速加速(没有音量开裂),在短时间内缓慢释放,就像快速的声音长笛做得很快,但比这更简单。我所拥有的是:

但如果我在循环中调用它,第一个声音会破坏音量,你可以听到每个节拍的声音在音量缓慢上升。我怎样才能使它们每个都统一相同的声音?

0 投票
1 回答
202 浏览

javascript - 在几秒钟内给 Tone.js 音符和持续时间数组播放的最简单方法是什么?

我想给 Tone.js 一个音符列表和每个音符的相应持续时间,并让它播放序​​列。据我所知,没有简单的方法可以做到这一点。

下面,对应的时间值不是我输入的(即0.25、0.5、0.25),console.log就是证明:

如何给 Tone.js 注释和相应的 ms 进行播放?

0 投票
1 回答
162 浏览

javascript - 在 Node.js 中使用 Tone.js 时未定义 AudioBuffer

这是我当前的代码。我想在不使用网络浏览器的情况下使用 Node.js中的Tone.js库。到目前为止,我知道这AudioBuffer是浏览器的一项功能,但我怎样才能让这段代码在 Node.js 中工作?

这是我得到的错误:

然后它链接到文件node_modules夹中的 Tone.js 文件。

0 投票
1 回答
56 浏览

javascript - 使用 Tone.js 笔记创建音效?

如何使用 Tone.js 笔记创建其中一种音效

这甚至可能吗?当给出这些音符时:"C","C#","Db","D","D#","Eb","E","E#","Fb","F","F#", "Gb","G","G#","Ab","A","A#","Bb","B","B#","Cb"...我现在可以以某种方式使用tone.js吗创造像“Tada!”这样的音效?我认为它需要的不仅仅是音符/音调,它还需要以某种方式进行音高和时间操纵?

简单的 C 音播放 400 毫秒:

这是一个使用 Tone.js进行实验的工作 Jsfiddle。

0 投票
0 回答
142 浏览

javascript - 将 blob 音频正确转换为 webm 格式

嗨,我正在使用tone.js 使用我的麦克风录制音频,然后下载音频。

这是我的代码;

这是我从中获得此代码参考的链接。 记录器 - UserMedia API

问题

现在当我播放下载的音频文件时,它不显示音频长度。我尝试使用将长度属性添加到音频 blob,recording.length = "120";但它仍然没有将长度添加到音频文件。我需要知道如何为我的音频文件添加长度。我应该使用哪种编解码器和格式。当我尝试使用 mp3 格式时,下载的文件已损坏。这是为什么 ?

您可以使用 codepen 来测试 API。它与我的代码有点不同,但概念是相同的。CodePen 示例

0 投票
1 回答
19 浏览

tone.js - 如何在tone.js中使用湿设置实例化效果?

如何实例化具有特定湿设置的效果?我希望能够在范围输入更改时创建具有更新效果参数的新合成器。但是,我不知道如何使湿/干平衡成为 100% 湿。有没有办法使用特定的湿参数创建效果?类似的东西 newDelay = new Tone.PingPongDelay(.5,.5).wet(.5)?或者我是否必须将效果分配给一个变量并newDelay.wet = .5在实例化它之后访问它?