Originally created by @77boaz on GitHub (May 20, 2022).
Is your feature request related to a problem? Please describe.
It's not really a problem in the sense of working or not working, although I did notice that the volume is a bit low sometimes even when I'm maxed out on my phone's bluetooth. Volume going to the car bluetooth or headphone bluetooth speakers is a bit low sometimes.
Describe the solution you'd like
A boost toggle button.. Maybe 1-3 toggles with each toggle boosting the volume of the phone past phone system volume.
Additional context
I've seen this boost option on some standalone audio book apps. It's helpful. Of course, if boosted too much the volume will be distorted but this is kinda normal since it overrides system volume and it depends on each person's hardware experience. Phone to phone.. bluetooth to bluetooth. Thanks!
Originally created by @77boaz on GitHub (May 20, 2022).
### Is your feature request related to a problem? Please describe.
It's not really a problem in the sense of working or not working, although I did notice that the volume is a bit low sometimes even when I'm maxed out on my phone's bluetooth. Volume going to the car bluetooth or headphone bluetooth speakers is a bit low sometimes.
### Describe the solution you'd like
A boost toggle button.. Maybe 1-3 toggles with each toggle boosting the volume of the phone past phone system volume.
### Additional context
I've seen this boost option on some standalone audio book apps. It's helpful. Of course, if boosted too much the volume will be distorted but this is kinda normal since it overrides system volume and it depends on each person's hardware experience. Phone to phone.. bluetooth to bluetooth. Thanks!
Can you share a screenshot or 2 of what the apps you saw this in, or share more info on how you think this should look?
@advplyr commented on GitHub (May 22, 2022):
Can you share a screenshot or 2 of what the apps you saw this in, or share more info on how you think this should look?
It's there in the upper left. if you look closely it has 3 little audio pushing out symbols.. The first one is highlighted representing a 1 of 3 boost. This is from Smart Audiobook Player for Android. It's of course a stand alone player, but probably the best I've found as a stand alone / local audiobook files on phone only. There are almost too many options though lol
@77boaz commented on GitHub (May 22, 2022):

