Commit graph

70 commits

Author SHA1 Message Date
Michiel W. Beijen
d42a04c045
GH-60729: Add IEEE format wave audio support (GH-145931)
(this re-applies reverted commit 61f2a1a599,
with a test fix)

Co-authored-by: Lionel Koenig <lionelk@google.com>
2026-03-18 12:46:26 +00:00
Michiel W. Beijen
ff287a72de
gh-144975: Fix wave.Wave_write.setframerate() validation order (GH-144976)
Validate the frame rate after rounding to an integer, not before.
This prevents values like 0.5 from passing validation (0.5 > 0)
but then rounding to 0, which would cause a confusing delayed error
"sampling rate not specified" when writing frames.

With this fix, setframerate(0.5) immediately raises "bad frame rate",
providing clear feedback at the point of the error.
2026-03-17 18:01:18 +01:00
Petr Viktorin
747ef70faa
GH-60729: Revert "Add IEEE format wave audio support (GH-145384)" (GH-145928)
Revert "GH-60729: Add IEEE format wave audio support (GH-145384)"

This reverts commit 61f2a1a599 for now;
as tests fail on big-endian machines.
2026-03-13 17:51:23 +00:00
Michiel W. Beijen
61f2a1a599
GH-60729: Add IEEE format wave audio support (GH-145384)
Co-authored-by: Lionel Koenig <lionelk@google.com>
2026-03-13 14:10:48 +01:00
Cody Maloney
9dbf77beb6
gh-141968: use bytearray.take_bytes in wave._byteswap (#141973) 2025-11-26 21:15:12 +05:30
Mark Byrne
35908265b0
gh-75593: Add support of bytes and path-like paths in wave.open() (GH-140951) 2025-11-12 10:20:55 +02:00
Sachin Shah
171de05b48
gh-136523: Fix wave.Wave_write emitting an unraisable when open raises (GH-136529) 2025-07-13 08:49:12 +03:00
Bénédikt Tran
3f61ea3add
gh-133873: remove deprecated mark interface for wave.Wave_{read,write} objects (#133874) 2025-05-15 14:52:07 +00:00
Victor Stinner
03ad6624c2
gh-105096: Deprecate wave getmarkers() method (#105098)
wave: Deprecate the getmark(), setmark() and getmarkers() methods of
the Wave_read and Wave_write classes. They will be removed in Python
3.15.
2023-05-31 12:09:41 +00:00
Victor Stinner
85e5d03163
gh-105096: Reformat wave documentation (#105136)
Add ".. class::" markups in the wave documentation.

* Reformat also wave.py (minor PEP 8 changes).
* Remove redundant "import struct": it's already imported at top
  level.
* Remove wave.rst from .nitignore
2023-05-31 11:29:10 +00:00
Victor Stinner
036da3bd43
gh-104773: PEP 594: Remove the aifc module (#104933)
* Remove .aifc and .aiff test files of Lib/test/audiodata/
* Remove Lib/test/Sine-1000Hz-300ms.aif test file
2023-05-25 17:20:48 +02:00
Steve Dower
a4ac14faa5
gh-77171: Fixes SubFormat check to compare the entire value. Add docs (GH-97509) 2022-09-23 16:08:21 +01:00
Yusuke Kadowaki
92338f8f19
gh-77171 Support WAVE_FORMAT_EXTENSIBLE in the wave module (GH-96777)
The test file, a modified version of Lib/test/audiodata/pluck-pcm24.wav, was provided by Andrea Celletti on the bug tracker.

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2022-09-14 14:34:40 +01:00
Brett Cannon
3869a839d5
gh-47061: Deprecate chunk (GH-91419) 2022-04-11 15:02:41 -07:00
Brett Cannon
87eec70d97
Deprecate audioop (GH-32392) 2022-04-07 12:27:35 -07:00
Michael Haas
25fa3ecb98 Fix a typo in wave module docstring (GH-17009)
s/pathing/patching/
2019-11-04 22:32:10 -06:00
Victor Stinner
ac7b1a3f32
bpo-37320: Remove openfp() of aifc, sunau and wave (GH-14169)
aifc.openfp() alias to aifc.open(), sunau.openfp() alias to
sunau.open(), and wave.openfp() alias to wave.open() have been
removed. They were deprecated since Python 3.7.
2019-06-18 00:00:24 +02:00
Serhiy Storchaka
134cb01cda
bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951) 2018-03-18 09:55:53 +02:00
Brian Curtin
9f914a01af
bpo-31985: Deprecate openfp in aifc, sunau, and wave (#4344)
The openfp functions of aifp, sunau, and wave had pointed to the open
function of each module since 1993 as a matter of backwards
compatibility. In the case of aifc.openfp, it was both undocumented
and untested. This change begins the formal deprecation of those
openfp functions, with their removal coming in 3.9.

This additionally adds a TODO in test_pyclbr around using aifc.openfp,
though it shouldn't be changed until removal in 3.9.
2017-11-10 11:38:25 -05:00
Martin Panter
19e69c5a20 Issue #23883: Add missing APIs to __all__; patch by Jacek Kołodziej 2015-11-14 12:46:42 +00:00
Serhiy Storchaka
e0fd7ef6bb Corrected docstrings of audio modules. writeframes() accepts bytes, not str. 2015-07-10 22:13:40 +03:00
Serhiy Storchaka
7e7a3dba5f Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
2015-04-10 13:24:41 +03:00
Serhiy Storchaka
3062c9a6c8 Issue #19641: Added the audioop.byteswap() function to convert big-endian
samples to little-endian and vice versa.
2013-11-23 22:26:01 +02:00
Serhiy Storchaka
f4fd257a02 Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on
big-endian platforms.

Temporary forbidden test_unseekable_incompleted_write fornot compressed 16-
and 32-bit wave file  on big-endian platforms.
2013-11-21 11:04:22 +02:00
Serhiy Storchaka
d9a018222f Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on
big-endian platforms.

Temporary forbidden test_unseekable_incompleted_write fornot compressed 16-
and 32-bit wave file  on big-endian platforms.
2013-11-21 11:02:30 +02:00
Serhiy Storchaka
452bab4acf Issue #16685: Added support for writing any bytes-like objects in the aifc,
sunau, and wave modules.
2013-11-16 14:01:31 +02:00
Serhiy Storchaka
7714ebbe0e Issue #5202: Added support for unseekable files in the wave module. 2013-11-16 13:04:00 +02:00
Serhiy Storchaka
29828a6fa9 Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. 2013-11-09 23:15:52 +02:00
Serhiy Storchaka
a44372fd0b Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. 2013-11-09 23:12:06 +02:00
Serhiy Storchaka
5b37f97ea5 Issue #19276: Fixed the wave module on 64-bit big-endian platforms. 2013-10-17 23:05:19 +03:00
Serhiy Storchaka
d3b750516f Issue #19276: Fixed the wave module on 64-bit big-endian platforms. 2013-10-17 23:04:04 +03:00
Serhiy Storchaka
e23b2d06c7 Issue #18919: If the close() method of a writer in the sunau or wave module
failed, second invocation of close() and destructor no more raise an
exception.
2013-10-12 21:36:10 +03:00
Serhiy Storchaka
4c6a020a2d Issue #17487: The result of the wave getparams method now is pickleable again.
Patch by Claudiu Popa.
2013-09-04 00:28:43 +03:00
R David Murray
536ffe161c #17616: Improve context manager tests, fix bugs in close method and mode docs.
'mode' docs fix: the file must always be opened in binary in Python3.

Bug in Wave_write.close: when the close method calls the check that the header
exists and it raises an error, the _file attribute never gets set to None, so
the next close tries to close the file again and we get an ignored traceback
in the __del__ method.  The fix is to set _file to None in a finally clause.
This represents a behavior change...in theory a program could be checking for
the error on close and then doing a recovery action on the still open file and
closing it again.  But this change will only go into 3.4, so I think that
behavior change is acceptable given that it would be pretty weird and unlikely
logic to begin with.
2013-07-31 20:48:26 -04:00
R David Murray
c91d5eea10 #17616: wave.open now supports the 'with' statement.
Feature and tests by ClClaudiu.Popa, I added the doc changes.
2013-07-31 13:46:08 -04:00
Serhiy Storchaka
d739bda6b2 Issue #18084: Use sys.byteorder in wave.py.
Original patch by Hideaki Takahashi.
2013-05-29 23:38:00 +03:00
R David Murray
671cd3290b #17487: wave.getparams now returns a namedtuple.
Patch by Claudiu Popa.
2013-04-10 12:31:43 -04:00
Jesus Cea
e4b863982c Closes #16461: Wave library should be able to deal with 4GB wav files, and sample rate of 44100 Hz. 2012-11-17 03:41:54 +01:00
Victor Stinner
da9ec995f6 Issue #10783: struct.pack() doesn't encode implicitly unicode to UTF-8
* Replace "bytes" by "bytes object" in struct error messages
 * Document the API change in What's new in Python 3.2
 * Fix test_wave
 * Remove also ugly implicit conversions in test_struct
2010-12-28 13:26:42 +00:00
Georg Brandl
cc2adbc693 #10198: fix duplicate header when writeframes() is called with an empty string. 2010-10-30 08:29:28 +00:00
Antoine Pitrou
1ce3eb5c5b Issue #8990: array.fromstring() and array.tostring() get renamed to
frombytes() and tobytes(), respectively, to avoid confusion.  Furthermore,
array.frombytes(), array.extend() as well as the array.array()
constructor now accept bytearray objects.  Patch by Thomas Jollans.
2010-09-01 20:29:34 +00:00
Mark Dickinson
64a38c0eb5 Issue #1512791: In setframerate method of Wave_write, round non-integral
inputs to the nearest integer.  Thanks Neil Tallim for the patch.
2010-08-28 17:22:16 +00:00
Benjamin Peterson
5efea0430c use floor division where needed #7681 2010-01-13 03:49:50 +00:00
Georg Brandl
1a3284ed69 #1535: rename __builtin__ module to builtins. 2007-12-02 09:40:06 +00:00
Guido van Rossum
3172c5d263 Patch# 1258 by Christian Heimes: kill basestring.
I like this because it makes the code shorter! :-)
2007-10-16 18:12:55 +00:00
Collin Winter
ce36ad8a46 Raise statement normalization in Lib/. 2007-08-30 01:19:48 +00:00
Jeremy Hylton
da3f228740 Convert various string literals to bytes. 2007-08-29 17:26:34 +00:00
Guido van Rossum
09549f4407 Changes in anticipation of stricter str vs. bytes enforcement. 2007-08-27 20:40:10 +00:00
Guido van Rossum
51a883bf87 Make test_wave.py pass.
I have no illusion that this fixes all issues with this module.
2007-07-23 21:28:30 +00:00
Guido van Rossum
1bc535dc78 Merged revisions 55328-55341 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk

........
  r55329 | brett.cannon | 2007-05-14 16:36:56 -0700 (Mon, 14 May 2007) | 3 lines

  Implement the removal of tuple parameter unpacking (PEP 3113).
  Thanks, Tony Lownds for the patch.
........
  r55331 | neal.norwitz | 2007-05-14 16:40:30 -0700 (Mon, 14 May 2007) | 1 line

  Update to use Python 3.0
........
  r55332 | brett.cannon | 2007-05-14 16:47:18 -0700 (Mon, 14 May 2007) | 2 lines

  Mention PEP 3113.  And thanks to Tony Lownds for the PEP 3113 patch.
........
  r55333 | neal.norwitz | 2007-05-14 16:57:06 -0700 (Mon, 14 May 2007) | 1 line

  Fix exception printing (no more exceptions module)
........
  r55334 | neal.norwitz | 2007-05-14 17:11:10 -0700 (Mon, 14 May 2007) | 1 line

  Remove popen* functions from os
........
  r55335 | neal.norwitz | 2007-05-14 18:03:38 -0700 (Mon, 14 May 2007) | 1 line

  Get rid of most of popen.  There are still some uses I need to cleanup.
........
  r55336 | neal.norwitz | 2007-05-14 21:11:34 -0700 (Mon, 14 May 2007) | 1 line

  Remove a few more remnants of the compiler package
........
  r55337 | neal.norwitz | 2007-05-14 22:28:27 -0700 (Mon, 14 May 2007) | 1 line

  Get test_[cx]pickle working on 64-bit platforms (avoid overflow int/long)
........
2007-05-15 18:46:22 +00:00