- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简而言之,按下按钮我想使用 PolySynth
弹几个音符和 Sequence
.如果用户反复按下按钮,我希望播放的内容停止,然后重新开始。这很可能是因为信封的衰减/维持。
问题:无论我尝试什么,我都无法完全取消/静音先前播放的音符,以防序列再次开始(再次单击按钮)。
我的合成器:
import { PolySynth } from 'tone'
const synth = new PolySynth(Synth, {
oscillator: {
type: 'sine4',
volume: -6,
},
envelope: {
attack: 0.01,
decay: 0.5,
sustain: 0.1,
release: 1,
},
}).toDestination()
synth.maxPolyphony = 4 // max notes playing at a time, not sure if necessary
我的顺序:
import { Sequence } from 'tone'
// Play the 2 notes individually then play them together
const notes = [
{ note: 'C4', duration: '8n' },
{ note: 'G4', duration: '8n' },
{ note: ['C4', 'G4'], duration: '4n' }
]
// The sequence that should play the notes after one another
const sequence = new Sequence({
subdivision: '8n',
loop: false,
events: notes,
callback: (time, note) => synth.triggerAttackRelease(note.note, note.duration, time),
})
我玩它的方式,这是一个事件处理程序:
import { start, Transport } from 'tone'
// Event handler simply attached to a button's onClick
function onButtonClicked() {
// Call whatever this start is, doc says it can only happen in an event handler
start()
// Try everything to kill current sound
Transport.cancel()
Transport.stop()
// Start it again
Transport.start()
sequence.start()
}
我怎么能在开始播放之前完全杀死所有声音(如果有的话)?
最佳答案
简答
想了很多,如果我理解正确,这实际上是预期的行为。
您正在触发 Synth(基本上是 AudioWorkletNode)上的音符。所以一旦一个音符触发了合成器,这个音符就消失了。阻止该音符播放的唯一方法是将合成器本身静音。
长答案
在你所说的评论中,你可能会在概念上遗漏一些东西,我认为你在正确的轨道上。
让我们考虑一下如何使用 MIDI 生成声音。
关于javascript - Tone.js 完全停止所有播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63994325/
我正在尝试使用tone.js在Angular 9中实现一个简单的节拍器,但是在执行过程中似乎正在发生某种类型的心律失常... 我不知道我是否在实现中遗漏了一些东西。 这是我的代码: playM
简而言之,按下按钮我想使用 PolySynth 弹几个音符和 Sequence .如果用户反复按下按钮,我希望播放的内容停止,然后重新开始。这很可能是因为信封的衰减/维持。 问题:无论我尝试什么,我都
我有一个使用 Tone.js 在循环上运行的简短、交叉渐变的环境声音剪辑。麻烦的是,在一个播放的结束和下一个播放的开始之间有一个听得见的间隙。 我知道可以使用音频 Sprite 在 Howler.js
我正在与 CJKLIB 合作,使用 getReadingForCharacter 将中文字符转换为拼音。但是,有什么办法吗 readings = cjk.getReadingForCharacter(
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
你能帮我看看如何使用 SVG 在下面的链接上实现棕褐色调吗? My Sepia Tone made with Photoshop's Color Balance 我试过下面的代码:
我是 Tone.js 的新手,并且对 Gain 对象有疑问。我在 html 中设置了一个音量 slider ,如下所示: Play Stop Vol: 4 单击“播
In this ramping example在 Tone.js 中,斜坡的作用不是“平滑”,而是几乎像延迟一样。似乎当它收到一个值时,它不会开始向那个值倾斜,而是会在当前值之后安排另一个斜坡。 当您
我正在尝试创建一个复选框 ($('#button')),其操作会根据 播放器 的状态(音频是否为播放或不播放)使用 Tone.js 和 jQuery。 因此,逻辑是,如果音频已经启动,则复选框的操作只
我一直在研究人们的 Java 合成器,但不知道如何生成他们程序的简单版本。我的目标是用 java 创建一个简单的测试音,用户可以通过按某些键来更改它。例如,按“r”将提高幅度,或“f”将增加频率。我只
我正在构建一个由 Tone.js 提供支持的小型网络应用程序,用于训练自己弹奏钢琴的关键(可能还有其他一些练习)。到目前为止,您可以选择根音符和音阶类型并单击播放,它将循环播放该音阶。还有一个键盘/合
我正在开发一个网络游戏,点击一个按钮应该连续播放两个音符。我可以使用上传的音频文件和 audio.onended 回调来完成。 function playMusic(){ audio.src
我使用 Codepen 编写了一个简单的合成器。它实际上可以工作并且做了我期望它做的事情(在 Codepen 上和网站上的 Debug模式下)。不幸的是,它在我的本地计算机上不起作用:如果我下载代码并
我想用代码控制 iPad 屏幕的亮度和颜色。我可以使用以下方式管理亮度: UIScreen.main.brightness 但是否可以通过编程方式访问和禁用“True Tone”和“Night Shi
我想在音符播放完毕后使用 tone.js 更新我的 UI const now = Tone.now() synth.triggerAttack("G3", now); synth.triggerRel
我正在尝试在 ESM 模块上使用 tone.js。 (我可以在带有 bundler 的“commonjs”中毫无问题地使用它) 在我的html中 和 tests.js: import * as To
找不到如何提出关于 Steve Pomeroy 发布的“使用 Android 播放任意音调”的问题,所以开始了一篇 here . 是否有任何代码需要添加到 xml 文件中? 无法让 sim 发出声音。
我想同时完成两件事: 1) 更改播放速率声音文件到 1/2 速度 2) 降低间距 由五分之一 最后,我不想使用单独的按钮来播放结果 将其连接到音频标签 并使用那里的播放按钮。 下面是迄今为止我使用 T
我正在尝试在 Laravel 应用程序中使用 Tone Analyzer API。无论我尝试什么,我总是得到相同的响应 {"code":401, "error": "Unauthorized"}。我怀
我想实现一个基本的音调播放器来从文件夹加载文件并通过按 ReactJS 中的按钮来播放它。 import React, { Component, PropTypes } from 'react'; i
我是一名优秀的程序员,十分优秀!