Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
document.body.addEventListener('keydown', press);
function press(e) {
var map = 'zsxdcvgbhnjmq2w3er5t6y7ui9o0p', key = map.indexOf(String.fromCharCode(e.which).toLowerCase());
if (key + 1) play({target: document.querySelector('div:nth-child(' + (29 + key) + ')')});}
На некоторых музыкальных инструментах можно извлечь только звуки натурального звукоряда, cреди них фанфара (и горн), рог (охотничий рог, альпийский рог, почтовый рожок, шофар и т.п.), натуральная труба (особенно её старинные разновидности, например, лур), натуральная валторна, так называемые обертоновые флейты (молдавская тилинка, некоторые разновидности общетюркского шогура) и другие духовые инструменты, а также варган. По отношению к этим и подобным инструментам говорят, что они звучат в «натуральном строе».И если такие инструменты нужно добавить в оркестр — то и остальные придется под них подстраивать. А так — да, равномерно-темперированный строй давно уже стандарт…
установили форму сигнала: osc.type = «square»; (по умолчанию был синусоидальный)
Каждая октава на клавиатуре состоит из двенадцати нот:
До, До-диез, Ре, Ре-диез, Ми, Фа, Фа-диез, Соль, Соль-диез, Ля, Ля-диез/Си-бемоль, Си
gainNode = context.createGain();
//<...>
osc.type = "square";
osc.connect(gainNode); //Меняем дестинейшен вот тут
//ниже - энвелоуп
gainNode.connect(context.destination);
gainNode.gain.value = 0.5;
gainNode.gain.linearRampToValueAtTime(0, context.currentTime);
gainNode.gain.setTargetAtTime(1,context.currentTime,0.1);
gainNode.gain.setTargetAtTime(0,context.currentTime+0.1,0.3);
osc.start(0);
setTimeout(function() {
osc.stop(0);
osc.disconnect(gainNode); //Меняем дестинейшен вот тут, заодно делаем звучание подлиннее
}, 5000 / 2);}
В общем, не удивляйтесь, если левая часть клавиатуры будто бы вообще не звучит.
Пианино в 24 строки на Javascript: если играть, то музыку