home.social

#webaudioapi — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #webaudioapi, aggregated by home.social.

  1. Streaming audio to OpenAI in your browser is cool… until you deal with PCM16.

    The browser gives you Float32 audio. The API expects PCM16 at 24kHz.

    That means:

    Float32 → clamp → Int16 → base64 → send to realtime api

    If you don’t handle the conversion properly, you’ll hear it right away — crackling, silence, or wrong pitch.

    Wrote a quick guide on how to do it correctly: l.zfir.dev/6rbGCiN

    #PCM16 #WebAudioAPI #OpenAI #OpenAIRealtime #JavaScript

  2. Streaming audio to OpenAI in your browser is cool… until you deal with PCM16.

    The browser gives you Float32 audio. The API expects PCM16 at 24kHz.

    That means:

    Float32 → clamp → Int16 → base64 → send to realtime api

    If you don’t handle the conversion properly, you’ll hear it right away — crackling, silence, or wrong pitch.

    Wrote a quick guide on how to do it correctly: l.zfir.dev/6rbGCiN

    #PCM16 #WebAudioAPI #OpenAI #OpenAIRealtime #JavaScript

  3. Streaming audio to OpenAI in your browser is cool… until you deal with PCM16.

    The browser gives you Float32 audio. The API expects PCM16 at 24kHz.

    That means:

    Float32 → clamp → Int16 → base64 → send to realtime api

    If you don’t handle the conversion properly, you’ll hear it right away — crackling, silence, or wrong pitch.

    Wrote a quick guide on how to do it correctly: l.zfir.dev/6rbGCiN

    #PCM16 #WebAudioAPI #OpenAI #OpenAIRealtime #JavaScript

  4. Streaming audio to OpenAI in your browser is cool… until you deal with PCM16.

    The browser gives you Float32 audio. The API expects PCM16 at 24kHz.

    That means:

    Float32 → clamp → Int16 → base64 → send to realtime api

    If you don’t handle the conversion properly, you’ll hear it right away — crackling, silence, or wrong pitch.

    Wrote a quick guide on how to do it correctly: l.zfir.dev/6rbGCiN

    #PCM16 #WebAudioAPI #OpenAI #OpenAIRealtime #JavaScript

  5. Streaming audio to OpenAI in your browser is cool… until you deal with PCM16.

    The browser gives you Float32 audio. The API expects PCM16 at 24kHz.

    That means:

    Float32 → clamp → Int16 → base64 → send to realtime api

    If you don’t handle the conversion properly, you’ll hear it right away — crackling, silence, or wrong pitch.

    Wrote a quick guide on how to do it correctly: l.zfir.dev/6rbGCiN

    #PCM16 #WebAudioAPI #OpenAI #OpenAIRealtime #JavaScript

  6. #TIL from building a web audio player (for the mixes):

    #Safari's #opus support is still quirky. With a #webm container, playback works but AnalyserNodes won't receive anything to compute frequency data with. With #ogg, `getByteFrequencyData()` works, but the audio element calculates the wrong duration, prob. b/c it always assumes CBR. Also if you build the audio pipeline before the first user interaction in Safari, nothing will get routed to the speakers

    But still, the #WebAudioAPI is awesome!

  7. #TIL from building a web audio player (for the mixes):

    #Safari's #opus support is still quirky. With a #webm container, playback works but AnalyserNodes won't receive anything to compute frequency data with. With #ogg, `getByteFrequencyData()` works, but the audio element calculates the wrong duration, prob. b/c it always assumes CBR. Also if you build the audio pipeline before the first user interaction in Safari, nothing will get routed to the speakers

    But still, the #WebAudioAPI is awesome!

  8. #TIL from building a web audio player (for the mixes):

    #Safari's #opus support is still quirky. With a #webm container, playback works but AnalyserNodes won't receive anything to compute frequency data with. With #ogg, `getByteFrequencyData()` works, but the audio element calculates the wrong duration, prob. b/c it always assumes CBR. Also if you build the audio pipeline before the first user interaction in Safari, nothing will get routed to the speakers

    But still, the #WebAudioAPI is awesome!

  9. #TIL from building a web audio player (for the mixes):

    #Safari's #opus support is still quirky. With a #webm container, playback works but AnalyserNodes won't receive anything to compute frequency data with. With #ogg, `getByteFrequencyData()` works, but the audio element calculates the wrong duration, prob. b/c it always assumes CBR. Also if you build the audio pipeline before the first user interaction in Safari, nothing will get routed to the speakers

    But still, the #WebAudioAPI is awesome!

  10. #TIL from building a web audio player (for the mixes):

    #Safari's #opus support is still quirky. With a #webm container, playback works but AnalyserNodes won't receive anything to compute frequency data with. With #ogg, `getByteFrequencyData()` works, but the audio element calculates the wrong duration, prob. b/c it always assumes CBR. Also if you build the audio pipeline before the first user interaction in Safari, nothing will get routed to the speakers

    But still, the #WebAudioAPI is awesome!

  11. I just released the alpha of Web Audio Studio.

    It's a browser-based tool for writing real Web Audio API code and visualizing the runtime graph it produces. You can inspect connections, follow signal flow, and insert analysers to see what's happening between nodes.

    Everything runs locally in the browser. No signup. Desktop-only for now.

    Would love feedback from anyone working with #WebAudio or #DSP.

    webaudio.studio

    #webaudio #webaudioapi #dsp #webdev #creativecoding

  12. I just released the alpha of Web Audio Studio.

    It's a browser-based tool for writing real Web Audio API code and visualizing the runtime graph it produces. You can inspect connections, follow signal flow, and insert analysers to see what's happening between nodes.

    Everything runs locally in the browser. No signup. Desktop-only for now.

    Would love feedback from anyone working with #WebAudio or #DSP.

    webaudio.studio

    #webaudio #webaudioapi #dsp #webdev #creativecoding

  13. I just released the alpha of Web Audio Studio.

    It's a browser-based tool for writing real Web Audio API code and visualizing the runtime graph it produces. You can inspect connections, follow signal flow, and insert analysers to see what's happening between nodes.

    Everything runs locally in the browser. No signup. Desktop-only for now.

    Would love feedback from anyone working with #WebAudio or #DSP.

    webaudio.studio

    #webaudio #webaudioapi #dsp #webdev #creativecoding

  14. I just released the alpha of Web Audio Studio.

    It's a browser-based tool for writing real Web Audio API code and visualizing the runtime graph it produces. You can inspect connections, follow signal flow, and insert analysers to see what's happening between nodes.

    Everything runs locally in the browser. No signup. Desktop-only for now.

    Would love feedback from anyone working with #WebAudio or #DSP.

    webaudio.studio

    #webaudio #webaudioapi #dsp #webdev #creativecoding

  15. I just released the alpha of Web Audio Studio.

    It's a browser-based tool for writing real Web Audio API code and visualizing the runtime graph it produces. You can inspect connections, follow signal flow, and insert analysers to see what's happening between nodes.

    Everything runs locally in the browser. No signup. Desktop-only for now.

    Would love feedback from anyone working with #WebAudio or #DSP.

    webaudio.studio

    #webaudio #webaudioapi #dsp #webdev #creativecoding

  16. I've worked out how to output discrete values from an LFO’s continuous wave. I can use these multipliers to fluctuate any prop over time. Pretty endless possibilities. In this case, I'm altering a ratio that controls probability (chance) of playback. #WebAudioAPI

  17. I've worked out how to output discrete values from an LFO’s continuous wave. I can use these multipliers to fluctuate any prop over time. Pretty endless possibilities. In this case, I'm altering a ratio that controls probability (chance) of playback. #WebAudioAPI

  18. I've worked out how to output discrete values from an LFO’s continuous wave. I can use these multipliers to fluctuate any prop over time. Pretty endless possibilities. In this case, I'm altering a ratio that controls probability (chance) of playback. #WebAudioAPI

  19. I've worked out how to output discrete values from an LFO’s continuous wave. I can use these multipliers to fluctuate any prop over time. Pretty endless possibilities. In this case, I'm altering a ratio that controls probability (chance) of playback. #WebAudioAPI

  20. I've worked out how to output discrete values from an LFO’s continuous wave. I can use these multipliers to fluctuate any prop over time. Pretty endless possibilities. In this case, I'm altering a ratio that controls probability (chance) of playback. #WebAudioAPI

  21. Daniel's deep dive into the Web Audio API attempts to bring retro Gameboy vibes to life, proving that nostalgia is only a square wave away 🎮➡️📈. Who knew that painfully recreating 8-bit sounds could be the pinnacle of modern web development? 👾🔊 Let's all pretend we needed another reason to procrastinate with audio nerdiness! 🎶💻
    danblack.co/blog/variable-duty #WebAudioAPI #RetroGaming #8BitNostalgia #AudioNerd #Procrastination #HackerNews #ngated

  22. Daniel's deep dive into the Web Audio API attempts to bring retro Gameboy vibes to life, proving that nostalgia is only a square wave away 🎮➡️📈. Who knew that painfully recreating 8-bit sounds could be the pinnacle of modern web development? 👾🔊 Let's all pretend we needed another reason to procrastinate with audio nerdiness! 🎶💻
    danblack.co/blog/variable-duty #WebAudioAPI #RetroGaming #8BitNostalgia #AudioNerd #Procrastination #HackerNews #ngated

  23. Daniel's deep dive into the Web Audio API attempts to bring retro Gameboy vibes to life, proving that nostalgia is only a square wave away 🎮➡️📈. Who knew that painfully recreating 8-bit sounds could be the pinnacle of modern web development? 👾🔊 Let's all pretend we needed another reason to procrastinate with audio nerdiness! 🎶💻
    danblack.co/blog/variable-duty #WebAudioAPI #RetroGaming #8BitNostalgia #AudioNerd #Procrastination #HackerNews #ngated

  24. Daniel's deep dive into the Web Audio API attempts to bring retro Gameboy vibes to life, proving that nostalgia is only a square wave away 🎮➡️📈. Who knew that painfully recreating 8-bit sounds could be the pinnacle of modern web development? 👾🔊 Let's all pretend we needed another reason to procrastinate with audio nerdiness! 🎶💻
    danblack.co/blog/variable-duty #WebAudioAPI #RetroGaming #8BitNostalgia #AudioNerd #Procrastination #HackerNews #ngated

  25. #WebAudioAPI question, or audio related in general. I get a replay gain value from my library API for each track. It ranges from -11.8 to 17.2 with my current library. It seems to just be a float with no explanation in the docs. Does anyone know immediately how this should be plugged into a GainNode? I.e. is it obvious and just something I don't know or do I need extra information?

    Just setting the value as the GainNode's gain directly is... not good.
    😅

    #WebDev

  26. #WebAudioAPI question, or audio related in general. I get a replay gain value from my library API for each track. It ranges from -11.8 to 17.2 with my current library. It seems to just be a float with no explanation in the docs. Does anyone know immediately how this should be plugged into a GainNode? I.e. is it obvious and just something I don't know or do I need extra information?

    Just setting the value as the GainNode's gain directly is... not good.
    😅

    #WebDev

  27. #WebAudioAPI question, or audio related in general. I get a replay gain value from my library API for each track. It ranges from -11.8 to 17.2 with my current library. It seems to just be a float with no explanation in the docs. Does anyone know immediately how this should be plugged into a GainNode? I.e. is it obvious and just something I don't know or do I need extra information?

    Just setting the value as the GainNode's gain directly is... not good.
    😅

    #WebDev

  28. #WebAudioAPI question, or audio related in general. I get a replay gain value from my library API for each track. It ranges from -11.8 to 17.2 with my current library. It seems to just be a float with no explanation in the docs. Does anyone know immediately how this should be plugged into a GainNode? I.e. is it obvious and just something I don't know or do I need extra information?

    Just setting the value as the GainNode's gain directly is... not good.
    😅

    #WebDev

  29. #WebAudioAPI question, or audio related in general. I get a replay gain value from my library API for each track. It ranges from -11.8 to 17.2 with my current library. It seems to just be a float with no explanation in the docs. Does anyone know immediately how this should be plugged into a GainNode? I.e. is it obvious and just something I don't know or do I need extra information?

    Just setting the value as the GainNode's gain directly is... not good.
    😅

    #WebDev