-
Notifications
You must be signed in to change notification settings - Fork 235
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
User stories/usecases/experiences (please add!) #626
Comments
@dvdsk , should we add it here . |
please do, we can always move it to its own issue if we have questions. And thank you very much! |
Something that seems very hard/impossible with rodio now:
I am trying to write an example on how to do this using the current API, maybe I am wrong and it is relatively doable. In that case an example would help out. |
I'm simply adding a few use cases I had in the past -- without re-checking if they would currently be possible already. Sample perfect schedulingThink of a metronome app that needs to schedule its click sound dynamically (the user can control bpm e.g. via a slider), but with utmost temporal precision (you don't want any fluctuation in a metronome). This requires a to have sample/frame perfect scheduling, i.e., one would need to express start playing this sound at sample index i=xxx. Sample perfect loopingSometimes I had to loop sounds also without any gap in the audio output (note that waiting for the sound to finish, and re-schedule it again introduces a gap). This would require to set up a loop information that specifies same Low-latency schedulingI was once trying to implement a kind of drum synthesizer in rodio, where certain key-presses triggered certain sounds. However I noticed that the input latency was way too large for musical purposes. I would assume that mainly comes down to the large default buffer size, and #512 should improve that. |
Very helpful thank you! |
My primary use case: Rust-based music player (iced gui). I got pretty much everything I need out of rodio, without too much hassle either. (All inside of this function). The only thing that I am waiting on (or perhaps, I do not know how to implement. And frankly, haven't tried too much) is crossfade between songs. I do see the fade in / fade out stuff. But that applies more to a setup where you take source A, and source B, then add them into the sink or whatever, then apply it. I add my sources more 'dynamically'. Where once the playing song ends a new one is appended. So there is no point where I can apply it. I had an idea for a potential workaround, but I have literally 0 clue how this library works under the hood (and not too much experience with this type of programming, so I don't think I could help too much). But be able to somehow change when Also, weird bug, when music is playing, and I drag my scrubbing bar, the timer got reset to 0 nano seconds for a split second my comment here. Dunno if it is related at all. |
Thanks for all the feedback!
This is an issue I ran into myself too, good to hear others have trouble with it too. We should make this easy/doable and add a full example. |
I used rodio for music playback in my project termusic: https://github.com/tramhao/termusic . |
Could you specify which features you specifically need for your app? |
From #636 by callum-jones19
|
Some of these are pretty specific and my fall outside the scope of this project/may be implemented I just haven't found them yet, buuut... I would love easier ways to manage channels. Including:
|
A collection of user stories/usecases & experiences to be used to inform (breaking) api changes.
Please add your own!
The text was updated successfully, but these errors were encountered: