@@ -38,7 +38,7 @@ interface for Python calling C code. CFFI is supported for CPython 2.6+,
38
38
Breaking Changes
39
39
----------------
40
40
41
- The ``soundfile `` module has evolved rapidly during the last few releases . Most
41
+ The ``soundfile `` module has evolved rapidly in the past . Most
42
42
notably, we changed the import name from ``import pysoundfile `` to
43
43
``import soundfile `` in 0.7. In 0.6, we cleaned up many small
44
44
inconsistencies, particularly in the the ordering and naming of
@@ -52,17 +52,25 @@ In 0.9.0, we changed the ``ctype`` arguments of the ``buffer_*``
52
52
methods to ``dtype ``, using the Numpy ``dtype `` notation. The old
53
53
``ctype `` arguments still work, but are now officially deprecated.
54
54
55
+ In 0.12.0, we changed the load order of the libsndfile library. Now,
56
+ the packaged libsndfile in the platform-specific wheels is tried
57
+ before falling back to any system-provided libsndfile. If you would
58
+ prefer using the system-provided libsndfile, install the source
59
+ package or source wheel instead of the platform-specific wheels.
60
+
55
61
Installation
56
62
------------
57
63
58
64
The ``soundfile `` module depends on the Python packages CFFI and NumPy, and the
59
- system library libsndfile.
65
+ library libsndfile.
60
66
61
67
In a modern Python, you can use ``pip install soundfile `` to download
62
- and install the latest release of the ``soundfile `` module and its dependencies.
63
- On Windows and OS X, this will also install the library libsndfile.
64
- On Linux, you need to install libsndfile using your distribution's
65
- package manager, for example ``sudo apt-get install libsndfile1 ``.
68
+ and install the latest release of the ``soundfile `` module and its
69
+ dependencies. On Windows (64/32) and OS X (Intel/ARM) and Linux 64,
70
+ this will also install a current version of the library libsndfile. If
71
+ you install the source module, you need to install libsndfile using
72
+ your distribution's package manager, for example ``sudo apt install
73
+ libsndfile1 ``.
66
74
67
75
If you are running on an unusual platform or if you are using an older
68
76
version of Python, you might need to install NumPy and CFFI separately,
@@ -71,6 +79,24 @@ Binaries for Python Extension Packages <http://www.lfd.uci.edu/~gohlke/pythonlib
71
79
72
80
.. _Anaconda : https://www.continuum.io/downloads
73
81
82
+ Building
83
+ --------
84
+
85
+ ``Soundfile `` itself does not contain any compiled code and can be
86
+ bundled into a wheel with the usual ``python setup.py bdist_wheel ``.
87
+ However, ``soundfile `` relies on libsndfile, and optionally ships its
88
+ own copy of libsndfile in the wheel.
89
+
90
+ To build a binary wheel that contains libsndfile, make sure to
91
+ checkout and update the ``_soundfile_data `` submodule, then run
92
+ ``python setup.py bdist_wheel `` as usual. If the resulting file size
93
+ of the wheel is around one megabyte, a matching libsndfile has been
94
+ bundled (without libsndfile, it's around 25 KB).
95
+
96
+ To build binary wheels for all supported platforms, run ``python
97
+ build_wheels.py ``, which will ``python setup.py bdist_wheel `` for each
98
+ of the platforms we have precompiled libsndfiles for.
99
+
74
100
Error Reporting
75
101
---------------
76
102
@@ -309,3 +335,12 @@ News
309
335
- Improves documentation, error messages and tests
310
336
- Displays length of very short files in samples
311
337
- Supports the file system path protocol (pathlib et al)
338
+
339
+ 2023-02-02 V0.12.0 Bastian Bechtold
340
+ Thank you, Barabazs, Andrew Murray, Jon Peirce, for contributions
341
+ to this release.
342
+
343
+ - Updated libsndfile to v1.2.0
344
+ - Improves precompiled library location, especially with py2app or cx-freeze.
345
+ - Now provide binary wheels for Linux x86_64
346
+ - Now prefers packaged libsndfile over system-installed libsndfile
0 commit comments