Remix.run Logo
chaosprint 5 days ago

> "The audio engine is built on a declarative audio graph (using `virtual-audio-graph`), inspired by React's virtual DOM, which makes managing the Web Audio API much cleaner. If you're building web based audio apps I highly recommend checking out this library. "

when you have more and more interactions on the gui web audio api will become a problem, check out audioworklet.

I am developing https://glicol.org/ and it has a js port on https://glicol.js.org/ a typical usecase is drum machine with very high time accuracy

chr15m 4 days ago | parent | next [-]

I don't like creating a lot of audio nodes on the fly for that reason. Beat Maker re-renders the audio to a buffer any time a value is changed. The audio engine is very efficient, literally playing one static buffer on loop. For the browser/OS this is basically memcpy, which is cheap, and does not take place on the GUI thread.

anonymous344 3 days ago | parent | prev [-]

does this solve the stupid problem with chrome mobile (samsung) that if you make javascript timer for example 4 seconds, and then play() the audio is already deleted by garbage-collection.. ?

chr15m 2 days ago | parent [-]

The algorithm in Beat Maker bypasses that issue completely by rendering the webaudio graph to a static buffer on every change.