1.0.0 • Published 8 years ago

duolet.worker v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

duolet.worker

NPM Version License

DRIVER in the main thread; DSP in the worker thread. This architecture works on the browser.

duolet.worker

Installation

$ npm install duolet.worker

Example

in the main thread

const duolet = require("duolet.worker/client")();
const Driver = require("pico.driver.webaudio");

let audioContext = new AudioContext();

duolet.compose({ workerPath: "/path/to/worker", driver: new Driver() });
duolet.setup({ context: audioContext, bufferLength: 1024 });

duolet.sendToWorker({ type: "start" });

in the worker thread

const duolet = require("duolet.worker/worker")();
const DSP = require("./dsp");

duolet.compose({ dsp: new DSP() });

duolet.recvFromClient = (e) => {
  if (e.type === "start") {
    duolet.start();
  }
};

API

client/Duolet

  • constructor()

Instance attributes

  • driver: pico.driver
  • sampleRate: number (implicit readonly)
  • bufferLength: number (implicit readonly)

Instance methods

  • compose(spec: object): self
  • setup(opts: object): self
  • start(): self
  • stop(): self
  • sendToServer(data: any): void

worker/Duolet

  • constructor(self: DedicatedWorkerGlobalScope)

Instance attributes

  • dsp: duoletDSP
  • sampleRate: number (implicit readonly)
  • bufferLength: number (implicit readonly)

Instance methods

  • compose(spec: object): self
  • setup(opts: object): self
  • start(): self
  • stop(): self
  • sendToClient(data: any): void

Interfaces

interface duoletDSP {
  optional setup(opts: object) => void;
  optional start() => void;
  optional stop() => void;
  process(bufL: Float32Array, bufR: Float32Array) => void;
}

Audio Drivers

License

MIT

1.0.0

8 years ago

0.8.0

8 years ago

0.6.0

8 years ago