UNPKG

@pixi/sound

Version:

WebAudio API playback library with filters

1 lines 2.54 kB
{"version":3,"file":"sineTone.mjs","sources":["../../src/utils/sineTone.ts"],"sourcesContent":["import { Sound } from '../Sound';\nimport { WebAudioContext } from '../webaudio/WebAudioContext';\nimport { WebAudioMedia } from '../webaudio/WebAudioMedia';\n\n/**\n * Create a new sound for a sine wave-based tone. **Only supported with WebAudio**\n * @memberof utils\n * @param hertz - Frequency of sound.\n * @param seconds - Duration of sound in seconds.\n * @return New sound.\n */\nfunction sineTone(hertz = 200, seconds = 1): Sound\n{\n const sound = Sound.from({\n singleInstance: true,\n });\n\n if (!(sound.media instanceof WebAudioMedia))\n {\n return sound;\n }\n\n const media = sound.media as WebAudioMedia;\n const context = sound.context as WebAudioContext;\n\n // set default value\n const nChannels = 1;\n const sampleRate = 48000;\n const amplitude = 2;\n\n // create the buffer\n const buffer = context.audioContext.createBuffer(\n nChannels,\n seconds * sampleRate,\n sampleRate,\n );\n const fArray = buffer.getChannelData(0);\n\n // fill the buffer\n for (let i = 0; i < fArray.length; i++)\n {\n const time = i / buffer.sampleRate;\n const angle = hertz * time * 2 * Math.PI;\n\n fArray[i] = Math.sin(angle) * amplitude;\n }\n\n // set the buffer\n media.buffer = buffer;\n sound.isLoaded = true;\n\n return sound;\n}\n\nexport { sineTone };\n"],"names":[],"mappings":";;;AAWA,SAAS,QAAS,CAAA,KAAA,GAAQ,GAAK,EAAA,OAAA,GAAU,CACzC,EAAA;AACI,EAAM,MAAA,KAAA,GAAQ,MAAM,IAAK,CAAA;AAAA,IACrB,cAAgB,EAAA,IAAA;AAAA,GACnB,CAAA,CAAA;AAED,EAAI,IAAA,EAAE,KAAM,CAAA,KAAA,YAAiB,aAC7B,CAAA,EAAA;AACI,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAEA,EAAA,MAAM,QAAQ,KAAM,CAAA,KAAA,CAAA;AACpB,EAAA,MAAM,UAAU,KAAM,CAAA,OAAA,CAAA;AAGtB,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAClB,EAAA,MAAM,UAAa,GAAA,IAAA,CAAA;AACnB,EAAA,MAAM,SAAY,GAAA,CAAA,CAAA;AAGlB,EAAM,MAAA,MAAA,GAAS,QAAQ,YAAa,CAAA,YAAA;AAAA,IAChC,SAAA;AAAA,IACA,OAAU,GAAA,UAAA;AAAA,IACV,UAAA;AAAA,GACJ,CAAA;AACA,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,cAAA,CAAe,CAAC,CAAA,CAAA;AAGtC,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,CAAO,QAAQ,CACnC,EAAA,EAAA;AACI,IAAM,MAAA,IAAA,GAAO,IAAI,MAAO,CAAA,UAAA,CAAA;AACxB,IAAA,MAAM,KAAQ,GAAA,KAAA,GAAQ,IAAO,GAAA,CAAA,GAAI,IAAK,CAAA,EAAA,CAAA;AAEtC,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,IAAK,CAAA,GAAA,CAAI,KAAK,CAAI,GAAA,SAAA,CAAA;AAAA,GAClC;AAGA,EAAA,KAAA,CAAM,MAAS,GAAA,MAAA,CAAA;AACf,EAAA,KAAA,CAAM,QAAW,GAAA,IAAA,CAAA;AAEjB,EAAO,OAAA,KAAA,CAAA;AACX;;;;"}