Proposed Enhancements to PortAudio API

Potential Enhancements

Enhancement Proposals Index, PortAudio Home Page

Updated: September 4, 2003


This page documents potential enhancements to PortAudio which have been suggested, but not yet developed into concrete proposals. Enhancements listed here may be considered for future versions of PortAudio but no guarantees are made about when or if these enhancements will be adopted.

Standard Method for Retrieving Implementation-specific PortAudio Entry Points

Some PortAudio implementations (such as the V19 ASIO version) define additional functions which extend the PortAudio API. When PortAudio is dynamically linked it may be desirable to retrieve pointers to these functions using a standard interface. This could be implemented in a number of ways.

Method for Retrieving Actual Callback Buffer Size

In V19, using paFramesPerBufferUnspecified (0) for the framesPerBuffer parameter to Pa_OpenStream() is recommended so that PortAudio uses an optimal (and possibly varying) number of frames. Some clients could benefit from being able to discover what this buffer size, or what the range of possible buffer sizes is. This could be handled by adding an additional field to PaStreamInfo called bufferSize, which is the callback buffer size in frames, or 0 if the buffer size is variable or unknown. Another possibility is to have both a minBufferSize and maxBufferSize field.

Method for Retrieving Channel Description Strings

Some host APIs (ASIO and CoreAudio) provide text strings describing each channel of a device. This information is especially useful for multichannel devices where the client may wish to display each device name to the user. The following new API calls have been proposed, these functions would return NULL if no string was available.

const char *Pa_GetInputChannelDescriptionString( DeviceIndex device, int channel );
const char *Pa_GetOutputChannelDescriptionString( DeviceIndex device, int channel );