NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #890 most downloaded on PyPI
Play and Record Sound with Python
Last release 1 months ago
17 Aug 2026
Ships fairly regularly
a new release about every 5 months
Nearly every release is documented
notes for 35 of 36 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
36 releases · first in 2015
https://pypi.org/project/sounddevice/0.5.6/
https://pypi.org/project/sounddevice/0.5.6/
https://pypi.org/project/sounddevice/0.5.5/
https://pypi.org/project/sounddevice/0.5.5/
One column per quarter.
https://pypi.org/project/sounddevice/0.5.4/
https://pypi.org/project/sounddevice/0.5.4/
https://pypi.org/project/sounddevice/0.5.3/
https://pypi.org/project/sounddevice/0.5.3/
explicit_sample_format parameter to WasapiSettingshttps://pypi.org/project/sounddevice/0.5.2/
https://pypi.org/project/sounddevice/0.5.2/
https://pypi.org/project/sounddevice/0.5.1/
https://pypi.org/project/sounddevice/0.5.1/
SD_ENABLE_ASIO environment variablehttps://pypi.org/project/sounddevice/0.5.0/
https://pypi.org/project/sounddevice/0.5.0/
https://pypi.org/project/sounddevice/0.4.7/
https://pypi.org/project/sounddevice/0.4.7/
paWinWasapiAutoConvert with auto_convert flag in WasapiSettingsPortAudioError.__str__()https://pypi.org/project/sounddevice/0.4.6/
https://pypi.org/project/sounddevice/0.4.6/
https://pypi.org/project/sounddevice/0.4.5/
https://pypi.org/project/sounddevice/0.4.5/
index field to device dicthttps://pypi.org/project/sounddevice/0.4.5/
index field to device dicthttps://pypi.org/project/sounddevice/0.4.4/
https://pypi.org/project/sounddevice/0.4.4/
https://pypi.org/project/sounddevice/0.4.3/
https://pypi.org/project/sounddevice/0.4.3/
Stream.write().dylib for macOShttps://pypi.org/project/sounddevice/0.4.2/
https://pypi.org/project/sounddevice/0.4.2/
https://pypi.org/project/sounddevice/0.4.1/
https://pypi.org/project/sounddevice/0.4.1/
CallbackFlags attributes are now writablehttps://pypi.org/project/sounddevice/0.4.0/
https://pypi.org/project/sounddevice/0.4.0/
play(), rec() and playrec()play_stream.pyhttps://pypi.org/project/sounddevice/0.3.15/
https://pypi.org/project/sounddevice/0.3.15/
https://pypi.org/project/sounddevice/0.3.14/
https://pypi.org/project/sounddevice/0.3.14/
play_sine.py and rec_gui.pystderr only during initializationhttps://pypi.org/project/sounddevice/0.3.13/
https://pypi.org/project/sounddevice/0.3.13/
asyncio_coroutines.py and asyncio_generators.pyhttps://pypi.org/project/sounddevice/0.3.12/
https://pypi.org/project/sounddevice/0.3.12/
https://pypi.org/project/sounddevice/0.3.11
https://pypi.org/project/sounddevice/0.3.11
conda-forgehttps://pypi.python.org/pypi/sounddevice/0.3.10
https://pypi.python.org/pypi/sounddevice/0.3.10
https://pypi.python.org/pypi/sounddevice/0.3.9
https://pypi.python.org/pypi/sounddevice/0.3.9
sounddevice.Stream.closedhttps://pypi.python.org/pypi/sounddevice/0.3.8
https://pypi.python.org/pypi/sounddevice/0.3.8
ignore_errors argumentssounddevice.PortAudioError.argssounddevice.CoreAudioSettingsAdd more ignore_errors arguments
Add PortAudioError.args
Add CoreAudioSettings
https://pypi.python.org/pypi/sounddevice/0.3.7
https://pypi.python.org/pypi/sounddevice/0.3.7
sounddevice.get_stream()https://pypi.python.org/pypi/sounddevice/0.3.6
https://pypi.python.org/pypi/sounddevice/0.3.6
play_long_file.pyhttps://pypi.python.org/pypi/sounddevice/0.3.5
https://pypi.python.org/pypi/sounddevice/0.3.5
extra_settings option for host-API-specific stream settingssounddevice.AsioSettings and sounddevice.WasapiSettingsAdd extra_settings option for host-API-specific stream settings
Add AsioSettings and WasapiSettings
https://pypi.python.org/pypi/sounddevice/0.3.4
https://pypi.python.org/pypi/sounddevice/0.3.4
rec_unlimited.pyhttps://pypi.python.org/pypi/sounddevice/0.3.3
https://pypi.python.org/pypi/sounddevice/0.3.3
loop argument to sounddevice.play()https://pypi.python.org/pypi/sounddevice/0.3.2
https://pypi.python.org/pypi/sounddevice/0.3.2
mapping=[1] works now on all host APIsplot_input.py showing the live microphone signal(s)sounddevice.query_devices()https://pypi.python.org/pypi/sounddevice/0.3.1
https://pypi.python.org/pypi/sounddevice/0.3.1
sounddevice.check_input_settings() and
sounddevice.check_output_settings()/dev/null (on Linux and OSX)Add check_input_settings() and check_output_settings()
Send PortAudio output to /dev/null (on Linux and OSX)
https://pypi.python.org/pypi/sounddevice/0.3.0
https://pypi.python.org/pypi/sounddevice/0.3.0
sounddevice.print_devices(), sounddevice.query_devices() can be
used instead, since it now returns a sounddevice.DeviceList object.since it now returns a DeviceList object.
https://pypi.python.org/pypi/sounddevice/0.2.2
https://pypi.python.org/pypi/sounddevice/0.2.2
https://pypi.python.org/pypi/sounddevice/0.2.1
https://pypi.python.org/pypi/sounddevice/0.2.1
wire.py (based on PortAudio's patest_wire.c)
and spectrogram.py (based on code by Mauris Van Hauwe)https://pypi.python.org/pypi/sounddevice/0.2.0
https://pypi.python.org/pypi/sounddevice/0.2.0
sounddevice.wait() and add the new function
sounddevice.get_status()sounddevice.playrec(): Rename the arguments input_channels and
input_dtype to channels and dtype, respectivelyThe 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
https://pypi.python.org/pypi/sounddevice/0.1.0
https://pypi.python.org/pypi/sounddevice/0.1.0
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.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →