我是一名业余音乐家,我向几乎没有甚至没有音乐教育的小学生讲授音乐基础知识。
我已将a small app in Processing.JS编码成一个圆圈,显示了西洋音阶的12种音符(A,A#,B,C,C#,D,D#,E,F,F#,G,G#) ,并突出显示它们之间的关系,从而构成音阶/音程。
我希望能够触摸特定的音符名称并生成与该音符相关的正弦音(最明显的音调是A = ...,220Hz,440Hz,880Hz等)
因此,要在Processing.JS中对其进行分解,是否有可能在检测到鼠标事件时生成所需频率的正弦音?如果有人可以帮助我解决这个问题,我可以解决其余的问题。
明确一点:最好的情况是,我不太擅长Javascript,并且对中等处理也很适中。我知道Javascript可以做这样的事情,但我不知道如何在此Web应用程序中集成这两种语言。
答案 0 :(得分:1)
就像您暗示的那样,您将必须使用JavaScript进行此操作。乔治(George)的评论颇受关注:您应该首先阅读this page。
但是基本上要记住的是,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>
然后,您可以在Processing.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,因为不再处理Processing.js。