mirror of
https://github.com/jpochyla/psst.git
synced 2026-04-27 07:25:52 +03:00
[GH-ISSUE #54] Testers / maintainers of Linux and Windows platform needed #45
Labels
No labels
api
bug
build
documentation
duplicate
enhancement
good first issue
help wanted
idea
invalid
linux
lowprio
macos
pull-request
upstream
windows
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/psst#45
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jpochyla on GitHub (May 27, 2021).
Original GitHub issue: https://github.com/jpochyla/psst/issues/54
Although Psst code is mostly multi-platform, I use only Mac OS as my daily driver and develop on Mac, and I don't really have the time that other platforms deserve. So, would you like to own and maintain the platform-specific parts of Psst for Windows or Linux? Volunteers wanted!
@ghost commented on GitHub (May 27, 2021):
@jpochyla I'd be happy to function as a tester for Linux :D
@shiftgeist commented on GitHub (May 28, 2021):
I can offer to test under Windows and secondarily under Linux.
@Kethku commented on GitHub (Jul 14, 2021):
I'm interested in learning more about druid and such in my own projects. I'm not sure I can fully own the windows platform, but I wouldn't mind being pinged to help test or debug some issues
@binyamin commented on GitHub (Aug 8, 2021):
@jpochyla I would be happy to help test on linux. I assume your intent is to verify that new/changed functionality works as intended. Can you periodically post a list of changes, so we know what to look at? Ideally, it would be something people could comment on. Or, just ping me periodically to review PRs,
@cttipton commented on GitHub (Aug 17, 2021):
I'd also be happy to help with testing on both platforms, linux more readily. Subbed issue, but happy to be pinged directly as well.
@emielvanseveren commented on GitHub (Aug 17, 2021):
@jpochyla, I'd like to contribute, but I'm somewhat of a rust beginner. Do you have any good first issues?
Pref in core not gui related.
@chayim commented on GitHub (Aug 17, 2021):
I've been running it all day on Arch ever since the HN post today - I found psst in the AUR. Happy to Linux test.
@miloshadzic commented on GitHub (Aug 17, 2021):
I can help test / triage on windows
@pythonhacker commented on GitHub (Aug 17, 2021):
I am a kind of power user who loves to build stuff. I use Antix, a minimal derivative of Debian and managed to build psst today after some minor hiccups - like had to build pango from source etc and ended up buying a spotify premium subscription to get the login to work (undocumented ?)
Love the program! I am a medium level Rust developer and would be happy to help build/maintain on Debian and its variants.
@jpochyla commented on GitHub (Aug 22, 2021):
Thank you all! ❤️ I definitely plan to compile a list of changes, we probably should start doing periodic releases.
One Linux question: how important is a direct PulseAudio support? Is it good enough with alsa? We're using miniaudio now, and although it works very well, I'd like to get rid of it for something Rust-based, probably cpal -- but it doesn't support PA and probably never will 🙄
@maxaudron commented on GitHub (Aug 25, 2021):
@jpochyla alsa is a low level interface and has a bunch of restrictions, like only ever allowing one application to bind to an audio device, so it's not really suitable for desktop usage.
Pulseaudio is more or less the requirement here and the defacto standard. Where pulseaudio acts as the one application on the device and multitracks all the other applications. There are bridges to allow alsa apps to speak to pulse but this is usually left to the user to figure out, and usually doesn't work very well.
There's also pipewire, the new kid on the block, which you can also speak to natively, but pipewire also provides a shim for pulseaudio applications to work with so it doesn't have to be explicitly supported.
@H-M-H commented on GitHub (Sep 1, 2021):
FYI: I had some problems with playback on pipewire as well (most of the time psst just refused to
play anything). So I decided to replace miniaudio with cpal and it turned out to be surprisingly
easy. See
github.com/H-M-H/psst@22195cb162. Playback is working fine for me now.@jpochyla commented on GitHub (Sep 1, 2021):
@H-M-H Thanks for the exploration, glad to hear!
miniaudiosupports more backends thencpal, we could make this configurable, probably also with a preferred output device option. Do you know what backend miniaudio was using in your setup? For cpal it's alsa, I guess.Edit: also, cpal is not really enough, we would also need some resampling (at least on Windows).
@H-M-H commented on GitHub (Sep 1, 2021):
I have checked the backend and
miniaudiowas usingBackend::PulseAudio. I also triedBackend::Alsabutminiaudiojust doesn't seem to want to work with pipewire. And yescpaluses Alsa.So you would like to keep
miniaudioinstead of replacing it withcpalfor now andcpalshould be optional?Huh, where does the resampling happen? It doesn't look like it's required?
@jpochyla commented on GitHub (Sep 1, 2021):
Uhh that's unfortunate, I was hoping that the alsa backend would work better.
It seems that Windows don't automatically resample.
@H-M-H commented on GitHub (Sep 1, 2021):
I guess that means I'd need to throw dasp into the mix as well. Are there other obstacles to consider? One thing I am not sure about is whether
f32is everywhere supported as sample format, this may need conversion as well.@H-M-H commented on GitHub (Sep 2, 2021):
Alright, I gave
daspa try. To be honest it was kinda painful to implement as the channel layout as well as sample format need to be known at compile time. However, it appears to be working now, perhaps someone on Windows can try if this works:github.com/H-M-H/psst@3f39825266@H-M-H commented on GitHub (Sep 2, 2021):
I did some more research and it seems rodio is the way to go as it provides an interface on a higher level and uses cpal internally. Fortunately it wasn't to hard to implement either:
github.com/H-M-H/psst@0de081d71band it should do resampling etc. internally. I'd love to see someone testing this on other platforms than linux.@jpochyla commented on GitHub (Sep 2, 2021):
@H-M-H Personally I would like to avoid Rodio, and work on lower level, possibly with dasp or rubato. Rodio takes a lot of CPU and the resampling quality is low.
@H-M-H commented on GitHub (Sep 2, 2021):
Hmm, I see. To me it looks like rodio is just doing linear interpolation for resampling: https://github.com/RustAudio/rodio/blob/master/src/conversions/sample_rate.rs That's also what I am doing on my cpal branch with dasp. I initially tried Sinc interpolation but that was kinda slow / had my CPU at > 40%.
Also I can't confirm rodio taking a lot of CPU. Both psst with cpal without any resampling as well as with rodio are at about 4% CPU.
Edit: cpal without resampling is as to be expected a slight bit faster/more efficient though.
@miloshadzic commented on GitHub (Sep 2, 2021):
I haven't looked into this, but AFAIK using WASAPI on windows would resample, no?
@binyamin commented on GitHub (Sep 2, 2021):
@jpochyla @H-M-H I feel like these sorts of technical, problem-solving conversations should have a dedicated issue/discussion. We don't want to cram all linux (and windows) talk into a single issue.
@H-M-H commented on GitHub (Sep 2, 2021):
Agreed, I created a discussion here: https://github.com/jpochyla/psst/discussions/167
@Kimorine commented on GitHub (Mar 28, 2022):
totally interested in windows test
@immangat commented on GitHub (Nov 29, 2024):
I'm a heavy Spotify user and would love to contribute to this project! Let me know how I can help. Saw this project on hacker news.