@ng-web-apis/audio
Version:
This is a library for declarative use of Web Audio API with Angular
29 lines • 3.89 kB
JavaScript
import { inject, Pipe } from '@angular/core';
import { AUDIO_CONTEXT } from '../tokens/audio-context';
import * as i0 from "@angular/core";
class WebAudioPeriodicWavePipe {
context = inject(AUDIO_CONTEXT);
/**
* Creates {@link PeriodicWave} to use with {@link OscillatorNode}
*
* @param real cosine terms (traditionally the A terms)
* @param imag sine terms (traditionally the B terms)
* @param disableNormalization see {@lin PeriodicWaveConstraints}
*/
transform(real, imag, disableNormalization) {
return this.context.createPeriodicWave(new Float32Array(real), imag ? new Float32Array(imag) : new Float32Array(real.length), {
disableNormalization: !!disableNormalization,
});
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioPeriodicWavePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: WebAudioPeriodicWavePipe, isStandalone: true, name: "waPeriodicWave" });
}
export { WebAudioPeriodicWavePipe };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioPeriodicWavePipe, decorators: [{
type: Pipe,
args: [{
standalone: true,
name: 'waPeriodicWave',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kaWMtd2F2ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9hdWRpby9zcmMvcGlwZXMvcGVyaW9kaWMtd2F2ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFdEQsTUFJYSx3QkFBd0I7SUFDaEIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVqRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQ1osSUFBYyxFQUNkLElBQWUsRUFDZixvQkFBOEI7UUFFOUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUNsQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUM3RDtZQUNJLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxvQkFBb0I7U0FDL0MsQ0FDSixDQUFDO0lBQ04sQ0FBQzt3R0F0QlEsd0JBQXdCO3NHQUF4Qix3QkFBd0I7O1NBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUpwQyxJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsZ0JBQWdCO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aW5qZWN0LCBQaXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBVURJT19DT05URVhUfSBmcm9tICcuLi90b2tlbnMvYXVkaW8tY29udGV4dCc7XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICd3YVBlcmlvZGljV2F2ZScsXG59KVxuZXhwb3J0IGNsYXNzIFdlYkF1ZGlvUGVyaW9kaWNXYXZlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdChBVURJT19DT05URVhUKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMge0BsaW5rIFBlcmlvZGljV2F2ZX0gdG8gdXNlIHdpdGgge0BsaW5rIE9zY2lsbGF0b3JOb2RlfVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlYWwgY29zaW5lIHRlcm1zICh0cmFkaXRpb25hbGx5IHRoZSBBIHRlcm1zKVxuICAgICAqIEBwYXJhbSBpbWFnIHNpbmUgdGVybXMgKHRyYWRpdGlvbmFsbHkgdGhlIEIgdGVybXMpXG4gICAgICogQHBhcmFtIGRpc2FibGVOb3JtYWxpemF0aW9uIHNlZSB7QGxpbiBQZXJpb2RpY1dhdmVDb25zdHJhaW50c31cbiAgICAgKi9cbiAgICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgICAgICByZWFsOiBudW1iZXJbXSxcbiAgICAgICAgaW1hZz86IG51bWJlcltdLFxuICAgICAgICBkaXNhYmxlTm9ybWFsaXphdGlvbj86IGJvb2xlYW4sXG4gICAgKTogUGVyaW9kaWNXYXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5jcmVhdGVQZXJpb2RpY1dhdmUoXG4gICAgICAgICAgICBuZXcgRmxvYXQzMkFycmF5KHJlYWwpLFxuICAgICAgICAgICAgaW1hZyA/IG5ldyBGbG9hdDMyQXJyYXkoaW1hZykgOiBuZXcgRmxvYXQzMkFycmF5KHJlYWwubGVuZ3RoKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlTm9ybWFsaXphdGlvbjogISFkaXNhYmxlTm9ybWFsaXphdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19