是否可以在处理.JS中生成正弦音?



我是一名业余音乐家,我为几乎没有音乐教育的学童教授音乐基础知识。

我在处理中编写了一个小应用程序.JS它将西方音阶的 12 个音符(A、A#、B、C、C#、D、D#、E、F、F#、G、G#(显示在一个圆圈中,并突出显示了它们之间的关系,从中构建音阶/音程。

我希望能够触摸特定的音符名称并生成与该音符相关的正弦音(非常明显的音调是 A = ..., 220Hz, 440Hz, 880Hz, ...(

因此,为了分解它,在处理.JS中,是否有可能在检测到鼠标事件时生成所需频率的正弦音?如果有人能帮我解决这个问题,我就可以弄清楚其余的。

需要明确的是:我不太擅长Javascript,充其量在处理方面是中等的。我知道Javascript可以做这样的事情,但我不知道如何在这个Web应用程序中集成这两种语言。

就像你暗示的那样,你将不得不在 JavaScript 中执行此操作。乔治的评论很准确:你应该从阅读这个页面开始。

但基本上,要记住的是 Processing.js 被转换为 JavaScript,因此您可以直接从 Processing.js 调用 JavaScript 代码。

我会从谷歌搜索"JavaScript正弦音"之类的东西开始,以获得大量的结果。Tone.js似乎是一个可以做你想做的事的库,但我相信还有很多其他的。

要使用 Tone.js 库,您需要首先将其导入 HTML 中,这与你已经导入 Processing.js 库的方式完全相同:

<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/13.3.10/Tone.js"></script>

然后,您可以在处理.js代码中使用 Tone.js:

var synth ;
void setup(){
//create a synth and connect it to the master output (your speakers)
synth = new Tone.Synth().toMaster();
}
void mousePressed(){
//play a middle 'C' for the duration of an 8th note
synth.triggerAttackRelease('C4', '8n')
}
void draw(){}

请注意,Processing.js 在进行转换时会保留 JavaScript 代码,因此您的最终输出只是一堆 JavaScript 代码。这就是为什么你可以像这样混合JavaScript代码和Processing.js代码。

但就像乔治说的,你可能应该考虑切换到P5.js,因为处理.js不再维护了。

无耻的自我推销:这里有一个关于处理.js的教程,这里有一些关于P5.js的教程。

最新更新