Ctrl K
ComunidadGuías…

public/audio-worklets/pink-noise-processor.js

Rama chore/all-my-stuffs · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
class PinkNoiseProcessor extends AudioWorkletProcessor {
  b0 = 0;
  b1 = 0;
  b2 = 0;
  b3 = 0;
  b4 = 0;
  b5 = 0;
  b6 = 0;

  process(inputs, outputs) {
    const output = outputs[0];

    for (const channel of output) {
      for (let i = 0; i < channel.length; i++) {
        const white = Math.random() * 2 - 1;

        this.b0 = 0.99886 * this.b0 + white * 0.0555179;

        this.b1 = 0.99332 * this.b1 + white * 0.0750759;

        this.b2 = 0.969 * this.b2 + white * 0.153852;

        this.b3 = 0.8665 * this.b3 + white * 0.3104856;

        this.b4 = 0.55 * this.b4 + white * 0.5329522;

        this.b5 = -0.7616 * this.b5 - white * 0.016898;

        let pink = this.b0 + this.b1 + this.b2 + this.b3 + this.b4 + this.b5 + this.b6 + white * 0.5362;

        this.b6 = white * 0.115926;

        channel[i] = pink * 0.11;
      }
    }

    return true;
  }
}

registerProcessor('pink-noise-processor', PinkNoiseProcessor);