[Alsaplayer-devel] 0.99.80-rc2 and future for AlsaPlayer

Dominique Michel dominique.michel at citycable.ch
Sat Jul 14 11:28:09 BST 2007

Le Fri, 13 Jul 2007 22:46:36 +0200,
Dominique Michel <dominique.michel at citycable.ch> a écrit :

> > * From Fons Adriaensen on the LAA:
> > While it's a nice player, it has some serious audio quality
> > issues.
> > 
> > - Resampling 44.1 -> 48 kHz (for jack) sounds horrible...
> > 
> > - The sndfile input plugin reduces everything to 16 bits.
> >   This is really absurd, even if your files and your
> >   sound card are 24 bit you only get 16. 
> >   Floating point wav files apparently aren't read at all
> >   (they load but produce silence when played).
> > 
> > All of this could be solved by using a good resampler
> > lib, and making the internal format floating point 
> > rather than short.
> > 
> I get more information from Fons. If you don't know him, he is the developer
> of Aeolus and other outstanding audio applications:
> http://www.kokkinizita.net/linuxaudio/
> Quote:
> Which good resampling lib can be worth to try?  
> Libsamplerate <http://www.mega-nerd.com/SRC/> will do all you want.
> It has an easy to use API, and could do the varispeed as well.
> It's used in Ardour for example. The DSP code is not really optimised,
> so it can take some CPU in particular when using the best quality.
> It's probably a good idea to select the quality in the Preferences.
> But the first step would be to convert all internal sound representation
> to floats (libsamplerate also uses floats). Then you'll need to convert
> back to ints for ALSA. Code to do this can be found in jack, or in my
> clalsadrv library.
> End quote

And one more reply from Fons:
> I have one more question. Is it needed to convert all internal sound
> representation in AlsaPlayer as whole or only in the jack output plugin?  

Doing it globally will be the easiest way. You want to connect any 
input plugin to any outplug plugin, with some common code in between.
The simplest way is to make all input modules produce floats, and all
output modules to accept them. Jack is already floating point only.
Libsndfile can deliver floats for any format it can read. If you want
to support LADPSA plugins they use FP as well. It's the only format
that will preserve the full quality of whatever is the input or output.

Also all Linux audio processing code that you could re-use will be
using floats.


That is clear!

> AlsaPlayer is a good alsa player as its name show it. I also think at no one
> OS will survive in today computer world without outstanding multimedia
> capability. Linux have an ace in regard to sound support: the couple
> alsa-jack.
> I see this issue as very important to solve in AlsaPlayer. AlsaPlayer can be
> the best light player with a good jack support and TCP support.
> As more users will get interested by AP with the GTK2 interface, I see this
> jack issue as more important to solve in the short term as to add TCP support.
> The missing TCP support is not a bug, but a feature to add, when the bad sound
> quality in jack is a bug.
> Is it some volunteer to look at it?
> Dominique

More information about the alsaplayer-devel mailing list