audiobookshelf-app
audiobookshelf-app copied to clipboard
Add settings to configure Audio Fade-out when using a timer.
Is your feature request related to a problem? Please describe.
While using the timer, End of a Chapter in this case, reaching the end of the said chapter will fade out the audio. If the Audiobook has some Audio a couple of seconds before the end of that chapter whatever is said can be very hard or impossible to understand. I listen to this mostly before going to sleep at a low volume but still want to hear what that the narrator is saying without having to increase the volume.
Describe the solution you'd like
An option to either disable or configure the way the fade-out is happening (or even both?!).
For example, the user could configure if they want to use the fade-out or not. If they want to use the fade-out, the setting could offer the period of time the fade-out should happen (30s as it seems to be right now) and the lowest level it should stop.
Whenever the fade-out starts the volume should then be adjusted from the current volume level and gradually lowered to the volume level set as "min-value" over that period of time.
This makes sense. When originally building this out it was my understanding that the audio fade out also helped to let you know that it was nearing the end of the timer. During the fade out is also when you gain the ability to shake the phone to reset the sleep timer. I set the fade out to go all the way to zero which was definitely a mistake as you highlighted. I wonder though if the fade out were to be disabled would we still allow for shaking the phone to reset when < 30s remain?
That is an interesting question.
From my perspective, I would say no because the user has no indication of when the timer has been reached so adding some more time to it would either mean that the user keeps track of when it would stop or knows when the chapter ends.
On the other hand, I noticed that even when the timer ran out (at the end of a chapter, in my case) I could still pick up my phone and it continued playback because of the shake and extended timer (which led me to the feature request of disabling the shake). I don't know if that is/was intended but that could be a solution because it would allow the user to know that the timer has run out because the playback stopped but still shake the phone to continue.
The sleep timer can be reset within 2 minutes of it expiring by shaking the phone. 2 minutes might be a bit long but waiting for feedback on that. I'm wondering if the problem you are having could be avoided by just changing what the volume is reduced down to. If that solved your problem then we wouldn't need to add an additional setting.
I'm wondering if the problem you are having could be avoided by just changing what the volume is reduced down to. If that solved your problem then we wouldn't need to add an additional setting.
Possibly, but IMO this would require explaining the setting which might be unnecessary.
What I mean is that a "lowest" setting should definitely be available. However, what would happen if you set the lowest to be higher than what your current volume is? It definitely shouldn't increase your volume.
In my case, I wouldn't want to have a fade-out at all. I would then just have to set the "lowest" volume to 100% which would make that setting counter-productive or possibly misleading because it would require further description. That is why I thought it would be a good idea to have both. One setting that allows you to change if you want to use the fade-out and one that defines to what value it should lower it (that is only available if you want to use the fade-out).
The fade out currently takes a percentage of what you currently have the volume set to, so it would never go higher then what you have set. I'm thinking that without having to add additional settings right now and still solving your issue we adjust the fade down to something much higher then 0%. Then for sleep timers set to end at the current chapter we can make the fade even more subtle since it isn't an arbitrary stopping point.
Okay, I completely misunderstood of how the fade-out worked then. If it is just a percentage that is lowered based on the current volume level and I could adjust that by, 0% (so no changes) that would work for me as well.
Related #260
In another app I've used the end-of-chapter sleep timer is sort of persistent. When playback gets to the end of chapter it stops, (with no fade-out) and then I can press play on my headset to start the next chapter and it will then stop again when it gets to the end of that chapter. This way if I'm distracted (or asleep) then I won't miss any more than part of a chapter. It would be great if the app could support a usecase like this.
I was using the app today with the end-of-chapter sleep setting and was not expecting the fade out. I thought something was wrong with my book file. Since I had missed most of the last sentence I rewound a bit to hear it, and then it didn't stop at the end of chapter. It wasn't until the end of the next chapter that I finally figured out what was going on. So I would be in favor of an option to disable the fade-out, and if a persistent stop at end of chapter feature could also be added it would be extra sweet. If it doesn't make sense for a sleep timer to behave that way then maybe a separate "pause every chapter" option or a toggle in the player would be better.
I've made 2 updates for next release.
- A setting to disable the audio fade out.
- Audio fade out now only goes down to 10% volume.
@RobinD42 From your description of the end of chapter feature it seems like that is what I already implemented in the last release. See point 3 in my comment https://github.com/advplyr/audiobookshelf-app/issues/260#issuecomment-1407752168
Yes, you are correct. The only thing missing was the ability to disable the fade-out. Thank you.
I know that this just had a release to help, but the external sleep app I use plays a short tone 60 seconds before the timer ends. That gives you audible feedback required while trying to fall asleep, and gives you time to reach over and shake it before it ends playback.
Im often not sure how close to the end it is with the current implementation and question if its fading out or just the audio file, but some sort of 'tone' setting to play a ping before playback end is the best way to handle it imo.