Audio qrafı

Web Audio API səsi qovşaqlardan ibarət qraf kimi emal edir. Mənba siqnal yaradır, effekt qovşaqları onu dəyişir, sonuncu qovşaq səsi dinamiklərə göndərir.

Osilyator filtrə, gain-ə, analizatora və dinamiklərə qoşulur
Osilyator filtrə, gain-ə, analizatora və dinamiklərə qoşulur
  • AudioContext bütün səs işinin konteyneri və saatıdır. ctx.currentTime saniyə ilə vaxtdır.
  • Mənbələr: OscillatorNode (sintez olunmuş dalğa) və AudioBufferSourceNode (nümunə).
  • Effektlər: GainNode (səs səviyyəsi), BiquadFilterNode (filtr), StereoPannerNode (balans).
  • AnalyserNode yalnız siqnalı ölçür; ctx.destination çıxışdır.
  • gain.gain və osc.frequency kimi AudioParam dəyərlərini cədvəl üzrə dəyişmək olar.

Qovşaqlar connect() ilə birləşdirilir; o, verilən qovşağı qaytarır, ona görə zəncirlər soldan sağa oxunur.


AudioContext və autoplay siyasəti

javascript
const ctx = new AudioContext();

startButton.addEventListener('click', async () => {
  if (ctx.state === 'suspended') {
    await ctx.resume();
  }
  beep();
});

İstifadəçi səhifə ilə qarşılıqlı əlaqədə olmayana qədər brauzerlər səsi bloklayır. Əvvəlcədən yaradılmış kontekst suspended vəziyyətində başlayır. ctx.resume() metodunu klik, toxunuş və ya düymə emalçısında çağırın və səsi oradan başladın.

⚠️ resume() istifadəçi hərəkətindən kənarda çağırılsa, onun promise-i heç vaxt tamamlanmaya bilər. Yüklənəndə səs çalmağa çalışmaq əvəzinə "Start" düyməsi göstərin.


Osilyator, gain və zərf

OscillatorNode dalğa yaradır: sine, square, sawtooth və ya triangle. Tezlik hertzlə verilir; 440 Hz la notudur.