问题标签 [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.
tone.js - 在tone.js(或其他框架)中快速组合样本
我需要根据一些规则以编程方式将一堆音乐曲目一个接一个地组合在一起,它们之间有一些重叠。
我今天在看tone.js,这很棒,而且我刚刚成功完成工作(将播放器输入到录音机中),但我在最后意识到你必须等待整个序列播放出来实时保存之前。
我不想等待一个小时来获取文件,我最多需要一分钟。使用tone.js可以做到这一点吗?如果没有,是否还有其他编程方式可以做到这一点?
javascript - 为什么tone.js会在桌面浏览器中播放音符,而不是在移动浏览器中?
我正在尝试使用tone.js 演奏音符。
在我的浏览器中(在 Safari 和 Firefox 上)该注释会播放,但在 IOS(在 Chrome 和 Safari 上测试)它不会。
我正在使用 Tone.start() 并且只在then
回调中播放音频,因为文档说明你应该这样做。
为什么会发生这种情况?
reactjs - Tone.js 用户设置参数
我试图让用户最终选择他们想要使用的音符,但首先为了测试这个功能,我绘制了几个按钮,当点击时应该播放所需的音符。
以下代码段是 Tone.js 的正常工作方式。
synth.triggerAttackRelease("C5", "8n")
以下片段表达了我希望它如何工作。
synth.triggerAttackRelease(btnId, "8n")
即使 btnId 作为相应的注释返回,例如“A4”,我也会收到以下错误。
Uncaught Error: Invalid argument(s) to setValueAtTime: "A", 0.1
在这种情况下,A 是一个注释。
这是一个完整的代码块,例如一个工作函数
这是我想要工作的代码
dispose - Tone.js 更改 Tone.Polysynth 的问题
在 Tone.js 中,我创建了一个类,该类创建一个.play()
在音序器函数中调用的合成器实例,从而播放声音。this.synth
在下面的课程中,当inupdateSynthType
是单声道时,绝对没有问题Tone.Synth
,但是当它是单声道时,整个事情都会中断Tone.Polysynth
,我在尝试调用时收到以下错误updateSynthType
。
我不明白为什么这种情况永远不会发生在常规情况下,Tone.Synth
但是当我尝试更改时会Tone.PolySynth
出现错误。我正在尝试更新设置以在多合成器类型(例如Synth, AMSynth, MetalSyth
等)之间进行更改。我怎样才能阻止这个问题?为什么这个类只对普通人有效Tone.Synth
?有没有更好的方法来更新这个类中的 PolySynth 类型?
这是有问题的课程:
谢谢阅读。
javascript - 我可以在使用tone.js 播放音频时更改音高转换的间隔吗?
我会告诉你我的代码
我对audioContext和tone.js的使用不熟悉,所以不知道理解对不对,但我的意图是把输入源分成6个通道,按照增益调整、移调、移调的顺序进行处理玛吉,分别。
这将完成其他所有操作,但您无法在播放期间更改音高偏移的值。
我想要一种类似于在GainNode中使用的setValueAtTime在音高转换中的功能。
我应该怎么办?
ios - 最新 ios 中的tone.js 问题
全部
我可以知道是否有与最新 ios 版本相关的任何报告或问题。我发现我的编码可以在不同的设备上工作,除了最新的 ios。
使用默认演示或其他参考站点可以找到相同的发现,例如
我使用以下 CDN https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.14/Tone.js使用了最新的tone.js 版本
任何想法?
web-audio-api - 通过 Tone.js 连续改变和弦频率
如何使用tone.js为吉他制作和弦基频连续交互变化?
显然,将 Tone.Sampler 与可能命名为“pitchBend”或“pitchShift”的 API 一起使用是一种可行的方法,但我不确定实际选择。换句话说,如何制作“变调夹滑块”?
我解决了本机 window.AudioContext 的这个问题,用于一组振荡器(每个振荡器用于一个吉他弦),使用滑块的频率更新,例如:
振荡器.频率.setValueAtTime(频率,context.currentTime);
当振荡器仍然活跃并正在播放时,它可以很好地改变所有弦的音调。
但是 1) 音色不完全是吉他的默认正弦声波形状和 2) 弦有时会干扰或回响,使声音过于不自然。
也许除了tone.js 平台之外的其他平台可以解决问题?
谢谢你。
reactjs - Tone.js - 如何使 LFO 对象成为作为振荡器链一部分的音量对象的控制输入?
我希望 LFO 对象成为振荡器馈入的 Volume 对象的控制输入(通过每个振荡器的声像器和一个滤波器对象)。这是我正在创建的 4 个振荡器之一的初始化示例...
振荡器工作正常,平移和过滤对象也是如此。但是,我在 UI 中显示了 LFO 的频率、最小值和最大值,但是更改这些值似乎根本不会影响噪音?这是我在输入到输出形式中的设置 -
我错过了什么吗?我尝试更改将 LFO 附加到音量对象并使其在振荡器链之前和之后的顺序,但无济于事。另外,当我打开振荡器时,原来我使用的是 LFO.start 和 LFO.stop,但这似乎是 LFO 信号直接到音频通道,这是不对的(虽然我真的不明白我怎么能使用 LFO 而不打开它!!)。
非常感谢任何帮助。
reactjs - 更新状态而不渲染整个 React 组件(useState)
我有一个组件,它从Tone.js库中实例化一些类(例如音频播放器和过滤器),并定义了一些作用于这些对象的函数,这些函数用作一组 UI 渲染按钮中的回调(参见下面的相关代码)。
其中两个按钮应该is3D
使用useState 钩子(在updateSpatial
函数中)切换布尔状态,以启用/禁用这些按钮之一。但是,此更新显然会导致组件完全重新渲染,从而重新实例化我的类,这会阻止定义的函数在之后工作。
相比之下,我也尝试了useRef 钩子,它允许在is3D
不重新渲染的情况下进行更新,但是按钮的禁用状态不会更新,因为组件不会重新渲染。
有适合这种情况的模式吗?我接下来的尝试包括使用 HOC、Context 或 Redux,但我不确定这是最直接的。谢谢!