Skip to content
This repository has been archived by the owner on Sep 22, 2021. It is now read-only.

audiojs/audio-oscillator

Repository files navigation

audio-oscillator Build Status unstable Greenkeeper badge

Generate periodic oscillation data.

Usage

$ npm install audio-oscillator

const oscillate = require('audio-oscillator/sine')
const output = require('web-audio-write')()

// render sine sound stream
let buf = new AudioBuffer({ channels: 2, sampleRate: 44100, length: 1024 })
;(async function frame() {
  await output(oscillate(buf, { frequency: 440 })))
  frame()
})()

API

let array = oscillate.<waveform>(length|dst, frequency=440|options?)

Generate periodic-function waveform samples into a dst float array / array of arrays / AudioBuffer. If length is provided, a new mono array is created. The phase of consequently generated chunks is aligned, if the same array is passed multiple times.

let oscillate = require('audio-oscillator')

let samples = new Float64Array(1024)

oscillate.sine(samples, 440)

// output array has additional properties of the data
// samples.phase, samples.frequency, samples.detune, samples.sampleRate

// next data phase is aligned with the previous data
oscillate.sine(samples)

options

Property Default Meaning
frequency, f 440 Frequency of oscillations, in Hz.
detune 0 Detune of oscillations -100...+100, in cents.
phase, t 0 Normalized initial phase of waveform, 0..1.
sampleRate, rate 44100 Sample rate of output data.

waveform

Available waveforms with their additional options:

Type Waveshape Parameters
'sin' sine
'cos' cosine
'saw' sawtooth inverse=false
'tri' triangle ratio=0.5
'rect' square ratio=0.5
'series' fourier real=[0, 1], imag=[0, 0], normalize=true
'clausen' clausen limit=10
'step' step samples=10

Related

License

© 2017 Dmitry Yv. MIT License

About

Generate periodic oscillation into an array/audiobuffer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published