Version History§

0.5.1 (2024-10-12):
  • Windows wheel: bundle both non-ASIO and ASIO DLLs, the latter can be chosen by defining the SD_ENABLE_ASIO environment variable

0.5.0 (2024-08-11):
  • Remove ASIO support from bundled DLLs (DLLs with ASIO can be manually selected)

0.4.7 (2024-05-27):
0.4.6 (2023-02-19):
  • Redirect stderr with os.dup2() instead of CFFI calls

0.4.5 (2022-08-21):
  • Add index field to device dict

  • Require Python >= 3.7

  • Add PaWasapi_IsLoopback() to cdef (high-level interface not yet available)

0.4.4 (2021-12-31):
  • Exact device string matches can now include the host API name

0.4.3 (2021-10-20):
  • Fix dimension check in Stream.write()

  • Provide “universal” (x86_64 and arm64) .dylib for macOS

0.4.2 (2021-07-18):
  • Update PortAudio binaries to version 19.7.0

  • Wheel names are now shorter

0.4.1 (2020-09-26):
0.4.0 (2020-07-18):
  • Drop support for Python 2.x

  • Fix memory issues in play(), rec() and playrec()

  • Example application play_stream.py

0.3.15 (2020-03-18):
  • This will be the last release supporting Python 2.x!

0.3.14 (2019-09-25):
  • Examples play_sine.py and rec_gui.py

  • Redirect stderr only during initialization

0.3.13 (2019-02-27):
  • Examples asyncio_coroutines.py and asyncio_generators.py

0.3.12 (2018-09-02):
  • Support for the dylib from Anaconda

0.3.11 (2018-05-07):
  • Support for the DLL from conda-forge

0.3.10 (2017-12-22):
  • Change the way how the PortAudio library is located

0.3.9 (2017-10-25):
  • Add Stream.closed

  • Switch CFFI usage to “out-of-line ABI” mode

0.3.8 (2017-07-11):
0.3.7 (2017-02-16):
  • Add get_stream()

  • Support for CData function pointers as callbacks

0.3.6 (2016-12-19):
  • Example application play_long_file.py

0.3.5 (2016-09-12):
0.3.4 (2016-08-05):
  • Example application rec_unlimited.py

0.3.3 (2016-04-11):
0.3.2 (2016-03-16):
  • mapping=[1] works now on all host APIs

  • Example application plot_input.py showing the live microphone signal(s)

  • Device substrings are now allowed in query_devices()

0.3.1 (2016-01-04):
0.3.0 (2015-10-28):
0.2.2 (2015-10-21):
  • Devices can now be selected by substrings of device name and host API name

0.2.1 (2015-10-08):
  • Example applications wire.py (based on PortAudio’s patest_wire.c) and spectrogram.py (based on code by Mauris Van Hauwe)

0.2.0 (2015-07-03):
  • Support for wheels including a dylib for Mac OS X and DLLs for Windows. The code for creating the wheels is largely taken from the soundfile module.

  • Remove logging (this seemed too intrusive)

  • Return callback status from wait() and add the new function get_status()

  • playrec(): Rename the arguments input_channels and input_dtype to channels and dtype, respectively

0.1.0 (2015-06-20):

Initial release. Some ideas are taken from PySoundCard. Thanks to Bastian Bechtold for many fruitful discussions during the development of several features which python-sounddevice inherited from there.