pydub-lts 0.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,120 @@
1
+ James Robert
2
+ github: jiaaro
3
+ twitter: @jiaaro
4
+ web: jiaaro.com
5
+ email: pydub@jiaaro.com
6
+
7
+ Marc Webbie
8
+ github: marcwebbie
9
+
10
+ Jean-philippe Serafin
11
+ github: jeanphix
12
+
13
+ Anurag Ramdasan
14
+ github: AnuragRamdasan
15
+
16
+ Choongmin Lee
17
+ github: clee704
18
+
19
+ Patrick Pittman
20
+ github: ptpittman
21
+
22
+ Hunter Lang
23
+ github: hunterlang
24
+
25
+ Alexey
26
+ github: nihisil
27
+
28
+ Jaymz Campbell
29
+ github: jaymzcd
30
+
31
+ Ross McFarland
32
+ github: ross
33
+
34
+ John McMellen
35
+ github: jmcmellen
36
+
37
+ Johan Lövgren
38
+ github: dashj
39
+
40
+ Joachim Krüger
41
+ github: jkrgr
42
+
43
+ Shichao An
44
+ github: shichao-an
45
+
46
+ Michael Bortnyck
47
+ github: mbortnyck
48
+
49
+ André Cloete
50
+ github: aj-cloete
51
+
52
+ David Acacio
53
+ github: dacacioa
54
+
55
+ Thiago Abdnur
56
+ github: bolaum
57
+
58
+ Aurélien Ooms
59
+ github: aureooms
60
+
61
+ Mike Mattozzi
62
+ github: mmattozzi
63
+
64
+ Marcio Mazza
65
+ github: marciomazza
66
+
67
+ Sungsu Lim
68
+ github: proflim
69
+
70
+ Evandro Myller
71
+ github: emyller
72
+
73
+ Sérgio Agostinho
74
+ github: SergioRAgostinho
75
+
76
+ Sérgio Ferreira
77
+ github: sergiodeveloper
78
+
79
+ Antonio Larrosa
80
+ github: antlarr
81
+
82
+ Aaron Craig
83
+ github: craigthelinguist
84
+
85
+ Carlos del Castillo
86
+ github: greyalien502
87
+
88
+ Yudong Sun
89
+ github: sunjerry019
90
+
91
+ Jorge Perianez
92
+ github: JPery
93
+
94
+ Chendi Luo
95
+ github: Creonalia
96
+
97
+ Daniel Lefevre
98
+ gitHub: dplefevre
99
+
100
+ Grzegorz Kotfis
101
+ github: gkotfis
102
+
103
+ Pål Orby
104
+ github: orby
105
+
106
+ Ruben D
107
+ github: Ghostkeeper
108
+
109
+ Ryan McCauley
110
+
111
+ Pedro Lira
112
+ github: pedrohml
113
+
114
+ Faris Alasmary
115
+
116
+ Luca Cavasso
117
+ github: lcavasso
118
+
119
+ BreadMakesYouFat
120
+ github: BreadMakesYouFat
@@ -0,0 +1,199 @@
1
+ # v0.26.0 (first release as `pydub-lts`)
2
+ Published as `pydub-lts` on PyPI; the import name is still `pydub`.
3
+
4
+ Python 3.13+
5
+ - Works on Python 3.13+, where `audioop` was removed: installs `audioop-lts` there, and the pure-Python fallback now works too (#4), including ulaw/alaw (#12)
6
+
7
+ Fixes
8
+ - `AudioSegment.export()` accepts an int `bitrate` instead of crashing with a `TypeError` (#3)
9
+ - A missing `ffprobe` raises an error that names it and how to configure it; `ffprobe`/`avprobe` next to a configured `AudioSegment.converter` is used when not on the PATH (#5)
10
+ - A missing ffmpeg/avconv converter raises a helpful error (#23)
11
+ - `from_file()` `parameters` are passed to ffmpeg before the output target, so they take effect (#7)
12
+ - Files whose name starts with a dash (`-a.mp3`) load (#9)
13
+ - Media files with no audio stream raise `CouldntDecodeError` (#2)
14
+ - Compressed WAV codecs decode with the width from `sample_fmt` (#20)
15
+ - `from_file()` always closes files it opened (#11)
16
+ - `play()` works on Windows: the ffplay temp file is closed before export (#19); ffplay runs quietly (#10)
17
+ - `stereo_to_ms` / `ms_to_stereo` no longer fail on a missing import (#1)
18
+
19
+ Performance
20
+ - `from_file(start_second=...)` seeks on the input side (#17)
21
+ - `effects.speedup` no longer copies audio quadratically (#16)
22
+
23
+ Merged upstream after 0.25.1 but never released
24
+ - Temporary files are deleted in `AudioSegment.export()` (jiaaro#665, Eric Joanis)
25
+ - Faster `AudioSegment` creation (jiaaro#686, Majed Bawarshi)
26
+ - `BufferedReader` instances are closed too (jiaaro#687, Pål Orby)
27
+ - No `json.loads()` crash on empty ffprobe output (jiaaro#652, Sara Zan)
28
+ - `--with-libvorbis` install hint fixed (jiaaro#577, Nicolas Raoul); invalid escape sequence warning fixed (Gleb Mazovetskiy)
29
+
30
+ Pull request numbers without a prefix refer to https://github.com/cyberpusa-ai/pydub.
31
+
32
+ # v0.25.1
33
+ - Fix crashing bug in new scipy-powered EQ effects
34
+
35
+ # v0.25.0
36
+ - Don't show a runtime warning about the optional ffplay dependency being missing until someone trys to use it
37
+ - Documentation improvements
38
+ - Python 3.9 support
39
+ - Improved efficiency of loading wave files with `pydub.AudioSegment.from_file()`
40
+ - Ensure `pydub.AudioSegment().export()` always retuns files with a seek position at the beginning of the file
41
+ - Added more EQ effects to `pydub.scipy_effects` (requires scipy to be installed)
42
+ - Fix a packaging bug where the LICENSE file was not included in the source distribution
43
+ - Add a way to instantiate a `pydub.AudioSegment()` with a portion of an audio file via `pydub.AudioSegment().from_file()`
44
+
45
+ # v0.24.1
46
+ - Fix bug where ffmpeg errors in Python 3 are illegible
47
+ - Fix bug where `split_on_silence` fails when there are one or fewer nonsilent segments
48
+ - Fix bug in fallback audioop implementation
49
+
50
+ # v0.24.0
51
+ - Fix inconsistent handling of 8-bit audio
52
+ - Fix bug where certain files will fail to parse
53
+ - Fix bug where pyaudio stream is not closed on error
54
+ - Allow codecs and parameters in wav and raw export
55
+ - Fix bug in `pydub.AudioSegment.from_file` where supplied codec is ignored
56
+ - Allow `pydub.silence.split_on_silence` to take a boolean for `keep_silence`
57
+ - Fix bug where `pydub.silence.split_on_silence` sometimes adds non-silence from adjacent segments
58
+ - Fix bug where `pydub.AudioSegment.extract_wav_headers` fails on empty wav files
59
+ - Add new function `pydub.silence.detect_leading_silence`
60
+ - Support conversion between an arbitrary number of channels and mono in `pydub.AudioSegment.set_channels`
61
+ - Fix several issues related to reading from filelike objects
62
+
63
+ # v0.23.1
64
+ - Fix bug in passing ffmpeg/avconv parameters for `pydub.AudioSegment.from_mp3()`, `pydub.AudioSegment.from_flv()`, `pydub.AudioSegment.from_ogg()`, and `pydub.AudioSegment.from_wav()`
65
+ - Fix logic bug in `pydub.effects.strip_silence()`
66
+
67
+ # v0.23.0
68
+ - Add support for playback via simpleaudio
69
+ - Allow users to override the type in `pydub.AudioSegment().get_array_of_samples()` (PR #313)
70
+ - Fix a bug where the wrong codec was used for 8-bit audio (PR #309 - issue #308)
71
+
72
+ # v0.22.1
73
+ - Fix `pydub.utils.mediainfo_json()` to work with newer, backwards-incompatible versions of ffprobe/avprobe
74
+
75
+ # v0.22.0
76
+ - Adds support for audio with frame rates (sample rates) of 48k and higher (requires scipy) (PR #262, fixes #134, #237, #209)
77
+ - Adds support for PEP 519 File Path protocol (PR #252)
78
+ - Fixes a few places where handles to temporary files are kept open (PR #280)
79
+ - Add the license file to the python package to aid other packaging projects (PR #279, fixes #274)
80
+ - Big fix for `pydub.silence.detect_silence()` (PR #263)
81
+
82
+ # v0.21.0
83
+ - NOTE: Semi-counterintuitive change: using the a stride when slicing AudioSegment instances (for example, `sound[::5000]`) will return chunks of 5000ms (not 1ms chunks every 5000ms) (#222)
84
+ - Debug output from ffmpeg/avlib is no longer printed to the console unless you set up logging (see README for how to set up logging for your converter) (#223)
85
+ - All pydub exceptions are now subclasses of `pydub.exceptions.PydubException` (PR #244)
86
+ - The utilities in `pydub.silence` now accept a `seek_step`argument which can optionally be passed to improve the performance of silence detection (#211)
87
+ - Fix to `pydub.silence` utilities which allow you to detect perfect silence (#233)
88
+ - Fix a bug where threaded code screws up your terminal session due to ffmpeg inheriting the stdin from the parent process. (#231)
89
+ - Fix a bug where a crashing programs using pydub would leave behind their temporary files (#206)
90
+
91
+ # v0.20.0
92
+ - Add new parameter `gain_during_overlay` to `pydub.AudioSegment.overlay` which allows users to adjust the volume of the target AudioSegment during the portion of the segment which is overlaid with the additional AudioSegment.
93
+ - `pydub.playback.play()` No longer displays the (very verbose) playback "banner" when using ffplay
94
+ - Fix a confusing error message when using invalid crossfade durations (issue #193)
95
+
96
+ # v0.19.0
97
+ - Allow codec and ffmpeg/avconv parameters to be set in the `pydub.AudioSegment.from_file()` for more control while decoding audio files
98
+ - Allow `AudioSegment` objects with more than two channels to be split using `pydub.AudioSegment().split_to_mono()`
99
+ - Add support for inverting the phase of only one channel in a multi-channel `pydub.AudioSegment` object
100
+ - Fix a bug with the latest avprobe that broke `pydub.utils.mediainfo()`
101
+ - Add tests for webm encoding/decoding
102
+
103
+ # v0.18.0
104
+ - Add a new constructor: `pydub.AudioSegment.from_mono_audiosegments()` which allows users to create a multi-channel audiosegment out of multiple mono ones.
105
+ - Refactor `pydub.AudioSegment._sync()` to support an arbitrary number of audiosegment arguments.
106
+
107
+ # v0.17.0
108
+ - Add the ability to add a cover image to MP3 exports via the `cover` keyword argument to `pydub.AudioSegment().export()`
109
+ - Add `pydub.AudioSegment().get_dc_offset()` and `pydub.AudioSegment().remove_dc_offset()` which allow detection and removal of DC offset in audio files.
110
+ - Minor fixes for windows users
111
+
112
+ # v0.16.7
113
+ - Make `pydub.AudioSegment()._spawn()` accept array.array instances containing audio samples
114
+
115
+ # v0.16.6
116
+ - Make `pydub.AudioSegment()` objects playable inline in ipython notebooks.
117
+ - Add scipy powered high pass, low pass, and band pass filters, which can be high order filters (they take `order` as a keyword argument). They are used for `pydub.AudioSegment().high_pass_filter()`, `pydub.AudioSegment().low_pass_filter()`, `pydub.AudioSegment().band_pass_filter()` when the `pydub.scipy_effects` module is imported.
118
+ - Fix minor bug in `pydub.silence.detect_silence()`
119
+
120
+ # v0.16.5
121
+ - Update `pydub.AudioSegment()._spawn()` method to allow user subclassing of `pydub.AudioSegment`
122
+ - Add a workaround for incorrect duration reporting of some mp3 files on macOS
123
+
124
+ # v0.16.4
125
+ - Add support for radd (basically, allow `sum()` to operate on an iterable of `pydub.AudioSegment()` objects)
126
+ - Fix bug in 24-bit wav support (understatement. It didn't work right at all the first time)
127
+
128
+ # v0.16.3
129
+ - Add support for python 3.5 (overstatement. We just added python 3.5 to CI and it worked 😄)
130
+ - Add native support for 24-bit wav files (ffmpeg/avconv not required)
131
+
132
+ # v0.16.2
133
+ - Fix bug where you couldn't directly instantiate `pydub.AudioSegment` with `bytes` data in python 3
134
+
135
+ # v0.16.1
136
+ - pydub will use any ffmpeg/avconv binary that's in the current directory (as reported by `os.getcwd()`) before searching for a system install
137
+
138
+ # v0.16.0
139
+ - Make it easier to instantiate `pydub.AudioSegment()` directly when creating audio segments from raw audio data (without having to write it to a file first)
140
+ - Add `pydub.AudioSegment().get_array_of_samples()` method which returns the samples which make up an audio segment (you should usually prefer this over `pydub.AudioSegment().raw_data`)
141
+ - Add `pydub.AudioSegment().raw_data` property which returns the raw audio data for an audio segment as a bytes (python 3) or a bytestring (python 3)
142
+ - Allow users to specify frame rate in `pydub.AudioSegment.silent()` constructor
143
+
144
+ # v0.15.0
145
+ - Add support for RAW audio (basically WAV format, but without wave headers)
146
+ - Add a new exception `pydub.exceptions.CouldntDecodeError` to indicate a failure of ffmpeg/avconv to decode a file (as indicated by ffmpeg/avconv exit code)
147
+
148
+ # v0.14.2
149
+ - Fix a bug in python 3.4 which failed to read wave files with no audio data (should have been audio segments with a duration of 0 ms)
150
+
151
+ # v0.14.1
152
+ - Fix a bug in `pydub.utils.mediainfo()` that caused inputs containing unescaped characters to raise a runtime error (inputs are not supposed to require escaping)
153
+
154
+ # v0.14.0
155
+ - Rename `pydub.AudioSegment().set_gain()` to `pydub.AudioSegment().apply_gain_stereo()` to better reflect it's place in the world (as a counterpart to `pydub.AudioSegment().apply_gain()`)
156
+
157
+ # v0.13.0
158
+ - Add `pydub.AudioSegment().pan()` which returns a new stereo audio segment panned left/right as specified.
159
+
160
+ # v0.12.0
161
+ - Add a logger, `"pydub.converter"` which logs the ffmpeg commands being run by pydub.
162
+ - Add `pydub.AudioSegment().split_to_mono()` method which returns a list of mono audio segments. One for each channel in the original audio segment.
163
+ - Fix a bug in `pydub.silence.detect_silence()` which caused the function to break when a silent audio segment was equal in length to the minimum silence length. It should report a single span of silence covering the whole silent audio segment. Now it does.
164
+ - Fix a bug where uncommon wav formats (those not supported by the stdlib wave module) would throw an exception rather than converting to a more common format via ffmpeg/avconv
165
+
166
+ # v0.11.0
167
+ - Add `pydub.AudioSegment().max_dBFS` which reports the loudness (in dBFS) of the loudest point (i.e., highest amplitude sample) of an audio segment
168
+
169
+ # v0.10.0
170
+ - Overhaul Documentation
171
+ - Improve performance of `pydub.AudioSegment().overlay()`
172
+ - Add `pydub.AudioSegment().invert_phase()` which (shocker) inverts the phase of an audio segment
173
+ - Fix a type error in `pydub.AudioSegment.get_sample_slice()`
174
+
175
+ # v0.9.5
176
+ - Add `pydub.generators` module containing simple signal generation functions (white noise, sine, square wave, etc)
177
+ - Add a `loops` keyword argument to `pydub.AudioSegment().overlay()` which allows users to specify that the overlaid audio should be repeated (i.e., looped) a certain number of times, or indefinitely
178
+
179
+ # 0.9.4
180
+ - Fix a bug in db_to_float() where all values were off by a factor of 2
181
+
182
+ # 0.9.3
183
+ - Allow users to set the location of their converter by setting `pydub.AudioSegment.converter = "/path/to/ffmpeg"` and added a shim to support the old method of assigning to `pydub.AudioSegment.ffmpeg` (which is deprecated now that we support avconv)
184
+
185
+ # v0.9.2
186
+ - Add support for Python 3.4
187
+ - Audio files opened with format "wave" are treated as "wav" and "m4a" are treated as "mp4"
188
+ - Add `pydub.silence` module with simple utilities for detecting and removing silence.
189
+ - Fix a bug affecting auto-detection of ffmpeg/avconv on windows.
190
+ - Fix a bug that caused pydub to only work when ffmpeg/avconv is present (it should be able to work with WAV data without any dependencies)
191
+
192
+ # v0.9.1
193
+ - Add a runtime warning when ffmpeg/avconv cannot be found to aid debugging
194
+
195
+ # v0.9.0
196
+ - Added support for pypy (by reimplementing audioop in python). Also, we contributed our implementation to the pypy project, so that's 💯
197
+ - Add support for avconv as an alternative to ffmpeg
198
+ - Add a new helper module `pydub.playback` which allows you to quickly listen to an audio segment using ffplay (or avplay)
199
+ - Add new function `pydub.utils.mediainfo('/path/to/audio/file.ext')` which reports back the results of ffprobe (or avprobe) including codec, bitrate, channels, etc
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 James Robert, http://jiaaro.com
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ include LICENSE
2
+ include README.markdown
3
+ include CHANGELOG.md