PortAudio Implementations for DirectSound
Author: Phil Burk
Description: PortAudio is a cross platform, open-source, audio I/O library.It provides a very simple API for recording and/or playing sound using a simple callback function.
Keywords: audio, library, portable, open-source, DirectSound,sound, music, JSyn, synthesis,

# PortAudio - Release Notes

Link to PortAudio Home Page

## V17 - 10/15/01

> Unix OSS
> - Set num channels back to two after device query for ALSA. This fixed a bug in V16 that sometimes caused a failure when querying for the sample rates. Thanks Stweart Greenhill.

> #### Macintosh Sound Manager

> - Use NewSndCallBackUPP() for CARBON compatibility.

## V16 - 9/27/01

> Added Alpha implementations for ASIO, SGI, and BeOS!
> - CPULoad is now calculated based on the time spent to generate a known number of frames. This is more accurate than a simple percentage of real-time. Implemented in pa_unix_oss, pa_win_wmme and pa_win_ds.
> - Fix dither and shift for recording PaUInt8 format data.
> - Added "patest_maxsines.c" which tests `Pa_GetCPULoad().`

> #### Windows WMME

> - sDevicePtrs now allocated using `GlobalAlloc()`. This prevents a crash in Pa_Terminate() on Win2000. Thanks Mike Berry for finding this. Thanks Mike Berry.
> - Pass process instead of thread to `SetPriorityClass`(). This fixes a bug that caused the priority to not be increased. Thanks to Alberto di Bene for spotting this.

> #### Windows DirectSound

> - Casts for compiling with __MWERKS__ CodeWarrior.

> #### UNIX OSS

> - Derived from Linux OSS implementation.
> - Numerous patches from Heiko Purnhagen, Stephen Brandon, etc.
> - Improved query mechanism which often bailed out unnecessarily.
> - Removed sNumDevices and potential related bugs,
> - Use `getenv("PA_MIN_LATENCY_MSEC")` in code to set desired latency. User can set by entering:
> `export PA_MIN_LATENCY_MSEC=40`

> #### Macintosh Sound Manager

> - Pass unused event to WaitNextEvent instead of NULL to prevent Mac OSX crash. Thanks Dominic Mazzoni.

## V15 - 5/29/01

> - New Linux OSS Beta

> #### Windows WMME

> - sDevicePtrs now allocated based on sizeof(pointer). Was allocating too much space.
> - Check for excessive numbers of channels. Some drivers reported bogus numbers.
> - Apply Mike Berry's changes for CodeWarrior on PC including condition including of memory.h, and explicit typecasting on memory allocation.

> #### Macintosh Sound Manager

> - ScanInputDevices was setting sDefaultOutputDeviceID instead of sDefaultInputDeviceID.
> - Device Scan was crashing for anything other than siBadSoundInDevice, but some Macs may return other errors! Caused failure to init on some G4s under OS9.
> - Fix TIMEOUT in record mode.
> - Change CARBON_COMPATIBLE to TARGET_API_MAC_CARBON

## V14 - 2/6/01

> - Added implementation for Windows MultiMedia Extensions (WMME) by Ross and Phil
> - Changed Pa_StopStream() so that it waits for the buffers to drain.
> - Added Pa_AbortStream() that stops immediately without waiting.
> - Added new test: patest_stop.c to test above two mods.
> - Fixed Pa_StreamTime() so that it returns current play position instead of the write position. Added "patest_sync.c" to demo audio/video sync.
> - Improved stability of Macintosh implementation. Added timeouts to prevent hangs.
> - Added Pa_GetSampleSize( PaSampleFormat format );
> - Changes some "int"s to "long"s so that PA works properly on Macintosh which often compiles using 16 bit ints.
> - Added Implementation Guide

## V12 - 1/9/01

> - Mac now scans for and queries all devices. But it does not yet support selecting any other than the default device.
> - Blocking I/O calls renamed to separate them from the PortAudio API.
> - Cleaned up indentation problems with tabs versus spaces.
> - Now attempts to correct bogus sample rate info returned from DirectSound device queries.