orottier / web-audio-api-rs

A Rust implementation of the Web Audio API, for use in non-browser contexts
https://docs.rs/web-audio-api/
MIT License
300 stars 16 forks source link

"Eat your own dog food" for release candidate #77

Closed orottier closed 2 years ago

orottier commented 2 years ago

Port a few examples/tutorials from MDN/others to a rust version and see what we run into. For example:

b-ma commented 2 years ago

I have a couple of examples that I generally use for teaching (AM, granular, step sequencer, etc.) that I could port too. What I don't really see is what strategy to use to create interfaces which can become a real burden (I was thinking about OSC + PureData to delegate all interface stuff to Pd, but it requires to install something...), do you have any ideas/preferences here?

orottier commented 2 years ago

Anything goes! I'm building a mic input recording, with some output effects. I noticed a few things already which I fixed in #83 If you need external things you can just create a new cargo new --bin with the web-audio-api-rs as a dependency. We don't need to commit all examples into this repo. Is that what you mean?

b-ma commented 2 years ago

No not exactly, I was rather wondering which strategy would be best to create interactive examples with GUIs. I know that creating clean and reactive GUIs can rapidly become complicated and I really have no idea of the Rust ecosystem there. So I was wondering if you had any preferences in term of Rust lib for interfaces?

In any case, I realize having some example working with OSC would be a nice thing anyway, I will try to sketch something with PureData, and we will see where it gets us

orottier commented 2 years ago

Ah, I understand now. Using a GUI is indeed quite a bit of work and may actually distract from the goal of just building code around the audio API. It can be a lot of fun though!

For my microphone example I will use https://docs.rs/termion/latest/termion/ to let the user input some settings and maybe display some very crude graphs in the terminal. I will try to push some work in progress soon with it

orottier commented 2 years ago

I think we have proven our lib works in various use cases, closing for now