web-audio-api - 在 ToneJS 中的 Time 设置 baseFrequency
问题描述
我有一个用 ToneJS 构建的简单合成器,我想在将来安排一个笔记。我的合成器有一个FrequencyEnvelope
连接到一个Oscillator
.
await Tone.start();
const fEnv = new Tone.FrequencyEnvelope({
attack: 0.5, decay: 0.5, sustain: 0.5, release: 0.5,
baseFrequency: "a7",
octaves: 1,});
const env = new Tone.Envelope({
attack: 0.01, decay: 0.1, sustain: 0.2, release: 0.7});
const osc = new Tone.Oscillator({type: 'square'});
const gain = new Tone.Gain();
env.connect(gain.gain);
fEnv.connect(osc.frequency);
osc.connect(gain);
gain.toDestination();
osc.start();
我可以通过设置频率包络的 baseFrequency 并触发攻击和释放来播放音符:
fEnv.baseFrequency = 'c2';
env.triggerAttackRelease('4n');
fEnv.triggerAttackRelease('4n');
这很好,但如果我想在未来改变音高以作为未来的触发器,我不知道该怎么做
const now = Tone.context.now();
fEnv.baseFrequency.setValueAtTime('e2', now+1);
env.triggerAttackRelease('4n', now+1);
fEnv.triggerAttackRelease('4n', now+1);
如何安排基本频率,以便在我想要的时候发生音高变化?
解决方案
推荐阅读
- flutter - Flutter 创建新数据库时将旧数据库中的所有表和数据复制到新数据库中
- c# - 将空值设置为列表中最接近的最后一个非空值 - LINQ
- javascript - Vuetify,动画 v-data-table tr
- python - Selenium Webdriver Python 不会通过 xpath 找到要单击的元素,尽管它存在于页面上
- javascript - JavaScript中字符串和数字的比较
- c# - iText 7 PDF 解析器在 C# 中返回不可读的字符
- excel - Excel Mac VBA 编辑器 - 无法添加引用
- php - 加载 PHP7.2 时,Apachectl 打印出奇怪的错误并死掉。为什么?
- python - pandas.DataFrame.join() 在加入时改变了我的值的顺序
- java - 使用蛮力将所有可能的二进制数组合生成为数组?