A jQuery for web audio. This is just a proof of concept.
- To make Web Audio API easier to work with. Less code but do more.
- To make Web Audio API more "functional" like
To create an OscillatorNode
with an id osc
.
var o1 = wave('oscillator#osc', {
frequency: 750
detune: 10,
type: 'sine'
});
var o2 = wave('#osc'); // only after created o1
var o3 = wave(audioContext.createOscillator());
// get the same oscillator later
o1 === o2 // true
o1 === o3 // true
Connecting source with other AudioNode to destination.
wave('source#s', { buffer })
.conenct('oscillator#main', { f: 750 })
.conenct('gain#g', { gain: 10 })
.conenct('filter#f', { type: 'lowshelf', f: 1000 })
.conenct('analyser#a')
.start('#main', currentTime + 1)
.destination();
Adding handler for event onended
on the oscillator.
wave('oscillator#osc')
.on('ended', (e) => console.log(e));
// in draft
wave('bufferSource#bs', { buffer })
.conenct('splitter#s', 2)
.conenct('gain#g', { gain: 0.5 }, '#s1')
.
.conenct('oscillator#o', { f: 750 })
.destination();
destination()
.conenct('merger')
.conenct('splitter')
// in draft
wave('source#s', { buffer }).mono()
let stream = wave.getUserMedia({ audio: true });
wave('mediaStreamSource#mss', stream)
.destination();
let stream = wave.getUserMedia({ audio: true });
wave.record(stream)
.on('dataavailable', () => {})
.on('stop', () => {})
.start(0)
let constraints = { audio: true };
wave('video', { srcObject: wave.getUserMedia(constraints) })
.on('loadedmetadata', function(e) {
this.play();
})