Generate periodic oscillation data.
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()
})()
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)
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. |
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 |
- periodic-function − a collection of periodic functions.
© 2017 Dmitry Yv. MIT License