Added new setStreamTime function; Documentation updates for 4.1.1 release.
[rtaudio-cdist.git] / doc / release.txt
1 RtAudio - a set of C++ classes that provide a common API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio, and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO and WASAPI) operating systems.
2
3 By Gary P. Scavone, 2001-2014.
4
5 v4.1.1: (26 April 2014)
6 - updates to WASAPI API for MinGW compiling
7 - WASAPI bug fixes for audio INPUT mode
8 - DirectSound bug fix for INPUT mode
9 - Bug fixes in Core, Jack, ASIO and DS for internal draining in INPUT mode
10 - updates to test programs for default device specifiers
11 - CMake buildfile update for WASAPI
12 - new setStreamTime function
13
14 v4.1.0: (10 April 2014)
15 - RtError class renamed RtAudioError and embedded in RtAudio.h (RtError.h deleted)
16 - new support for the Windows WASAPI API (thanks to Marcus Tomlinson)
17 - CMake support (thanks to Berkus Decker)
18 - pulse audio update to support bufferFrames argument with audio input (thanks to Jonatan Wallmander)
19 - fixes for ALSA API to avoid high CPU usage during stops and to clear stale data before input (thanks to Pluto Hades)
20 - miscellaneous efficiency updates suggested by Martin Koegler
21 - bug fix for OS-X xrun reporting problem
22 - bug fix related to error when opening a stream after closing a previously open stream
23
24 v4.0.12: (16 April 2013)
25 - new functionality to allow error reporting via a client-supplied function (thanks to Pavel Mogilevskiy)
26 - new function to return the version number
27 - updated RtAudio.cpp and ASIO files for UNICODE support (thanks to Renaud Schoonbroodt)
28 - updates to PulseAudio API support (thanks to Peter Meerwald and Tristan Matthews)
29 - updates for pkg-config support in configure script
30 - 24-bit format changed to true 24-bit format, not sub-bytes of 32-bits (thanks to Marc Britton)
31 - bug fixes to make sure stream status is closed if error during probeDeviceOpen
32 - updates / fixes to SCHED_RR code in ALSA (thanks to Marc Lindahl)
33 - various changes to avoid global variables (thanks to Martin Koegler)
34
35 v4.0.11: (14 June 2012)
36 - fixes for memory leaks in ALSA (thanks to Martin Koegler)
37 - PulseAudio API support added (thanks to Peter Meerwald and Tristan Matthews)
38 - bitwise format flag fixes in OS-X (Benjamin Schroeder and Stefan Arisona)
39 - changes to stopStream / drain flag to avoid hung state in ASIO, DS, OS-X, and Jack APIs (Rasmus Ekman and Carlos Luna)
40
41 v4.0.10: (30 August 2011)
42 - fix for compile bug in Windows DS (counting devices)
43 - update to configure and library Makefile
44
45 v4.0.9: (14 August 2011)
46 - fix for ASIO problem enumerating devices after opening duplex stream (Oliver Larkin)
47 - fix for OS-X problems setting sample rate and bits-per-sample
48 - updates for OS-X "Lion"
49 - updates for wide character support in Windows DS (UNICODE)
50 - fix for possible ALSA callback thread hang (thanks to Tristan Matthews)
51 - fix for DS getDeviceCount bug (vector erase problem)
52
53 v4.0.8: (12 April 2011)
54 - fix for MinGW4 problem enumerating and setting sample rates (iasiothiscallresolver, Dmitry Kostjuchenko)
55 - fix for OS-X problem handling device names in some languages (CFString conversion, Vincent BĂ©nony)
56 - small change to OS-X mutex lock location to avoid lockups
57 - correction to documentation regarding 24-bit data (should be lower 3 bytes, not upper 3 bytes)
58 - bug fix for error handling of warnings (Antoine Lefebvre)
59 - added option to use the ALSA "default" device (Tristan Matthews)
60 - removed use of mutexes in Windows
61 - fix for ASIO4ALL behavior when stopping/closing streams (Antoine Lefebvre)
62 - included python binding in "contrib" directory (beta, Antoine Lefebvre)
63
64 v4.0.7: (4 February 2010)
65 - revised Windows DS code and device enumeration to speed up device queries
66 - OS-X 10.6 updates for deprecated functions
67 - updates to Jack shutdown code to avoid lockup
68
69 v4.0.6: (3 June 2009)
70 - bug fix in ALSA code to set period size to power of two (thanks to Joakim Karrstrom)
71 - bug fix in OS-X for OS < 10.5 ... need preprocessor definition around new variable type (thanks to Tristan Matthews)
72
73 v4.0.5: (2 February 2009)
74 - added support in CoreAudio for arbitrary stream channel configurations
75 - added getStreamSampleRate() function because the actual sample rate can sometimes vary slightly from the specified one (thanks to Theo Veenker)
76 - added new StreamOptions flag "RTAUDIO_SCHEDULE_REALTIME" and attribute "priority" to StreamOptions (thanks to Theo Veenker)
77 - replaced usleep(50000) in callbackEvent() by a wait on condition variable which gets signaled in startStream() (thanks to Theo Veenker)
78 - fix for Jack API when user callback function signals stop or abort calls
79 - fix to way stream state is changed to avoid infinite loop problem
80 - fix to int<->float conversion in convertBuffer() (thanks to Theo Veenker)
81 - bug fix in byteSwapBuffer() (thanks to Stefan Muller Arisona and Theo Veenker)
82 - fixed a few gcc 4.4 errors in OS-X
83 - fixed bug in rtaudio-config script
84 - revised configure script and Makefile structures
85 - 64-bit fixes in ALSA API (thanks to Stefan Muller Arisona)
86 - fixed ASIO sample rate selection bug (thanks to Sasha Zheligovsky)
87
88 v4.0.4: (24 January 2008)
89 - added functionality to allow getDeviceInfo() to work in ALSA for an open device (like ASIO)
90 - fixes in configure script
91 - fixed clearing of error message stream in error()
92 - fixed RtAudio::DeviceInfo description in "probing" documentation
93 - memory leak fixes in ALSA and OSS
94 - Jack in/out port flag fix
95 - Windows changes for thread priority and GLOBALFOCUS
96
97 v4.0.3: (7 December 2007)
98 - added support for MinGW compiler to configure script
99 - a few MinGW-related changes to RtAudio.cpp
100 - renamed test program probe.cpp to audioprobe.cpp
101 - moved various header files into single "include" directory and updated VC++ project files
102
103 v4.0.2: (21 August 2007)
104 - fix to RtError::WARNING typo in RtAudio.h (RtApiDummy)
105 - removed "+1"s in RtApiCore c++ append when getting device name
106
107 v4.0.1: (13 August 2007)
108 - fix to RtError::WARNING typo in RtAudio.cpp
109
110 v4.0.0: (7 August 2007)
111 - new support for non-interleaved user data
112 - additional input/output parameter specifications, including channel offset
113 - new support for dynamic connection of devices
114 - new support for stream time
115 - revised callback arguments, including separate input and output buffer arguments
116 - revised C++ exception handling
117 - revised OSS support for version 4.0
118 - discontinued support of blocking functionality
119 - discontinued support of SGI
120 - Windows DirectSound API bug fix
121 - NetBSD support (using OSS API) by Emmanuel Dreyfus
122 - changed default pthread scheduling priority to SCHED_RR when defined in the system
123 - new getCompiledApi() static function
124 - new getCurrentApi(), getStreamTime(), getStreamLatency(), and isStreamRunning() functions
125 - modified RtAudioDeviceInfo structure to distinguish default input and output devices
126
127 v3.0.3: (18 November 2005)
128 - UNICODE fix for Windows DirectSound API
129 - MinGW compiler fix for ASIO API
130
131 v3.0.2: (14 October 2005)
132 - modification of ALSA read/write order to fix duplex under/overruns
133 - added synchronization of input/output devices for ALSA duplex operation
134 - cleaned up and improved error reporting throughout
135 - bug fix in Windows DirectSound support for 8-bit audio
136 - bug fix in Windows DirectSound support during device capture query
137 - added ASIOOutputReady() call near end of callbackEvent to fix some driver behavior
138 - added #include <stdio.h> to RtAudio.cpp
139 - fixed bug in RtApiCore for duplex operation with different I/O devices
140 - improvements to DirectX pointer chasing (by Robin Davies)
141 - backdoor RtDsStatistics hook provides DirectX performance information (by Robin Davies)
142 - bug fix for non-power-of-two Asio granularity used by Edirol PCR-A30 (by Robin Davies)
143 - auto-call CoInitialize for DSOUND and ASIO platforms (by Robin Davies)
144
145 v3.0.1: (22 March 2004)
146 - bug fix in Windows DirectSound support for cards with output only
147
148 v3.0: (11 March 2004)
149 - added Linux Jack audio server support
150 - new multi-api support by subclassing all apis and making rtaudio a controller class
151 - added over/underload check to Mac OS X support
152 - new scheme for blocking functionality in callback-based apis (CoreAudio, ASIO, and JACK)
153 - removed multiple stream support (all stream indentifier arguments removed)
154 - various style and name changes to conform with standard C++ practice
155
156 v2.1.1: (24 October 2002)
157 - bug fix in duplex for Mac OS X and Windows ASIO code
158 - duplex example change in tutorial 
159
160 v2.1: (7 October 2002)
161 - added Mac OS X CoreAudio support
162 - added Windows ASIO support
163 - API change to getDeviceInfo(): device argument must be an integer between 1 - getDeviceCount().
164 - "configure" support added for unix systems
165 - adopted MIT-like license
166 - various internal structural changes and bug fixes
167
168 v2.01: (27 April 2002)
169 - Windows destructor bug fix when no devices available
170 - RtAudioError class renamed to RtError
171 - Preprocessor definitions changed slightly (i.e. __LINUX_OSS_ to __LINUX_OSS__) to conform with new Synthesis ToolKit distribution
172
173 v2.0: (22 January 2002)
174 - first release of new independent class
175