The victory of Web Audio over Audio Data frustrated me a bit, because I really thought the Mozilla's Audio Data API had the right approach: it was simple and low-level. The Web Audio API is most likely implemented in C++ and interfaced with JS through several dozen types of HTML DOM nodes. The second reason Web Audio is stupid is that implementing many kinds of pre-made synthesizer nodes in C++ and interfacing them through the DOM almost guarantees that Web Audio will not sound the same on different web browsers.