[Portaudio] stable candidate 20110317

Ross Bencina rossb-lists at audiomulch.com
Fri Mar 18 00:30:52 EDT 2011


Michael,

Michal Suchanek wrote:
> As I see it PortAudio is not suitable for my environment of a
> prepackaged distribution.

But if I understand correctly, you don't seem to be using a prepackaged 
distribution. You are using a  modified distribution: one where you've 
uninstalled ALSA, the default Linux audio API, but not rebuilt userspace 
applications that depend on ALSA (i.e. PortAudio applications that will 
by-design use ALSA as the default host API if they are built with ALSA 
support).


> A prepackaged distribution allows you to try
> several solutions quickly and also quickly trash those that did not
> work. It also maintains the packages built with the same options for
> multiple architectures requiring little effort to instantiate the same
> setup across multiple systems.

But you have changed the configuration -- you have removed ALSA. I'm not 
sure if it is reasonable to expect precompiled packages that depend on ALSA 
(eg PortAudio) to work correctly in this scenario.


> PortAudio does not work for me and as alternative solutions exist and
> the PortAudio community appears hostile towards making it work I am
> not willing to take the burden of maintaining the package for multiple
> architectures on myself and so I trash it.

We have tried to answer your questions and explain the situation as it 
stands. I am still trying to understand exactly what your requirements are 
and whether they warrant raising a bug report. I don't really understand how 
you can interpret this as hostile. As it stands, you started off telling us 
that PA is broken because it doesn't support having a configuration file, 
and now it transpires that PA is broken because it doesn't support removing 
ALSA from the system after compiling-in ALSA support.

Although we are always interested to hear how other libraries work, there 
are a number of ways in which PortAudio differs from the other libraries you 
have mentioned, so the argument that "PortAudio is broken because it doesn't 
work exactly the same way as other APIs" is not a strong one.

PA has a streamlined default device process in that we use the default 
device of the _underlying_ API. In this case, the ALSA default device. That 
way we don't need a configuration file, and we work the same way as all 
other applications that use the ALSA default device, without the need for 
additional configuration.

>From what you have told us, you have removed ALSA support from your kernel. 
I am still unsure how this works at all unless you have kept the ALSA 
userspace library installed.

But in my opinion, there are at least two potential bugs here:

1. """When PA is configured to use ALSA at build time, if ALSA is not 
installed on the client machine PA sees no devices, and hence no default 
device."""

2. """When the PA default host API (eg ALSA) has no devices, PA doesn't try 
to use the next API (eg OSS) in the list)."""

Personally I don't know if either of these are real bugs yet.

(1) describes a scenario that was never considered during design  -- we do 
face a similar situation on Windows with WASAPI however so it may be 
worthwhile us considering adding a test for host API presence. Although in 
your case it is unclear to me how this would work if you still have ALSA 
user space installed.

(2) has been discussed here before. The issue here is related to having 
disconnectable devices. If ALSA is installed, but your audio device is a 
disconnected USB device (so no devices), does it really make sense to switch 
which host API is used to OSS?

Thank you

Ross. 



More information about the Portaudio mailing list