It's there in the upper left. if you look closely it has 3 little audio pushing out symbols.. The first one is highlighted representing a 1 of 3 boost. This is from Smart Audiobook Player for Android. It's of course a stand alone player, but probably the best I've found as a stand alone / local audiobook files on phone only. There are almost too many options though lol
This would be such a great feature. Currently I am not using the audiobookshelf mobile app, but SmartAudiobookPlayer instead, because I have to crank up the volume such much on some audiobooks, that any other sound played by the mobile on headphone hurts the ears.
@Protarios commented on GitHub (Feb 25, 2023):
This would be such a great feature. Currently I am not using the audiobookshelf mobile app, but SmartAudiobookPlayer instead, because I have to crank up the volume such much on some audiobooks, that any other sound played by the mobile on headphone hurts the ears.
I would love to see this feature. I listen while riding my motorcycle and spoken words are hard to hear over the wind and engine noise.
@shafai commented on GitHub (Mar 9, 2023):
I would love to see this feature. I listen while riding my motorcycle and spoken words are hard to hear over the wind and engine noise.
There are two features here that would be great, and especially so for poorly produced books (and doubly so for early episodes of podcasts, which are invariably recorded on potatoes by people who haven't worked out how to audio yet) and also really handy for making the most of the limited gain on a given playback system (like bluetooth devices that are only just loud enough in optimal conditions) or for works which have wide dynamic range (like enthusiastic character acting) where it switches back and forth between inaudible and ear-tearing.
Solving this would be a huge quality-of-life improvement for my partner and myself, at least.
volume normalisation, where the entire file has a level of gain applied to it so that the peak volume in the audio file is sort of at 0dBFS1 . I think ReplayGain is the common method of storing this setting in metadata. It gives a single volume boost figure for the entire file so that you make the most of the available gain in a system, without driving it into distortion. This is done by scanning the file for the loudest part, and applying a dB boost to bring that peak up to 0dBFS. I think (most?) players will honour a replaygain tag.
compression / limiting / AGC (automatic gain control) / midnight-mode: a system that adjusts the gain of the material as it plays back in order to make things as legible as possible. Think "magic goblin turning the volume up and down for you". There's no magic setting here, so presenting the user with various "presets" is the best way to go - too much compression sounds "breathy" and "pumps", too little makes it hard to understand speech or makes the loud passages painful when turned up enough to hear the quiet parts.
to a lesser extent, Equalisation. This usually applies to badly recorded material - free audiobooks, early podcast episodes. A bit of EQ can really help make a bad mic or excessive background noise much less painful to listen to, but settings are specific to each recording (and to an extent, each listener) so it's not easy to solve in a clean UI without making things look too complicated for more casual users.
ReplayGain can probably be calculated and tagged server-side, leaving it to the client to apply the correction. Compression/dynamics will almost certainly need to be a function entirely in the client player library (unless the server transcodes the material) so it will depend on what ABS uses on the front-end or in the client software.
I haven't used it but the WebAudio API (which is allegedly supported in modern browsers?) has a GainNode and a DynamicsCompressorNode interface, which is exactly what would do what's needed here, if it is feasible to use.
I can help with the technical aspects of the audio engineering part (working out good presets, adjusting compression paramaters) if anyone is keen to take up implementing something like this. I don't think I'll have the bandwidth(!) to dive right into coding a solution any time soon, but if someone's got the time to hack on it I can help with the audio knowledge.
ReplayGain usually uses a psychoacoustic modelling method so that it actually measures "loudness" (which is a perceived quality) rather than "volume" which is an objective measurement. ↩︎
@agittins commented on GitHub (Jan 26, 2024):
There are two features here that would be great, and especially so for poorly produced books (and doubly so for early episodes of podcasts, which are invariably recorded on potatoes by people who haven't worked out how to audio yet) and also really handy for making the most of the limited gain on a given playback system (like bluetooth devices that are only *just* loud enough in optimal conditions) or for works which have wide dynamic range (like enthusiastic character acting) where it switches back and forth between inaudible and ear-tearing.
Solving this would be a huge quality-of-life improvement for my partner and myself, at least.
- volume normalisation, where the entire file has a level of gain applied to it so that the peak volume in the audio file is sort of at 0dBFS[^normalisation]. I think [ReplayGain](https://en.wikipedia.org/wiki/ReplayGain) is the common method of storing this setting in metadata. It gives a single volume boost figure for the entire file so that you make the most of the available gain in a system, without driving it into distortion. This is done by scanning the file for the loudest part, and applying a dB boost to bring that peak up to 0dBFS. I think (most?) players will honour a replaygain tag.
- [compression](https://en.wikipedia.org/wiki/Dynamic_range_compression) / limiting / AGC (automatic gain control) / midnight-mode: a system that adjusts the gain of the material as it plays back in order to make things as legible as possible. Think "magic goblin turning the volume up and down for you". There's no magic setting here, so presenting the user with various "presets" is the best way to go - too much compression sounds "breathy" and "pumps", too little makes it hard to understand speech or makes the loud passages painful when turned up enough to hear the quiet parts.
- to a lesser extent, [Equalisation](https://en.wikipedia.org/wiki/Equalization_(audio)). This usually applies to badly recorded material - free audiobooks, early podcast episodes. A bit of EQ can really help make a bad mic or excessive background noise much less painful to listen to, but settings are specific to each recording (and to an extent, each listener) so it's not easy to solve in a clean UI without making things look too complicated for more casual users.
ReplayGain can probably be calculated and tagged server-side, leaving it to the client to apply the correction. Compression/dynamics will almost certainly need to be a function entirely in the client player library (unless the server transcodes the material) so it will depend on what ABS uses on the front-end or in the client software.
I haven't used it but the [WebAudio API](https://www.w3.org/TR/webaudio/) (which is allegedly supported in modern browsers?) has a GainNode and a [DynamicsCompressorNode](https://www.w3.org/TR/webaudio/) interface, which is *exactly* what would do what's needed here, if it is feasible to use.
I can help with the technical aspects of the audio engineering part (working out good presets, adjusting compression paramaters) if anyone is keen to take up implementing something like this. I don't think I'll have the bandwidth(!) to dive right into coding a solution any time soon, but if someone's got the time to hack on it I can help with the audio knowledge.
[^normalisation]: ReplayGain usually uses a psychoacoustic modelling method so that it actually measures "loudness" (which is a perceived quality) rather than "volume" which is an objective measurement.
@advplyr commented on GitHub (Mar 28, 2024):
Did a quick look into this since it was brought up again in #1156. A potentially useful implementation was shared a few years ago that could be used: https://github.com/google/ExoPlayer/issues/9796
@advplyr It looks like the developer (OxygenCobalt), has migrated on to Media3 Exoplayer from v. 2.x. It looks like much of his efforts to implement it are centered around that framework (at least, following along the commits and issues in his own repo seems to indicate such).
@sydlexius commented on GitHub (Apr 1, 2024):
@advplyr It looks like the developer (OxygenCobalt), has migrated on to Media3 Exoplayer from v. 2.x. It looks like much of his efforts to implement it are centered around that framework (at least, following along the commits and issues in his own repo seems to indicate such).
thanks, I haven't started the Media3 migration yet mainly because I had to customize the exoplayer chromecast player which makes the migration a lot more time consuming now
@advplyr commented on GitHub (Apr 1, 2024):
thanks, I haven't started the Media3 migration yet mainly because I had to customize the exoplayer chromecast player which makes the migration a lot more time consuming now
Throwing in a comment to say I'd love for this to be implemented. I listen to terrible podcasts (both in production and content), and I'm struggling to hear their garbage. PocketCasts has an equivalent function which is basically a necessity for me.
@ahsee commented on GitHub (May 6, 2024):
Throwing in a comment to say I'd love for this to be implemented. I listen to terrible podcasts (both in production and content), and I'm struggling to hear their garbage. PocketCasts has an equivalent function which is basically a necessity for me.
I would like something very similar, 'Car' mode.. I listen to audio plays and any whispering/off-stage talking is just lost. So some kind of dynamic range compression would be lovely.
@rummyr commented on GitHub (May 7, 2024):
I would like something very similar, 'Car' mode.. I listen to audio plays and any whispering/off-stage talking is just lost. So some kind of dynamic range compression would be lovely.
Another +1 to at least have the playback respect ReplayGain settings if not create them. It wouldn't take much effort to look at the RG tag and add or subtract a few db to the playback setting. There are lots of (free) audio tools that can scan and tag the audio files as needed, which is the harder part that requires a process and knowledge to write it. Also, thanks for a great program.
@ThatOldOne commented on GitHub (Oct 10, 2024):
Another +1 to at least have the playback respect ReplayGain settings if not create them. It wouldn't take much effort to look at the RG tag and add or subtract a few db to the playback setting. There are lots of (free) audio tools that can scan and tag the audio files as needed, which is the harder part that requires a process and knowledge to write it. Also, thanks for a great program.
Another +1 to at least have the playback respect ReplayGain settings if not create them. It wouldn't take much effort to look at the RG tag and add or subtract a few db to the playback setting. There are lots of (free) audio tools that can scan and tag the audio files as needed, which is the harder part that requires a process and knowledge to write it. Also, thanks for a great program.
I'm curious what the benefit to setting RG on audiobooks are, as longer books are going to have a tremendous swing in dynamic range.
@sydlexius commented on GitHub (Oct 10, 2024):
> Another +1 to at least have the playback respect ReplayGain settings if not create them. It wouldn't take much effort to look at the RG tag and add or subtract a few db to the playback setting. There are lots of (free) audio tools that can scan and tag the audio files as needed, which is the harder part that requires a process and knowledge to write it. Also, thanks for a great program.
I'm curious what the benefit to setting RG on audiobooks are, as longer books are going to have a tremendous swing in dynamic range.
It boosts or cuts the volume to a nominal value. I have no problem with dynamic range, it's the too-quiet-to-hear part that I have a problem with. Or so-loud-it-makes-you-grimmace bothers me too. The audiobooks have to compete with music, phone calls or videos at times and the non-book audio blasts my ears off because I had to turn up the book to an unreasonable level just to hear it and I wasn't expecting the other sound to assault my ears out of nowhere.
@ThatOldOne commented on GitHub (Oct 10, 2024):
It boosts or cuts the volume to a nominal value. I have no problem with dynamic range, it's the too-quiet-to-hear part that I have a problem with. Or so-loud-it-makes-you-grimmace bothers me too. The audiobooks have to compete with music, phone calls or videos at times and the non-book audio blasts my ears off because I had to turn up the book to an unreasonable level just to hear it and I wasn't expecting the other sound to assault my ears out of nowhere.
@rechichidaniel commented on GitHub (Dec 11, 2024):
Are (this) #195Volume Boost and #407Equaliser related enough to be implemented together?
Both also reference the same app which has a volume booster and equaliser.
And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
@rechichidaniel commented on GitHub (Dec 11, 2024):
Are (this) #195 _Volume Boost_ and #407 _Equaliser_ related enough to be implemented together?
Both also reference the same app which has a volume booster and equaliser.
And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
Are (this) #195Volume Boost and #407Equaliser related enough to be implemented together?
Both also reference the same app which has a volume booster and equaliser. And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
I definitely feel that implementing the latter would result in the ability to have the former more easily. I too used smartaudioplayer for the exact same reasons as a lot of early audiobooks are really harsh on the ears, even now a lot clearly do no pop/hiss filtering in post for sime reason. I did so to the point if forking the mobile app to adjust the downloaded file path to work with smartaudioplayer better.
I only stopped because it was harder to get all of my reading progress organised and the back and forth slowly increased unneccissary clutter and app switching on my devices.
However I know the app uses an existing media player library (Exo2 IIRC?), so an EQ might have to be added to the output stream or otherwise be upstreamed to the original library for us to get the feature.
@ProfessorDey commented on GitHub (Mar 23, 2025):
> Are (this) [#195](https://github.com/advplyr/audiobookshelf-app/issues/195) _Volume Boost_ and [#407](https://github.com/advplyr/audiobookshelf-app/issues/407) _Equaliser_ related enough to be implemented together?
>
> Both also reference the same app which has a volume booster and equaliser. And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
I definitely feel that implementing the latter would result in the ability to have the former more easily. I too used smartaudioplayer for the exact same reasons as a lot of early audiobooks are really harsh on the ears, even now a lot clearly do no pop/hiss filtering in post for sime reason. I did so to the point if forking the mobile app to adjust the downloaded file path to work with smartaudioplayer better.
I only stopped because it was harder to get all of my reading progress organised and the back and forth slowly increased unneccissary clutter and app switching on my devices.
However I know the app uses an existing media player library (Exo2 IIRC?), so an EQ might have to be added to the output stream or otherwise be upstreamed to the original library for us to get the feature.
Are (this) #195Volume Boost and #407Equaliser related enough to be implemented together?
Both also reference the same app which has a volume booster and equaliser. And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
I definitely feel that implementing the latter would result in the ability to have the former more easily. I too used smartaudioplayer for the exact same reasons as a lot of early audiobooks are really harsh on the ears, even now a lot clearly do no pop/hiss filtering in post for sime reason. I did so to the point if forking the mobile app to adjust the downloaded file path to work with smartaudioplayer better.
I only stopped because it was harder to get all of my reading progress organised and the back and forth slowly increased unneccissary clutter and app switching on my devices.
However I know the app uses an existing media player library (Exo2 IIRC?), so an EQ might have to be added to the output stream or otherwise be upstreamed to the original library for us to get the feature.
You can set AudiobookSelf to use a different download location to cache books on device, and then add that folder as a library for Smart Audiobook Player (SAP) That simplifies sharing the book with the other player, but like you said, the real annoyance is getting your reading stats back into the server. It's why I stopped using SAP too. The only feature it has I miss was the audio boost... But I REALLY miss it.
@ninthbit commented on GitHub (Mar 23, 2025):
> > Are (this) [#195](https://github.com/advplyr/audiobookshelf-app/issues/195) _Volume Boost_ and [#407](https://github.com/advplyr/audiobookshelf-app/issues/407) _Equaliser_ related enough to be implemented together?
> > Both also reference the same app which has a volume booster and equaliser. And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
>
> I definitely feel that implementing the latter would result in the ability to have the former more easily. I too used smartaudioplayer for the exact same reasons as a lot of early audiobooks are really harsh on the ears, even now a lot clearly do no pop/hiss filtering in post for sime reason. I did so to the point if forking the mobile app to adjust the downloaded file path to work with smartaudioplayer better.
>
> I only stopped because it was harder to get all of my reading progress organised and the back and forth slowly increased unneccissary clutter and app switching on my devices.
>
> However I know the app uses an existing media player library (Exo2 IIRC?), so an EQ might have to be added to the output stream or otherwise be upstreamed to the original library for us to get the feature.
You can set AudiobookSelf to use a different download location to cache books on device, and then add that folder as a library for Smart Audiobook Player (SAP) That simplifies sharing the book with the other player, but like you said, the real annoyance is getting your reading stats back into the server. It's why I stopped using SAP too. The only feature it has I miss was the audio boost... But I REALLY miss it.
I just dropped by to see if there was any progress after so long on a volume boost feature. Clearly not. It's the one thing stopping me from using Audiobookshelf. I shall continue using Smart Audio Book Player and manipulating my files manually using Airdroid. I cycle and listen to my books through bone conducting headphones. With wind and traffic noise a volume boost is essential.
@scgf commented on GitHub (Apr 27, 2025):
I just dropped by to see if there was any progress after so long on a volume boost feature. Clearly not. It's the one thing stopping me from using Audiobookshelf. I shall continue using Smart Audio Book Player and manipulating my files manually using Airdroid. I cycle and listen to my books through bone conducting headphones. With wind and traffic noise a volume boost is essential.
+1 for this as well. I am using ABS as a full audible replacement and although it's possible to share the data folder with smart audiobook player I would lose stats etc. Thanks
@Kerdude commented on GitHub (May 9, 2025):
+1 for this as well. I am using ABS as a full audible replacement and although it's possible to share the data folder with smart audiobook player I would lose stats etc. Thanks
I don't think ReplyGain is really needed. I think people would probably be ok with a couple of simpler things.
Normalize the audio. Scan the audio bytes, find the max value byte. Subtract that from 255 and then add the result to every byte in the file. That solves the 'too quiet' issue. That file is now the loudest it can be without clipping. Trivial to implement. You could add a checkbox on the library scan page and optionally adjust the original file as you import it into the library.
However, it does not solve the dynamic volume issue. You could scan the file when you lookup all the audiobook info and save the min (non-zero), median, and max values in the library for future use so you don't have to pre-scan the file each time you playback.
The dynamic volume issue would need an audio compressor which is more time consuming. There are quite a number of open source audio players that implement some kind of volume leveling scheme. Maybe you could find a useful chunk of code and not have to re-invent the wheel.
A poor-man's compressor could add a percentage of boost to the numbers less than the median, and subtract it from those above the median. Thus the volumes are bullied toward the median value. Then you normalize again to raise the floor up some more. This just removes the dynamic range (or the loud/soft) issue. Too much percentage and it will sound dead. Since we are only dealing with low bitrate talking audio, you might get away with something cheap and dirty like this. Maybe have a 'percentage' input box on the library scan page and let the user decide haw much squish is too much. Set the default to 0% and call it a day.
Developers that aren't getting paid a proper wage in the first place might go for something quick and dirty whereas a complicated or lengthy solution will get pushed to that ethereal 'later'. It is in this spirit that I comment today.
@ThatOldOne commented on GitHub (May 24, 2025):
I don't think ReplyGain is really needed. I think people would probably be ok with a couple of simpler things.
1) Normalize the audio. Scan the audio bytes, find the max value byte. Subtract that from 255 and then add the result to every byte in the file. That solves the 'too quiet' issue. That file is now the loudest it can be without clipping. Trivial to implement. You could add a checkbox on the library scan page and optionally adjust the original file as you import it into the library.
However, it does not solve the dynamic volume issue. You could scan the file when you lookup all the audiobook info and save the min (non-zero), median, and max values in the library for future use so you don't have to pre-scan the file each time you playback.
2) The dynamic volume issue would need an audio compressor which is more time consuming. There are quite a number of open source audio players that implement some kind of volume leveling scheme. Maybe you could find a useful chunk of code and not have to re-invent the wheel.
A poor-man's compressor could add a percentage of boost to the numbers less than the median, and subtract it from those above the median. Thus the volumes are bullied toward the median value. Then you normalize again to raise the floor up some more. This just removes the dynamic range (or the loud/soft) issue. Too much percentage and it will sound dead. Since we are only dealing with low bitrate talking audio, you might get away with something cheap and dirty like this. Maybe have a 'percentage' input box on the library scan page and let the user decide haw much squish is too much. Set the default to 0% and call it a day.
Developers that aren't getting paid a proper wage in the first place might go for something quick and dirty whereas a complicated or lengthy solution will get pushed to that ethereal 'later'. It is in this spirit that I comment today.
@rechichidaniel commented on GitHub (May 24, 2025):
@ThatOldOne wouldn't a compressor ruin dramatised audiobooks that rely on the dynamic range? (I'm actually asking, not trying to point something out).
You make a good point about effort, and since I'm not a developer, I can't comment on that.
I think the volume boost button in Smart Audiobook Player is great. That's the feature I'd like to see in Audiobook shelf.
If It helps, I can give an idea of how I use that button. I use it when my phone speakers aren't loud enough and using a portable speaker isn't practical. e.g. Most of the time, I use it briefly when I want to continue listening through loud noises like when my wife uses a blender in the other room which is only loud for a short time. I also use it when I'm moving around the house cleaning, when my car speakers have stopped working, when my kid is making noise in the playroom, etc.
@rechichidaniel commented on GitHub (May 24, 2025):
@ThatOldOne wouldn't a compressor ruin dramatised audiobooks that rely on the dynamic range? (I'm actually asking, not trying to point something out).
You make a good point about effort, and since I'm not a developer, I can't comment on that.
I think the volume boost button in Smart Audiobook Player is great. That's the feature I'd like to see in Audiobook shelf.
If It helps, I can give an idea of how I use that button. I use it when my phone speakers aren't loud enough and using a portable speaker isn't practical. e.g. Most of the time, I use it briefly when I want to continue listening through loud noises like when my wife uses a blender in the other room which is only loud for a short time. I also use it when I'm moving around the house cleaning, when my car speakers have stopped working, when my kid is making noise in the playroom, etc.
@rechichidaniel Yeah, compression has to be optional. Normalizing is the only action you could do to all the files without affecting the audio properties, just the volume. All it's doing is a linear level shift.
@ThatOldOne commented on GitHub (May 24, 2025):
@rechichidaniel Yeah, compression has to be optional. Normalizing is the only action you could do to all the files without affecting the audio properties, just the volume. All it's doing is a linear level shift.
+1 from me as well.
The volume boost feature is also the one thing that keeps me using Smart Audiobook Player instead of Audiobookshelf. I love the data and stats in Audiobookshelf, but volume boost is more important to me. I listen to my books through bluetooth bone conducting headphones and have audiobooks of varying quality.
@agmbowie commented on GitHub (May 30, 2025):
+1 from me as well.
The volume boost feature is also the one thing that keeps me using Smart Audiobook Player instead of Audiobookshelf. I love the data and stats in Audiobookshelf, but volume boost is more important to me. I listen to my books through bluetooth bone conducting headphones and have audiobooks of varying quality.
I'd also love to see this implemented as well. Loving the official app and this is about the only feature that I'm personally missing.
@EndorEwoksFC commented on GitHub (Jun 10, 2025):
I'd also love to see this implemented as well. Loving the official app and this is about the only feature that I'm personally missing.
Can I join in the queue?
I was listening to 5th audiobook of a series and first 4 audiobooks has excellent quality but the last one is making screeching noise whenever the narrator speaks. Like that "S" sound at the end of words. And it's ruining thw whole experience. It could've been solved easily by redusing the pitch which I did in smart audiobook player.
Maybe I should contact developer of Smart Audiobook Player to integrate ability to connect audiobookshelf server in smart audiobook player. This thread is already stretched too long.
@SpicyPoison commented on GitHub (Aug 17, 2025):
Can I join in the queue?
I was listening to 5th audiobook of a series and first 4 audiobooks has excellent quality but the last one is making screeching noise whenever the narrator speaks. Like that "S" sound at the end of words. And it's ruining thw whole experience. It could've been solved easily by redusing the pitch which I did in smart audiobook player.
Maybe I should contact developer of Smart Audiobook Player to integrate ability to connect audiobookshelf server in smart audiobook player. This thread is already stretched too long.
I have implemented a satisfying x64 PC/Win solution using Equalizer APO and one specific class of VSTs that seems to do a great job at leveling all the loud and soft sounds often found in audiobooks. The class of VSTs is known as AutoSwell. I say seems because I just started playing with it tonight and don't have much runtime on it to see if it has any long-term issues. So far it's great and works a treat on youtube videos too.
It can chain multiple VSTs such as EQs, compressors, filters, tone controls, and such. Equalizer APO is a quirky animal and you should read extensively to learn how set it up. Once setup, you can just drop VSTs in it. It wants x64 VSTs.
I'd be happy to explain more, but I don't know where this topic would be appropriate. I'll just drop a couple links to get you started, if you have an interest.
@ThatOldOne commented on GitHub (Dec 4, 2025):
I have implemented a satisfying x64 PC/Win solution using Equalizer APO and one specific class of VSTs that seems to do a great job at leveling all the loud and soft sounds often found in audiobooks. The class of VSTs is known as AutoSwell. I say seems because I just started playing with it tonight and don't have much runtime on it to see if it has any long-term issues. So far it's great and works a treat on youtube videos too.
It can chain multiple VSTs such as EQs, compressors, filters, tone controls, and such. Equalizer APO is a quirky animal and you should read extensively to learn how set it up. Once setup, you can just drop VSTs in it. It wants x64 VSTs.
I'd be happy to explain more, but I don't know where this topic would be appropriate. I'll just drop a couple links to get you started, if you have an interest.
Lots of free VSTs: https://plugins4free.com/effects/Dynamics/?page=1
The AutoSwell VST that I am using: https://plugins4free.com/plugin/2504/
Equalizer APO: https://sourceforge.net/projects/equalizerapo/
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @77boaz on GitHub (May 20, 2022).
Is your feature request related to a problem? Please describe.
It's not really a problem in the sense of working or not working, although I did notice that the volume is a bit low sometimes even when I'm maxed out on my phone's bluetooth. Volume going to the car bluetooth or headphone bluetooth speakers is a bit low sometimes.
Describe the solution you'd like
A boost toggle button.. Maybe 1-3 toggles with each toggle boosting the volume of the phone past phone system volume.
Additional context
I've seen this boost option on some standalone audio book apps. It's helpful. Of course, if boosted too much the volume will be distorted but this is kinda normal since it overrides system volume and it depends on each person's hardware experience. Phone to phone.. bluetooth to bluetooth. Thanks!
@advplyr commented on GitHub (May 22, 2022):
Can you share a screenshot or 2 of what the apps you saw this in, or share more info on how you think this should look?
@77boaz commented on GitHub (May 22, 2022):
It's there in the upper left. if you look closely it has 3 little audio pushing out symbols.. The first one is highlighted representing a 1 of 3 boost. This is from Smart Audiobook Player for Android. It's of course a stand alone player, but probably the best I've found as a stand alone / local audiobook files on phone only. There are almost too many options though lol
@Protarios commented on GitHub (Feb 25, 2023):
This would be such a great feature. Currently I am not using the audiobookshelf mobile app, but SmartAudiobookPlayer instead, because I have to crank up the volume such much on some audiobooks, that any other sound played by the mobile on headphone hurts the ears.
@shafai commented on GitHub (Mar 9, 2023):
I would love to see this feature. I listen while riding my motorcycle and spoken words are hard to hear over the wind and engine noise.
@raedkit commented on GitHub (Jul 25, 2023):
I would like to see this feature too.
@agittins commented on GitHub (Jan 26, 2024):
There are two features here that would be great, and especially so for poorly produced books (and doubly so for early episodes of podcasts, which are invariably recorded on potatoes by people who haven't worked out how to audio yet) and also really handy for making the most of the limited gain on a given playback system (like bluetooth devices that are only just loud enough in optimal conditions) or for works which have wide dynamic range (like enthusiastic character acting) where it switches back and forth between inaudible and ear-tearing.
Solving this would be a huge quality-of-life improvement for my partner and myself, at least.
volume normalisation, where the entire file has a level of gain applied to it so that the peak volume in the audio file is sort of at 0dBFS1 . I think ReplayGain is the common method of storing this setting in metadata. It gives a single volume boost figure for the entire file so that you make the most of the available gain in a system, without driving it into distortion. This is done by scanning the file for the loudest part, and applying a dB boost to bring that peak up to 0dBFS. I think (most?) players will honour a replaygain tag.
compression / limiting / AGC (automatic gain control) / midnight-mode: a system that adjusts the gain of the material as it plays back in order to make things as legible as possible. Think "magic goblin turning the volume up and down for you". There's no magic setting here, so presenting the user with various "presets" is the best way to go - too much compression sounds "breathy" and "pumps", too little makes it hard to understand speech or makes the loud passages painful when turned up enough to hear the quiet parts.
to a lesser extent, Equalisation. This usually applies to badly recorded material - free audiobooks, early podcast episodes. A bit of EQ can really help make a bad mic or excessive background noise much less painful to listen to, but settings are specific to each recording (and to an extent, each listener) so it's not easy to solve in a clean UI without making things look too complicated for more casual users.
ReplayGain can probably be calculated and tagged server-side, leaving it to the client to apply the correction. Compression/dynamics will almost certainly need to be a function entirely in the client player library (unless the server transcodes the material) so it will depend on what ABS uses on the front-end or in the client software.
I haven't used it but the WebAudio API (which is allegedly supported in modern browsers?) has a GainNode and a DynamicsCompressorNode interface, which is exactly what would do what's needed here, if it is feasible to use.
I can help with the technical aspects of the audio engineering part (working out good presets, adjusting compression paramaters) if anyone is keen to take up implementing something like this. I don't think I'll have the bandwidth(!) to dive right into coding a solution any time soon, but if someone's got the time to hack on it I can help with the audio knowledge.
ReplayGain usually uses a psychoacoustic modelling method so that it actually measures "loudness" (which is a perceived quality) rather than "volume" which is an objective measurement. ↩︎
@advplyr commented on GitHub (Mar 28, 2024):
Did a quick look into this since it was brought up again in #1156. A potentially useful implementation was shared a few years ago that could be used: https://github.com/google/ExoPlayer/issues/9796
@sydlexius commented on GitHub (Apr 1, 2024):
@advplyr It looks like the developer (OxygenCobalt), has migrated on to Media3 Exoplayer from v. 2.x. It looks like much of his efforts to implement it are centered around that framework (at least, following along the commits and issues in his own repo seems to indicate such).
@advplyr commented on GitHub (Apr 1, 2024):
thanks, I haven't started the Media3 migration yet mainly because I had to customize the exoplayer chromecast player which makes the migration a lot more time consuming now
@ahsee commented on GitHub (May 6, 2024):
Throwing in a comment to say I'd love for this to be implemented. I listen to terrible podcasts (both in production and content), and I'm struggling to hear their garbage. PocketCasts has an equivalent function which is basically a necessity for me.
@rummyr commented on GitHub (May 7, 2024):
I would like something very similar, 'Car' mode.. I listen to audio plays and any whispering/off-stage talking is just lost. So some kind of dynamic range compression would be lovely.
@drawlin-bol commented on GitHub (Sep 2, 2024):
Would love to see this implemented soon. It would greatly enhance audiobook playback. Thanks!
@ninthbit commented on GitHub (Sep 8, 2024):
Another +1 for an audio boost setting. Mowing with headphones is still not loud enough sometimes.
@ThatOldOne commented on GitHub (Oct 10, 2024):
Another +1 to at least have the playback respect ReplayGain settings if not create them. It wouldn't take much effort to look at the RG tag and add or subtract a few db to the playback setting. There are lots of (free) audio tools that can scan and tag the audio files as needed, which is the harder part that requires a process and knowledge to write it. Also, thanks for a great program.
@sydlexius commented on GitHub (Oct 10, 2024):
I'm curious what the benefit to setting RG on audiobooks are, as longer books are going to have a tremendous swing in dynamic range.
@ThatOldOne commented on GitHub (Oct 10, 2024):
It boosts or cuts the volume to a nominal value. I have no problem with dynamic range, it's the too-quiet-to-hear part that I have a problem with. Or so-loud-it-makes-you-grimmace bothers me too. The audiobooks have to compete with music, phone calls or videos at times and the non-book audio blasts my ears off because I had to turn up the book to an unreasonable level just to hear it and I wasn't expecting the other sound to assault my ears out of nowhere.
@rechichidaniel commented on GitHub (Dec 11, 2024):
Are (this) #195 Volume Boost and #407 Equaliser related enough to be implemented together?
Both also reference the same app which has a volume booster and equaliser.
And it's the same app I use for playback even though I'm using Audiobookshelf to organise my audiobooks. Mainly because of these two features.
@ProfessorDey commented on GitHub (Mar 23, 2025):
I definitely feel that implementing the latter would result in the ability to have the former more easily. I too used smartaudioplayer for the exact same reasons as a lot of early audiobooks are really harsh on the ears, even now a lot clearly do no pop/hiss filtering in post for sime reason. I did so to the point if forking the mobile app to adjust the downloaded file path to work with smartaudioplayer better.
I only stopped because it was harder to get all of my reading progress organised and the back and forth slowly increased unneccissary clutter and app switching on my devices.
However I know the app uses an existing media player library (Exo2 IIRC?), so an EQ might have to be added to the output stream or otherwise be upstreamed to the original library for us to get the feature.
@ninthbit commented on GitHub (Mar 23, 2025):
You can set AudiobookSelf to use a different download location to cache books on device, and then add that folder as a library for Smart Audiobook Player (SAP) That simplifies sharing the book with the other player, but like you said, the real annoyance is getting your reading stats back into the server. It's why I stopped using SAP too. The only feature it has I miss was the audio boost... But I REALLY miss it.
@scgf commented on GitHub (Apr 27, 2025):
I just dropped by to see if there was any progress after so long on a volume boost feature. Clearly not. It's the one thing stopping me from using Audiobookshelf. I shall continue using Smart Audio Book Player and manipulating my files manually using Airdroid. I cycle and listen to my books through bone conducting headphones. With wind and traffic noise a volume boost is essential.
@Kerdude commented on GitHub (May 9, 2025):
+1 for this as well. I am using ABS as a full audible replacement and although it's possible to share the data folder with smart audiobook player I would lose stats etc. Thanks
@DeXP commented on GitHub (May 24, 2025):
+1. I would definitely use it. Very useful in a tram with bad-quality audiobooks.
@ThatOldOne commented on GitHub (May 24, 2025):
I don't think ReplyGain is really needed. I think people would probably be ok with a couple of simpler things.
However, it does not solve the dynamic volume issue. You could scan the file when you lookup all the audiobook info and save the min (non-zero), median, and max values in the library for future use so you don't have to pre-scan the file each time you playback.
A poor-man's compressor could add a percentage of boost to the numbers less than the median, and subtract it from those above the median. Thus the volumes are bullied toward the median value. Then you normalize again to raise the floor up some more. This just removes the dynamic range (or the loud/soft) issue. Too much percentage and it will sound dead. Since we are only dealing with low bitrate talking audio, you might get away with something cheap and dirty like this. Maybe have a 'percentage' input box on the library scan page and let the user decide haw much squish is too much. Set the default to 0% and call it a day.
Developers that aren't getting paid a proper wage in the first place might go for something quick and dirty whereas a complicated or lengthy solution will get pushed to that ethereal 'later'. It is in this spirit that I comment today.
@rechichidaniel commented on GitHub (May 24, 2025):
@ThatOldOne wouldn't a compressor ruin dramatised audiobooks that rely on the dynamic range? (I'm actually asking, not trying to point something out).
You make a good point about effort, and since I'm not a developer, I can't comment on that.
I think the volume boost button in Smart Audiobook Player is great. That's the feature I'd like to see in Audiobook shelf.
If It helps, I can give an idea of how I use that button. I use it when my phone speakers aren't loud enough and using a portable speaker isn't practical. e.g. Most of the time, I use it briefly when I want to continue listening through loud noises like when my wife uses a blender in the other room which is only loud for a short time. I also use it when I'm moving around the house cleaning, when my car speakers have stopped working, when my kid is making noise in the playroom, etc.
@ThatOldOne commented on GitHub (May 24, 2025):
@rechichidaniel Yeah, compression has to be optional. Normalizing is the only action you could do to all the files without affecting the audio properties, just the volume. All it's doing is a linear level shift.
@agmbowie commented on GitHub (May 30, 2025):
+1 from me as well.
The volume boost feature is also the one thing that keeps me using Smart Audiobook Player instead of Audiobookshelf. I love the data and stats in Audiobookshelf, but volume boost is more important to me. I listen to my books through bluetooth bone conducting headphones and have audiobooks of varying quality.
@EndorEwoksFC commented on GitHub (Jun 10, 2025):
I'd also love to see this implemented as well. Loving the official app and this is about the only feature that I'm personally missing.
@SpicyPoison commented on GitHub (Aug 17, 2025):
Can I join in the queue?
I was listening to 5th audiobook of a series and first 4 audiobooks has excellent quality but the last one is making screeching noise whenever the narrator speaks. Like that "S" sound at the end of words. And it's ruining thw whole experience. It could've been solved easily by redusing the pitch which I did in smart audiobook player.
Maybe I should contact developer of Smart Audiobook Player to integrate ability to connect audiobookshelf server in smart audiobook player. This thread is already stretched too long.
@ThatOldOne commented on GitHub (Dec 4, 2025):
I have implemented a satisfying x64 PC/Win solution using Equalizer APO and one specific class of VSTs that seems to do a great job at leveling all the loud and soft sounds often found in audiobooks. The class of VSTs is known as AutoSwell. I say seems because I just started playing with it tonight and don't have much runtime on it to see if it has any long-term issues. So far it's great and works a treat on youtube videos too.
It can chain multiple VSTs such as EQs, compressors, filters, tone controls, and such. Equalizer APO is a quirky animal and you should read extensively to learn how set it up. Once setup, you can just drop VSTs in it. It wants x64 VSTs.
I'd be happy to explain more, but I don't know where this topic would be appropriate. I'll just drop a couple links to get you started, if you have an interest.
Lots of free VSTs: https://plugins4free.com/effects/Dynamics/?page=1
The AutoSwell VST that I am using: https://plugins4free.com/plugin/2504/
Equalizer APO: https://sourceforge.net/projects/equalizerapo/