3.1.1 • Published 5 years ago
audio-oscillator v3.1.1
audio-oscillator
Generate periodic oscillation data.
Usage
const oscillate = require('audio-oscillator/sine')
const output = require('web-audio-write')()
// render sine sound stream
;(async function frame() {
await output(oscillate(new AudioBuffer({
channels: 2, sampleRate: 44100, length: 1024
}), 440))
frame()
})()
API
let array = oscillate.<waveform>(length=1024|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' | ||
'cos' | ||
'saw' | inverse=false | |
'tri' | ratio=0.5 | |
'rect' | ratio=0.5 | |
'series' | real=[0, 1] , imag=[0, 0] , normalize=true | |
'clausen' | limit=10 | |
'step' | samples=10 |
Related
- periodic-function − a collection of periodic functions.
License
© 2017 Dmitry Yv. MIT License