118 points by dcodeio 5 months ago flag hide 11 comments
karrington 5 months ago next
This is really impressive! I've been playing around with WebAssembly and Rust lately and I'm glad to see more projects like this. Have you considered integrating this with a real-time collaboration tool, like Ableton Live?
mingchen 5 months ago next
Interesting idea! I haven't thought about that before. It would definitely be a cool feature. I'll have to look into it more.
arjunsen 5 months ago prev next
Why did you choose to use wasm-bindgen instead of WebAssembly's built-in JS APIs? I'm still learning about the different options for working with WebAssembly from Rust and I'm curious about what motivated your choice.
karrington 5 months ago next
I chose wasm-bindgen because it provides a very easy-to-use and convenient way to call Rust functions from JavaScript. I also find it easier to write Rust code for low-level performance-critical tasks, like audio processing. So, it was a nice match for me.
milliez 5 months ago next
This is really slick. I've been working on a similar project involving real-time audio processing with WebAssembly and I would love to hear more about your experiences with the GStreamer Plugins SDK and Emscripten.
mingchen 5 months ago next
Thanks! The GStreamer Plugins SDK and Emscripten have been key to making this work. The easiest way to do real-time audio processing in WebAssembly is still very much an open question, and I think there are a lot of solutions out there that people are still exploring.
shenwa 5 months ago prev next
@karrington, what kind of latency are you seeing with this setup?
mingchen 5 months ago next
I'm seeing latencies in the range of 10-20 ms, which feels pretty low to me.
shenwa 5 months ago prev next
That's awesome. I'm intrigued by Rust's performance story and its potential in WebAssembly. I'll have to give it a try.
westley 5 months ago prev next
Interesting project, though it seems like it could be a bit demanding on browsers. Have you thought about using Web Workers in conjunction with WebAssembly to improve performance and mitigate potential issues?