Я - любительский музыкант, и я преподаю основы музыки школьникам, у которых практически нет музыкального образования.
Я закодировал небольшое приложение в Processing.JS, которое показывает 12 музыкальных нот западного масштаба (A, A #, B, C, С#, D, D #, E, F, F #, G, G #) в круге, и подчеркивает отношения между ними, из которых строятся музыкальные шкалы/интервалы.
Я хочу иметь возможность касаться определенного имени заметки и генерировать синус-тон, связанный с этой записью (очень очевидный из них: A =..., 220 Гц, 440 Гц, 880 Гц,...)
Итак, чтобы разбить его, в Processing.JS, можно ли генерировать синус-тон нужной частоты при обнаружении события мыши? Если кто-то может помочь мне разобраться в этом, я смогу выяснить остальное.
Чтобы быть ясным: я не слишком хорошо разбираюсь в Javascript, и в лучшем случае я умер в обработке. Я знаю, что Javascript может делать такие вещи, но я не знаю, как интегрировать два языка в этом webapp.
Как вы намекали, вам придется сделать это в JavaScript. Джордж замечает: вы должны начать с чтения этой страницы.
Но в основном, нужно иметь в виду, что Processing.js преобразуется в JavaScript, поэтому вы можете вызвать код JavaScript непосредственно из Processing.js.
Я бы начал с googling что-то вроде "синус-тона JavaScript" за тонну результатов. Tone.js, похоже, является библиотекой, которая делает то, что вы хотите, но я уверен, что есть много других.
Чтобы использовать библиотеку Tone.js, вам нужно сначала импортировать ее в свой HTML, как именно вы уже импортируете библиотеку Processing.js:
<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/13.3.10/Tone.js"></script>
Затем вы можете использовать Tone.js в коде Processing.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 больше не поддерживается.
Бесстыдная самореклама: вот учебник по Processing.js, и вот несколько уроков на P5.js.