Skip to main content

Hardware: Web Audio API & Synth

Навігація

Hardware: Web Audio API & Synth

techno4 v2.0.4 Core Component MIT License GitHub Repository CO «CF TECHNO4»

Вбудована підтримка інтерактивної роботи з цифровим звуком у реальному часі: Web Audio контекст, поліфонічний синтезатор, вибір хвильових форм (Sine, Square, Sawtooth, Triangle) та живий Canvas-осцилограф.

Архітектура звукового синтезатора

Синтезатор використовує AudioContext, вузли осциляторів (OscillatorNode), підсилювачі (GainNode) та вузол аналізу частот (AnalyserNode) для рендерингу осцилограми:
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioCtx.createAnalyser();
analyser.fftSize = 2048;

function playNote(freq, type = 'sine') {
  const osc = audioCtx.createOscillator();
  const gain = audioCtx.createGain();
  osc.type = type;
  osc.frequency.setValueAtTime(freq, audioCtx.currentTime);
  
  osc.connect(gain);
  gain.connect(analyser);
  analyser.connect(audioCtx.destination);
  
  gain.gain.setValueAtTime(0.3, audioCtx.currentTime);
  gain.gain.exponentialRampToValueAtTime(0.001, audioCtx.currentTime + 1.2);
  
  osc.start();
  osc.stop(audioCtx.currentTime + 1.2);
}