From 006fd849082bc95f0a8a28ad2286656f83d083bf Mon Sep 17 00:00:00 2001 From: Heiko Hotz <63367770+heiko-hotz@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:35:48 +0000 Subject: [PATCH] fix: Correct syntax errors in PCM processor (#1569) # Description Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Follow the [`CONTRIBUTING` Guide](https://github.com/GoogleCloudPlatform/generative-ai/blob/main/CONTRIBUTING.md). - [ ] You are listed as the author in your notebook or README file. - [ ] Your account is listed in [`CODEOWNERS`](https://github.com/GoogleCloudPlatform/generative-ai/blob/main/.github/CODEOWNERS) for the file(s). - [X] Make your Pull Request title in the specification. - [ ] Ensure the tests and linter pass (Run `nox -s format` from the repository root to format). - [ ] Appropriate docs were updated (if necessary) Fixes #1567 --- .../frontend/pcm-processor.js | 54 +++++++++---------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/gemini/multimodal-live-api/websocket-demo-app/frontend/pcm-processor.js b/gemini/multimodal-live-api/websocket-demo-app/frontend/pcm-processor.js index e5ff359a46c..b79a36caf05 100644 --- a/gemini/multimodal-live-api/websocket-demo-app/frontend/pcm-processor.js +++ b/gemini/multimodal-live-api/websocket-demo-app/frontend/pcm-processor.js @@ -1,40 +1,34 @@ -class PCMProcessor extends AudioWorkletProcessor { - constructor() { - super(); - this.buffer = new Float32Array(); - /** * @class PCMProcessor * @extends AudioWorkletProcessor - * @description Processes PCM audio data. + * @description Processes PCM audio data in a Web Audio API context */ - this.port.onmessage = (e) => { - const newData = e.data; - const newBuffer = new Float32Array(this.buffer.length + newData.length); - newBuffer.set(this.buffer); - newBuffer.set(newData, this.buffer.length); - this.buffer = newBuffer; - }; - const newData = e.data; - const newBuffer = new Float32Array(this.buffer.length + newData.length); - newBuffer.set(this.buffer); - newBuffer.set(newData, this.buffer.length); - this.buffer = newBuffer; - }; - } +class PCMProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.buffer = new Float32Array(); - process(inputs, outputs, parameters) { - const output = outputs[0]; - const channelData = output[0]; + this.port.onmessage = (e) => { + const newData = e.data; + const newBuffer = new Float32Array(this.buffer.length + newData.length); + newBuffer.set(this.buffer); + newBuffer.set(newData, this.buffer.length); + this.buffer = newBuffer; + }; + } - if (this.buffer.length >= channelData.length) { - channelData.set(this.buffer.slice(0, channelData.length)); - this.buffer = this.buffer.slice(channelData.length); - return true; - } + process(inputs, outputs, parameters) { + const output = outputs[0]; + const channelData = output[0]; - return true; + if (this.buffer.length >= channelData.length) { + channelData.set(this.buffer.slice(0, channelData.length)); + this.buffer = this.buffer.slice(channelData.length); + return true; } + + return true; + } } -registerProcessor('pcm-processor', PCMProcessor); \ No newline at end of file +registerProcessor("pcm-processor", PCMProcessor);