html5 canvas and javascript advancements made flash obsolete, reminder that you used to be able to run java in the browser!

Yes and no, canvas was fine for replacing flash, and JS performance was good enough quickly.

Audio however was a crapshoot for years, especially for games.

Even basic WebAudio took until 2015, and the final piece to match Flash being AudioWorklet was only first available in 2018(Chrome) and took until April _2021_ land in Safari.

So before 2021 you needed to either write your own abstractions to support multiple API's with different execution models with so-so capabilties to be somewhat on-par with what Flash provided or even for years resort to simpler solutions (ie just samples).