In my experience it's always the hardware unit that seems to be problem as far as sound is concerned.
Hardware Hardware plays the important role when it comes to the audio output to the unit. So earpiece and the material used inside earpiece decides how sound renders.
The type of earpiece also plays role here. Classic earbuds are comfortable for your ears however they don't block the noise. Hence in terms of noise cancellation, in-ear earbuds offer better output even in noisy surrounding. You'll also notice that bass and treble sound different in these two types of earbuds. Another variation of headphone is over-the-ear which closes entire ear region. And those can also present a better output.
Option 1I'd suggest trying either Sony, Samsung or Nokia earbuds and test it out. You'll find the difference in audio immediately. And then buy the one that gives good audio output.
Software Controls Audio player (be it desktop or Android app) helps manage the sound variables such as bass, treble, pitch and BPM apart from volume. However that should not affect the quality of the audio output that you get. Regardless of any app, the output needs to sound good in earpiece. However software itself can't affect much of the output so it largely depends on the hardware i.e. earpiece in this context.
Options 2 You can uninstall the player and install the one that gives more control on sound variables. My suggestion is to try Poweramp or Black Player. However after playing with few apps, you'd find that issue with audio is largely hardware dependent.