@@ -38,7 +38,7 @@ interface for Python calling C code. CFFI is supported for CPython 2.6+,
3838Breaking Changes
3939----------------
4040
41- The ``soundfile `` module has evolved rapidly during the last few releases . Most
41+ The ``soundfile `` module has evolved rapidly in the past . Most
4242notably, we changed the import name from ``import pysoundfile `` to
4343``import soundfile `` in 0.7. In 0.6, we cleaned up many small
4444inconsistencies, particularly in the the ordering and naming of
@@ -52,17 +52,25 @@ In 0.9.0, we changed the ``ctype`` arguments of the ``buffer_*``
5252methods to ``dtype ``, using the Numpy ``dtype `` notation. The old
5353``ctype `` arguments still work, but are now officially deprecated.
5454
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+
5561Installation
5662------------
5763
5864The ``soundfile `` module depends on the Python packages CFFI and NumPy, and the
59- system library libsndfile.
65+ library libsndfile.
6066
6167In 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 ``.
6674
6775If you are running on an unusual platform or if you are using an older
6876version 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
7179
7280.. _Anaconda : https://www.continuum.io/downloads
7381
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+
74100Error Reporting
75101---------------
76102
@@ -309,3 +335,12 @@ News
309335 - Improves documentation, error messages and tests
310336 - Displays length of very short files in samples
311337 - 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