UNPKG

@ng-web-apis/audio

Version:

This is a library for declarative use of Web Audio API with Angular

29 lines 3.89 kB
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