News for hackers. Stuff that matters.
Re:Variable duty cycle square waves with the Web Audio API by SonOfLilit on Monday April 07, 2025 @04:50PM (#43615804)
I'm also working on a gameboy inspired music app! (for Android, in Rust)

If you use a perfect square wave, the aliasing is extremely audible and sounds terrible.

As far as I can tell, in native everyone uses a nifty algorithm called bank-limited audio synthesis, and specifically blargg's implementation blip_buf.

https://slack.net/~ant/bl-synth/

If I were OP I'd try to compile the rust port of this library to WASM.

Re:Variable duty cycle square waves with the Web Audio API by iamdan on Monday April 07, 2025 @08:41PM (#43617325)
That's sweet! I'm trying to see how far I can push the web audio api but yeah the aliasing can be harsh. I think there are also some things I can do with filter nodes to smooth things out a bit
Re:Variable duty cycle square waves with the Web Audio API by meindnoch on Tuesday April 08, 2025 @04:40AM (#43619570)
The aliased harmonics are folded back and mixed with the true harmonic content of the square wave. You can't filter them out without significantly affecting the square wave sounds.
Re:Variable duty cycle square waves with the Web Audio API by SonOfLilit on Tuesday April 08, 2025 @09:24PM (#43628051)
You can work in a much higher sample rate and then downsample