Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TAUDIO]Audio Streams under Flutter and React Native #108

Closed
Larpoux opened this issue Feb 10, 2022 · 11 comments
Closed

[TAUDIO]Audio Streams under Flutter and React Native #108

Larpoux opened this issue Feb 10, 2022 · 11 comments

Comments

@Larpoux
Copy link

Larpoux commented Feb 10, 2022

Hi everybody,

This is not an issue. Just an information.
We are now working on the port of the Web Audio API under flutter, react native and Microsoft MAUI.
We need for that a native implementation of the Web Audio API on several platforms :

  • iOS
  • Android
  • Linux (optional)
  • MacOS (optional)
  • Windows (optional)

We found two existing libraries which can be used :

Banner

Your library seems very interesting. We appreciate that it is dependant on CPAL, and CPAL is dependant of OBOE.
This seems a good design.

Unfortunately we are not expert with Rust.
We will probably need a little help from you, to start.

Good luck for your library.

@Catsvilles
Copy link

@Larpoux Cool idea, will this be open source or closed source? There is already https://github.com/xioxin/lab_sound_flutter for flutter btw

@Larpoux
Copy link
Author

Larpoux commented Feb 10, 2022

Thank you for the link. I am going to look to this flutter plugin.
Our license is actually a big problem for us.
I insist heavily for a GPL project.
But I am very lonely with such a choice. My peers want all MIT

@orottier
Copy link
Owner

Hi @Larpoux, exciting to hear you are considering to use our library.
If you need anything, just let us know. Adding a dual license is something we can discuss.
Please realize we are currently working towards a v1.0 release in which our API will be stabilized.
After that, we will continue to work on feature completeness within the 1.* branch.

@Larpoux Larpoux closed this as completed Feb 13, 2022
@Larpoux
Copy link
Author

Larpoux commented Feb 15, 2022

This post just to let you know that I am able to run my little example which play 2 seconds of white noise on Flutter iOS, using the web_audio_api_rs.
This is really great. Wondeful!
Now we must take an important decision :

Do we go with lab-sound

  • C++
  • A very ancient library
  • Not sure if it is very well maintained

Or with web_audio_api_rs

  • Rust
  • A very new library which is still not version 1.0
  • Actively developed by 3 people

We understand that web-audio-api-rs is not yet stabilized. We do not really care : what matters is not what this library is today, but what it will be next year.
If you have some recommendations on this choice, please tell us.

Note : I cannot run the example on Android because many problems with my Apple Silicon M1 machine : I must use the last Android NDK r23b, but there is something wrong with rust for NDK versions > 21. But I am confident that it will work when Rust will be updated to support the last Android NDK

@b-ma
Copy link
Collaborator

b-ma commented Feb 15, 2022

Hey @Larpoux ,

This post just to let you know that I am able to run my little example which play 2 seconds of white noise on Flutter iOS, using the web_audio_api_rs.

Cool, great news!

Do you have an idea of the main use-cases for WebAudio in your ecosystem? I can imagine simple sound design / sonification for games but maybe you already have other application domains in mind?

@Larpoux
Copy link
Author

Larpoux commented Feb 15, 2022

In fact I develop Plugin Libraries but I do not know precisely what our developers do with those libraries.
An example could be someone who needs to playback directly from the microphone with an equalizer between the mic and the speaker. The latency must be very small for him/her.
Someone else wanted to draw the sound volume or the sound frequency during a playback.
Someone else wanted to draw a diagram from his/her sound offline (no latency issue, here).
Someone else wanted to catch the audio data recorded and send them on the flight on an UDP connexion.

But I am not really sure what they will do with our Flutter Plugin.
I just think that many people will find many great utilisations if we offer a way to process audio streams thanks to the WebAudioAPI

@orottier
Copy link
Owner

Now we must take an important decision

@Larpoux I realize that is a tough call to make. If there's anything we can do to make the choice for our library easier, let us know.
We are fully committed to build out and improve on our work. So definitely in a year or so we will have a stable, performant, versatile and user friendly audio library.
For your information we are submitting our project for the Web Audio Conference of 2022. We hope to collect some more feedback and collaborators over there

@Larpoux
Copy link
Author

Larpoux commented Feb 26, 2022

Thank you @orottier.
Actually, everybody working on the τDio project want to try using your library and prefer not using LabSound.
If later we realize that WebAudioApi-rs was not a good choice then it will be possible to change that dependence.

We will certainly need your help.
Personally I would love to contribute to WebAudioApi-rs development, but :

  • I do not master Rust
  • I have absolutely no knowledge about audio processing
  • I am not sure that I will have some time left after working on τDio

But perhaps I will be able to do some very little things. It seems that you are just two developers working hard on this project and I think this is a big responsibility.

@orottier
Copy link
Owner

orottier commented Mar 4, 2022

That's great to hear.

Based on what you are saying, I believe the best way to contribute would be to try out some of the examples and play around a bit. We are really interested to hear what you run into and what you think we should make more clear/easier to use. You might also run into platform-specific issues, since we have limited availability of hardware for testing.

If you are a bit more comfortable with rust and the audio examples, you could

  • improve docs and example usage
  • have a look at our issue board for simple tickets
  • try to build some real world application (like example/mic_playback.rs)

@Larpoux
Copy link
Author

Larpoux commented May 19, 2024

Hi everybody,
After a 2 years vacation I am back on Tau. Tau is a flutter plugin that is an interface to web-audio-api.rs

I had a very bad time to setup an environment development for both flutter and rust. But now I have a correct flutter plugin for web-audio-api.rs. Now everything is clean and I am able to run a flutter app under Xcode that uses your lib.

** AND I AM EVEN ABLE TO USE THE XCODE DEBUGGER ON AN IOS DEVICE FOR YOUR RUST CODE **

Today I am a very happy geek. I will let you know my advancement.

‘Note: @orottier : I am not sure if I must keep this issue open (this is not an issue but an information). And I am not sure that such a thread is just pollution.

@orottier
Copy link
Owner

Great to hear back from you and happy to hear everything is working out. Please let us know if you run into any issues later, of if you have any other exciting news to share.
This issue is already in Closed state so we can keep it here for further reference/discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants