Skip to content


Wiki converter edited this page Sep 24, 2020 · 3 revisions
Clone this wiki locally

V19 Development Status

[ note this page needs fixing, the links to the ticket reports are broken right now due to our trac=>assembla migration ]

V19 is the branch of PortAudio which was started some years ago to develop the 2.0 PortAudio API. This branch has been extensively developed and is now considered the main line of development by PortAudio developers. V19 is now developed on the svn trunk (the v19-devel branch is obsolete). The 2.0 API definition has been stable for several years, however some new V19 API features are not yet complete on all platforms/host APIs (most notably blocking i/o is not implemented everywhere, nor is the callback buffer time stamping). Version 2.0 API implementation status is documented here:

In spite of lack of complete support for some version 2.0 features, the current (V19) trunk is used in a number of commercial and open source projects and is considered by most PortAudio developers to be more consistent and usable than the V18-patch branch. It implements a number of features which were not available in the version 1.0 API (support for multiple host-APIs in a single build, support for non-interleaved buffers, blocking i/o with some host APIs).

V19 Stable Snapshot

A stable V19 snapshot release was made on March 26, 2011. It was designated as milestone:V19-SS2. Its main new feature was support for Windows WASAPI.

Roadmap to a Final V19 Release

The TRAC report {1} lists open tickets by Milestone.

Currently we are planning a series of milestones on the road to a final V19 release.

  • milestone:V19-M1 -- in progress. will include latency parameter related changes, API/ABI changes (see wiki:V19M1ApiChanges), and PortMixer support
  • milestone:V19 -- currently assigned all other work planned for inclusion.

We need to set some more intermediate milestones between M1 and the final release. We plan to review the situation when V19-M1 has been reached.

Support for WaveRT is in the works and may or may not be part of the final V19 depending on when it is completed.

You Can Help

We'd love to accept contributions from new developers.

If you'd like to help out, please join the mailing list and let us know.

Outstanding Tickets

A list of outstanding tickets sorted by milestone can be viewed here: {1}

A report with tickets to be completed for the next stable snapshot (V19-SS2):

We have set up a work flow that separates out tickets that need review: {15} (LIST-REVIEW tickets) and tickets that are appropriate for new contributors: {3} (STARTER tickets). The bulk of the tickets (the non-LIST-REVIEW, non_STARTER) are listed by milestone on reports {1}, {16} and {17}, and by priority on report {2}.

Notes from mailing list discussions

'''BUGS:''' Here are some bugs that should be fixed before V-19-Final:

  • Resolve latency issues.

  • Ross wrote: "pa_asio.cpp SelectHostBufferSize() doesn't take the user callback framesPerBuffer into account at all (as discussed recently). It should attempt to conform the ASIO buffer size to the callback framesPerBuffer (or multiples of it). This is pretty nasty since it impacts available CPU time in the audio callback, but we've been living with it forever apparently..."

  • Maybe the ASIO problem Reid reported with InterlockedIncrement_xxx functions in combase.h?

'''DOCUMENTATION: '''Not critical to the coding or operation of PortAudio, various aspects of the documentation need to be completed or updated on an ongoing basis:

  • Update various build tutorials in Wiki.

  • Document non-implemented 2.0 API features.

  • Document lack of support for Mac 10.3.

'''Platforms and Builds to Test:'''

  • Linux: OSS, ALSA
  • Windows: Windows XP, Vista, Windows 7 with WMME, DS, WASAPI and ASIO
  • Mac OSX 10.4 (ppc32 & x86_32) , 10.5 (ppc32 & x86_32), 10.6 (x86_32 & x86_64)
  • gcc, msvc,...?
  • ./configure
  • msvc build files
  • sconscripts
  • any other build files which should be tested or deleted

We are also discussing possible changes to StructPackingAndApiCallingConvention as a result of ticket #58.

The following tasks will be deferred to V20:

  • Sample rate conversion (depending on the outcome of discussions)

In general, "new features" are unlikely to be included in V19 unless someone contributes a fully functional patch that works on all platforms. The core developers will be focusing on completing outstanding work.

Task assignment

Please add/remove yourself from this as needed

  • Ross: latency stuff. etc etc
  • Dmitry et al: WASAPI
  • Phil: unit tests
  • Others: quality control, documentation
  • Everyone: list of what isn't implemented