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.
-By Gary P. Scavone, 2001-2017 (and many other developers!)
+By Gary P. Scavone, 2001-2019 (and many other developers!)
This distribution of RtAudio contains the following:
The RtAudio license is similar to the MIT License.
RtAudio: a set of realtime audio i/o C++ classes
- Copyright (c) 2001-2017 Gary P. Scavone
+ Copyright (c) 2001-2019 Gary P. Scavone
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
RtAudio: realtime audio i/o C++ classes
- Copyright (c) 2001-2017 Gary P. Scavone
+ Copyright (c) 2001-2019 Gary P. Scavone
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
*/
/************************************************************************/
-// RtAudio: Version 5.0.0
+// RtAudio: Version 5.1.0
#include "RtAudio.h"
#include <iostream>
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
RtAudio: realtime audio i/o C++ classes
- Copyright (c) 2001-2017 Gary P. Scavone
+ Copyright (c) 2001-2019 Gary P. Scavone
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
#ifndef __RTAUDIO_H
#define __RTAUDIO_H
-#define RTAUDIO_VERSION "5.0.0"
+#define RTAUDIO_VERSION "5.1.0"
#if defined _WIN32 || defined __CYGWIN__
#if defined(RTAUDIO_EXPORT)
# Process this file with autoconf to produce a configure script.
-AC_INIT(RtAudio, 5.0.0, gary@music.mcgill.ca, rtaudio)
+AC_INIT(RtAudio, 5.1.0, gary@music.mcgill.ca, rtaudio)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(RtAudio.cpp)
AC_CONFIG_FILES([rtaudio.pc Makefile tests/Makefile doc/Makefile doc/doxygen/Doxyfile])
# If any interfaces have been removed since the last public release, then set
# age to 0.
m4_define([lt_current], 6)
-m4_define([lt_revision], 0)
+m4_define([lt_revision], 1)
m4_define([lt_age], 0)
m4_define([lt_version_info], [lt_current:lt_revision:lt_age])
<UL>
<LI>Stephen Sinclair (major code and repository support!)</LI>
<LI>Stefan Arisona</LI>
+<LI>bejuryu</LI>
<LI>Vincent Bénony</LI>
+<LI>Francesco Bertolaccini</LI>
+<LI>Benjamin Brown</LI>
+<LI>Claudio Cabral</LI>
+<LI>JP Cimalando</LI>
<LI>Rasmus Ekman</LI>
<LI>Anders Ervik</LI>
<LI>Robin Davies (Windows DS and ASIO)</LI>
+<LI>Marcelo Fernandez</LI>
+<LI>Taylor Holberton</LI>
<LI>Martin Koegler</LI>
<LI>Dmitry Kostjuchenko</LI>
<LI>Oliver Larkin</LI>
+<LI>Jakob Leben</LI>
<LI>Antoine Lefebvre</LI>
<LI>Carlos Luna</LI>
+<LI>Connor MacDonald</LI>
+<LI>Jasper Mackenzie</LI>
<LI>Dominic Mazzoni</LI>
<LI>Tristan Matthews</LI>
<LI>Peter Meerwald (PulseAudio)</LI>
+<LI>Jaromir Mikeš</LI>
+<LI>rehans</LI>
+<LI>Sebastian Reimers</LI>
+<LI>Ryan Schmidt</LI>
<LI>Benjamin Schroeder</LI>
+<LI>sonoro1234</LI>
+<LI>terminator356</LI>
+<LI>Marcus Tomlinson (WASAPI)</LI>
<LI>Ryan Williams (Windows non-MS compiler ASIO support)</LI>
<LI>Ed Wildgoose (Linux ALSA and Jack)</LI>
+<LI>Serge Zaitsev</LI>
+<LI>Iohannes Zmölnig</LI>
</UL>
<HR>
<table><tr><td><img src="../images/mcgill.gif" width=165></td>
- <td>©2001-2017 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
+ <td>©2001-2019 Gary P. Scavone, McGill University. All Rights Reserved.<br>Maintained by <a href="http://www.music.mcgill.ca/~gary/">Gary P. Scavone</a>.</td></tr>
</table>
</BODY>
/*! \page license License
RtAudio: a set of realtime audio i/o C++ classes<BR>
- Copyright (c) 2001-2017 Gary P. Scavone
+ Copyright (c) 2001-2019 Gary P. Scavone
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Some audio devices may require a minimum channel value greater than one. RtAudio will provide automatic channel number compensation when the number of channels set by the user is less than that required by the device. Channel compensation is <I>NOT</I> possible when the number of channels set by the user is greater than that supported by the device.
-It should be noted that the capabilities reported by a device driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. For this reason, RtAudio does not rely on the queried values when attempting to open a stream.
+Note that the device enumeration is system specific and will change if any devices are plugged or unplugged by the user. Thus, the device numbers should be verified immediately before opening a stream. As well, if a user unplugs a device while an open stream is using that device, the resulting stream behaviour will be undefined (a system error will likely be generated).
+
+Also, the capabilities reported by a device driver or underlying audio API are not always accurate and/or may be dependent on a combination of device settings. For this reason, RtAudio does not rely on the queried values when attempting to open a stream.
*/
RtAudio incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an RtAudio instance. See the \ref apinotes section for information specific to each of the supported audio APIs.
-\section whatsnew Latest Updates (Version 5.0.0)
+\section whatsnew Latest Updates (Version 5.1.0)
-The version number has been bumped to 5.0.0 because of the past API change concerning the renaming of the RtError class to RtAudioError. Changes in this release include:
+Changes in this release include:
-- WASAPI updates (thanks to Marcus Tomlinson)
-- minor exception semantic changes
+- new C API wrapper
+- new functions to get API names
+- many WASAPI updates (thanks to Marcus Tomlinson)
- miscellaneous build system updates
+- bug fix for stream ticking in CoreAudio if using two devices for duplex
+- ALSA stream handle bug fixes
- see git history for complete list of changes
\section download Download
-Latest Release (30 August 2017): <A href="http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-5.0.0.tar.gz">Version 5.0.0</A>
+Latest Release (17 April 2019): <A href="http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-5.1.0.tar.gz">Version 5.1.0</A>
\section documentation Documentation Links
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.
-By Gary P. Scavone, 2001-2017.
+By Gary P. Scavone, 2001-2019.
+
+v.5.1.0: (17 April 2019)
+- see git history for complete list of changes
+- many WASAPI updates (thanks to Marcus Tomlinson)
+- miscellaneous build system updates
+- bug fix for stream ticking in OS-X if using two devices for duplex
+- ALSA stream handle bug fixes
+- new C API wrapper
+- new functions to get API names
v5.0.0: (30 August 2017)
- see git history for complete list of changes
RtAudio - a set of C++ classes which 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.
-By Gary P. Scavone, 2001-2017.
+By Gary P. Scavone, 2001-2019.
To configure and compile (on Unix systems and MinGW):