-
Notifications
You must be signed in to change notification settings - Fork 143
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
RFC: Consider changing the playback backend to libao #101
Comments
This is great! |
Awesome! |
@TooTallNate so... you guys open to this idea? should I prepare and submit a PR to see how it goes? I just have Linux systems, so not sure how can we get some mac and windows testing. Also, I'm wondering how much breakage we will get by changing the backend. Maybe we can make it optional (mpg123 or libao, via some build time parameter) for now? |
I suggest to make a new major version. Than the switch will be done via semver :) |
I think we should make it a major version, I can test on macOS |
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
This commit is quite invasive, but results in a much more simplified code, by using libao's simpler API. Moreover, mpg123 was having issues and not always playing correctly, requiring extra (and annoying) care. Reference: TooTallNate#101 Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Whatever happened with this? Is this working? Does it work in Mac, Windows, and Linux?? If your code is working, and is not and will not be merged into the main branch, I'd suggest publishing a new npm package named |
@dsteinman Sorry, I am no longer working or interested in nodejs. Feel free to pick up this and do whatever you want with it! :) |
Okay, I may do that. There's a whole bunch of problems with the speaker package and this patch may help. Thanks for writing it! |
Why?
Ripping off mpg123's playback logic is smart, but it requires maintaining mpg123 as a third-party dependency.
OK, really, why?
To be completely honest, mpg123 failed to output properly with some simple tests. I was wondering how much of a rabbit hole the debugging would be when I remembered that a problem often has many solutions.
Why libao?
Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports:
The API is really simple.
My proposal
See https://www.npmjs.com/package/libao.
Thanks
Thanks to @TooTallNate for writing node-speaker, from which I took most of the binding code.
The text was updated successfully, but these errors were encountered: