1b815c7f3Sopenharmony_ci--- 2b815c7f3Sopenharmony_cilayout: home 3b815c7f3Sopenharmony_cititle: The libsndfile Home Page 4b815c7f3Sopenharmony_ci--- 5b815c7f3Sopenharmony_ci 6b815c7f3Sopenharmony_ciLibsndfile is a C library for reading and writing files containing sampled sound 7b815c7f3Sopenharmony_ci(such as MS Windows WAV and the Apple/SGI AIFF format) through one standard 8b815c7f3Sopenharmony_cilibrary interface. It is released in source code format under the 9b815c7f3Sopenharmony_ci[Gnu Lesser General Public License](http://www.gnu.org/copyleft/lesser.html). 10b815c7f3Sopenharmony_ci 11b815c7f3Sopenharmony_ciThe library was written to compile and run on a Linux system but should compile 12b815c7f3Sopenharmony_ciand run on just about any Unix (including MacOS X). 13b815c7f3Sopenharmony_ciThere are also pre-compiled binaries available for 32 and 64 bit windows. 14b815c7f3Sopenharmony_ci 15b815c7f3Sopenharmony_ciIt was designed to handle both little-endian (such as WAV) and big-endian (such 16b815c7f3Sopenharmony_cias AIFF) data, and to compile and run correctly on little-endian (such as Intel 17b815c7f3Sopenharmony_ciand DEC/Compaq Alpha) processor systems as well as big-endian processor systems 18b815c7f3Sopenharmony_cisuch as Motorola 68k, Power PC, MIPS and Sparc. Hopefully the design of the 19b815c7f3Sopenharmony_cilibrary will also make it easy to extend for reading and writing new sound file 20b815c7f3Sopenharmony_ciformats. 21b815c7f3Sopenharmony_ci 22b815c7f3Sopenharmony_ciIt has been compiled and tested (at one time or another) on the following 23b815c7f3Sopenharmony_cisystems: 24b815c7f3Sopenharmony_ci 25b815c7f3Sopenharmony_ci* Every platform supported by Debian GNU/Linux including x86_64-linux-gnu, 26b815c7f3Sopenharmony_ci i486-linux-gnu, powerpc-linux-gnu, sparc-linux-gnu, alpha-linux-gnu, 27b815c7f3Sopenharmony_ci mips-linux-gnu and armel-linux-gnu. 28b815c7f3Sopenharmony_ci* powerpc-apple-darwin7.0 (Mac OS X 10.3) 29b815c7f3Sopenharmony_ci* sparc-sun-solaris2.8 (using gcc) 30b815c7f3Sopenharmony_ci* mips-sgi-irix5.3 (using gcc) 31b815c7f3Sopenharmony_ci* QNX 6.0 32b815c7f3Sopenharmony_ci* i386-unknown-openbsd2.9 33b815c7f3Sopenharmony_ci* Microsoft Windows 34b815c7f3Sopenharmony_ci 35b815c7f3Sopenharmony_ciAt the moment, each new release is being tested on i386 Linux, x86_64 Linux, 36b815c7f3Sopenharmony_ciPowerPC Linux, Win32 and Win64. 37b815c7f3Sopenharmony_ci 38b815c7f3Sopenharmony_ci## Features 39b815c7f3Sopenharmony_ci 40b815c7f3Sopenharmony_cilibsndfile has the following main features : 41b815c7f3Sopenharmony_ci 42b815c7f3Sopenharmony_ci* Ability to read and write a large number of [file formats](formats.html). 43b815c7f3Sopenharmony_ci* A simple, elegant and easy to use Applications Programming Interface. 44b815c7f3Sopenharmony_ci* Usable on Unix, Win32, MacOS and others. 45b815c7f3Sopenharmony_ci* On the fly format conversion, including endian-ness swapping, type conversion 46b815c7f3Sopenharmony_ci and bitwidth scaling. 47b815c7f3Sopenharmony_ci* Optional normalisation when reading floating point data from files containing 48b815c7f3Sopenharmony_ci integer data. 49b815c7f3Sopenharmony_ci* Ability to open files in read/write mode. 50b815c7f3Sopenharmony_ci* The ability to write the file header without closing the file (only on files 51b815c7f3Sopenharmony_ci open for write or read/write). 52b815c7f3Sopenharmony_ci* Ability to query the library about all supported formats and retrieve text 53b815c7f3Sopenharmony_ci strings describing each format. 54b815c7f3Sopenharmony_ci 55b815c7f3Sopenharmony_cilibsndfile has a comprehensive test suite so that each release is as bug free 56b815c7f3Sopenharmony_cias possible. 57b815c7f3Sopenharmony_ciWhen new bugs are found, new tests are added to the test suite to ensure that 58b815c7f3Sopenharmony_cithese bugs don't creep back into the code. 59b815c7f3Sopenharmony_ciWhen new features are added, tests are added to the test suite to make sure that 60b815c7f3Sopenharmony_cithese features continue to work correctly even when they are old features. 61b815c7f3Sopenharmony_ci 62b815c7f3Sopenharmony_ci## History 63b815c7f3Sopenharmony_ci 64b815c7f3Sopenharmony_ciMy first attempt at reading and writing WAV files was in 1990 or so under 65b815c7f3Sopenharmony_ciWindows 3.1. I started using Linux in early 1995 and contributed some code to 66b815c7f3Sopenharmony_cithe [wavplay](http://www.vaxxine.com/ve3wwg/gnuwave.html) program. That 67b815c7f3Sopenharmony_cicontributed code would eventually mutate into this library. As one of my 68b815c7f3Sopenharmony_ciinterests is Digital Signal Processing (DSP) I decided that as well as reading 69b815c7f3Sopenharmony_cidata from an audio file in the native format (typically 16 bit short integers) 70b815c7f3Sopenharmony_ciit would also be useful to be able to have the library do the conversion to 71b815c7f3Sopenharmony_cifloating point numbers for DSP applications. It then dawned on me that whatever 72b815c7f3Sopenharmony_cifile format (anything from 8 bit unsigned chars, to 32 bit floating point 73b815c7f3Sopenharmony_cinumbers) the library should be able to convert the data to whatever format the 74b815c7f3Sopenharmony_cilibrary user wishes to use it in. For example, in a sound playback program, the 75b815c7f3Sopenharmony_cilibrary caller typically wants the sound data in 16 bit short integers to dump 76b815c7f3Sopenharmony_ciinto a sound card even though the data in the file may be 32 bit floating point 77b815c7f3Sopenharmony_cinumbers (ie Microsoft's WAVE_FORMAT_IEEE_FLOAT format). Another example would be 78b815c7f3Sopenharmony_cisomeone doing speech recognition research who has recorded some speech as a 16 79b815c7f3Sopenharmony_cibit WAV file but wants to process it as double precision floating point numbers. 80b815c7f3Sopenharmony_ci 81b815c7f3Sopenharmony_ciHere is the release history for libsndfile: 82b815c7f3Sopenharmony_ci 83b815c7f3Sopenharmony_ci* Version 0.0.8 (Feb 15 1999) First official release. 84b815c7f3Sopenharmony_ci* Version 0.0.28 (Apr 26 2002) Final release of version 0 of libsndfile. 85b815c7f3Sopenharmony_ci* Version 1.0.0rc1 (Jun 24 2002) Release candidate 1 of version 1 of libsndfile. 86b815c7f3Sopenharmony_ci* Version 1.0.0rc6 (Aug 14 2002) MacOS 9 fixes. 87b815c7f3Sopenharmony_ci* Version 1.0.0 (Aug 16 2002) First 1.0.X release. 88b815c7f3Sopenharmony_ci* Version 1.0.1 (Sep 14 2002) Added MAT4 and MAT5 file formats. 89b815c7f3Sopenharmony_ci* Version 1.0.2 (Nov 24 2002) Added VOX ADPCM format. 90b815c7f3Sopenharmony_ci* Version 1.0.3 (Dec 09 2002) Fixes for Linux on ia64 CPUs. 91b815c7f3Sopenharmony_ci* Version 1.0.4 (Feb 02 2003) New file formats and functionality. 92b815c7f3Sopenharmony_ci* Version 1.0.5 (May 03 2003) One new file format and new functionality. 93b815c7f3Sopenharmony_ci* Version 1.0.6 (Feb 08 2004) Large file fix for Linux/Solaris, new 94b815c7f3Sopenharmony_ci functionality and Win32 improvements. 95b815c7f3Sopenharmony_ci* Version 1.0.7 (Feb 24 2004) Fix build problems on MacOS X and fix ia64/MIPS 96b815c7f3Sopenharmony_ci etc clip mode detction. 97b815c7f3Sopenharmony_ci* Version 1.0.8 (Mar 14 2004) Minor bug fixes. 98b815c7f3Sopenharmony_ci* Version 1.0.9 (Mar 30 2004) Add AVR format. Improve handling of some WAV 99b815c7f3Sopenharmony_ci files. 100b815c7f3Sopenharmony_ci* Version 1.0.10 (Jun 15 2004) Minor bug fixes. Fix support for Win32 MinGW 101b815c7f3Sopenharmony_ci compiler. 102b815c7f3Sopenharmony_ci* Version 1.0.11 (Nov 15 2004) Add SD2 file support, reading of loop data in WAV 103b815c7f3Sopenharmony_ci and AIFF. Minor bug fixes. 104b815c7f3Sopenharmony_ci* Version 1.0.12 (Sep 30 2005) Add FLAC and CAF file support, virtual I/O 105b815c7f3Sopenharmony_ci interface. Minor bug fixes and cleanups. 106b815c7f3Sopenharmony_ci* Version 1.0.13 (Jan 21 2006) Add read/write of instrument chunks. Minor bug 107b815c7f3Sopenharmony_ci fixes. 108b815c7f3Sopenharmony_ci* Version 1.0.14 (Feb 19 2006) Minor bug fixes. Start shipping windows 109b815c7f3Sopenharmony_ci binary/source ZIP. 110b815c7f3Sopenharmony_ci* Version 1.0.15 (Mar 16 2006) Minor bug fixes. 111b815c7f3Sopenharmony_ci* Version 1.0.16 (Apr 30 2006) Add support for RIFX. Other minor feature 112b815c7f3Sopenharmony_ci enhancements and bug fixes. 113b815c7f3Sopenharmony_ci* Version 1.0.17 (Aug 31 2006) Add C++ wrapper sndfile.hh. Minor bug fixes and 114b815c7f3Sopenharmony_ci cleanups. 115b815c7f3Sopenharmony_ci* Version 1.0.18 (Feb 07 2009) Add Ogg/Vorbis suppport, remove captive 116b815c7f3Sopenharmony_ci libraries, many new features and bug fixes. Generate Win32 and Win64 117b815c7f3Sopenharmony_ci pre-compiled binaries. 118b815c7f3Sopenharmony_ci* Version 1.0.19 (Mar 02 2009) Fix for CVE-2009-0186. Huge number of minor fixes 119b815c7f3Sopenharmony_ci as a result of static analysis. 120b815c7f3Sopenharmony_ci* Version 1.0.20 (May 14 2009) Fix for potential heap overflow. 121b815c7f3Sopenharmony_ci* Version 1.0.21 (December 13 2009) Bunch of minor bug fixes. 122b815c7f3Sopenharmony_ci* Version 1.0.22 (October 04 2010) Bunch of minor bug fixes. 123b815c7f3Sopenharmony_ci* Version 1.0.23 (October 10 2010) Minor bug fixes. 124b815c7f3Sopenharmony_ci* Version 1.0.24 (March 23 2011) Minor bug fixes. 125b815c7f3Sopenharmony_ci* Version 1.0.25 (July 13 2011) Fix for Secunia Advisory SA45125. Minor bug 126b815c7f3Sopenharmony_ci fixes and improvements. 127b815c7f3Sopenharmony_ci* Version 1.0.26 (November 22 2015) Fix for CVE-2014-9496, CVE-2014-9756 and 128b815c7f3Sopenharmony_ci CVE-2015-7805. Add ALAC/CAF support. Minor bug fixes and improvements. 129b815c7f3Sopenharmony_ci* Version 1.0.27 (June 19 2016) Fix a seek regression in 1.0.26. Add metadata 130b815c7f3Sopenharmony_ci read/write for CAF and RF64. FIx PAF endian-ness issue. 131b815c7f3Sopenharmony_ci* Version 1.0.28 (April 2 2017) Fix buffer overruns in FLAC and ID3 handling 132b815c7f3Sopenharmony_ci code. Reduce default header memory requirements. Fix detection of Large File 133b815c7f3Sopenharmony_ci Support for 32 bit systems. 134b815c7f3Sopenharmony_ci* Version 1.0.29 (August 15 2020) Opus support, build system improvements and 135b815c7f3Sopenharmony_ci bug fixes. 136b815c7f3Sopenharmony_ci* Version 1.0.30 (September 19 2020) Bugfix release. Fix file descriptor leaks 137b815c7f3Sopenharmony_ci in sf_open_fd () function. Fix critical CMake bug leading to broken ABI on 138b815c7f3Sopenharmony_ci Linux platforms. Other numerous fixes to CMake build system, consider it 139b815c7f3Sopenharmony_ci stable now. Fix some memory leaks. Fix handling of some SD2 files. Update 140b815c7f3Sopenharmony_ci documentation. Integrate GitHub Actions for faster test builds and Oss-Fuzz 141b815c7f3Sopenharmony_ci for fuzzing tests. Move sndfile.h.in from src/ to include/ directory. To avoid 142b815c7f3Sopenharmony_ci problems, delete old generated sndfile.h from $(top_builddir)/src. 143b815c7f3Sopenharmony_ci* Version 1.0.31 (January 24 2021) Bugfix release. Fix multiple memory leaks 144b815c7f3Sopenharmony_ci reported by OSS-Fuzz. More SSE2-optimized functions for x86 and amd64. 145b815c7f3Sopenharmony_ci* Version 1.1.0 (March 27 2022) Minor release, backward compatible with previous 146b815c7f3Sopenharmony_ci releases. Added long-awaited MP3 support. Numerous improvements and bugfixes. 147b815c7f3Sopenharmony_ci 148b815c7f3Sopenharmony_ci## Similar or Related Projects 149b815c7f3Sopenharmony_ci 150b815c7f3Sopenharmony_ci* [SoX](http://sox.sourceforge.net/) is a program for converting between sound 151b815c7f3Sopenharmony_ci file formats. 152b815c7f3Sopenharmony_ci* [Wavplay](http://www.hitsquad.com/smm/programs/WavPlay/) started out as a 153b815c7f3Sopenharmony_ci minimal WAV file player under Linux and has mutated into Gnuwave, a 154b815c7f3Sopenharmony_ci client/server application for more general multimedia and games sound 155b815c7f3Sopenharmony_ci playback. 156b815c7f3Sopenharmony_ci* [Audiofile](http://www.68k.org/~michael/audiofile/) (libaudiofile) is a 157b815c7f3Sopenharmony_ci library similar to libsndfile but with a different programming interface. The 158b815c7f3Sopenharmony_ci author Michael Pruett has set out to clone (and fix some bugs in) the 159b815c7f3Sopenharmony_ci libaudiofile library which ships with SGI's IRIX OS. 160b815c7f3Sopenharmony_ci* [sndlib.tar.gz](ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz) is 161b815c7f3Sopenharmony_ci another library written by Bill Schottstaedt of CCRMA. 162b815c7f3Sopenharmony_ci 163b815c7f3Sopenharmony_ci## Licensing 164b815c7f3Sopenharmony_ci 165b815c7f3Sopenharmony_cilibsndfile is released under the terms of the GNU Lesser General Public License, 166b815c7f3Sopenharmony_ciof which there are two versions; 167b815c7f3Sopenharmony_ci[version 2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) 168b815c7f3Sopenharmony_ciand 169b815c7f3Sopenharmony_ci[version 3](http://www.gnu.org/copyleft/lesser.html). 170b815c7f3Sopenharmony_ciTo maximise the compatibility of libsndfile, the user may choose to use 171b815c7f3Sopenharmony_cilibsndfile under either of the above two licenses. 172b815c7f3Sopenharmony_ciYou can also read a simple explanation of the ideas behind the GPL and the LGPL 173b815c7f3Sopenharmony_ci[here](http://www.gnu.org/copyleft/lesser.html). 174b815c7f3Sopenharmony_ci 175b815c7f3Sopenharmony_ciYou can use libsndfile with 176b815c7f3Sopenharmony_ci[Free Software](http://www.gnu.org/), 177b815c7f3Sopenharmony_ci[Open Source](http://www.opensource.org/), 178b815c7f3Sopenharmony_ciproprietary, shareware or other closed source applications as long as libsndfile 179b815c7f3Sopenharmony_ciis used as a dynamically loaded library and you abide by a small number of other 180b815c7f3Sopenharmony_ciconditions (read the LGPL for more info). 181b815c7f3Sopenharmony_ciWith applications released under the GNU GPL you can also use libsndfile 182b815c7f3Sopenharmony_cistatically linked to your application. 183b815c7f3Sopenharmony_ci 184b815c7f3Sopenharmony_ciI would like to see libsndfile used as widely as possible but I would prefer it 185b815c7f3Sopenharmony_ciif you released software that uses libsndfile as 186b815c7f3Sopenharmony_ci[Free Software](http://www.gnu.org/) 187b815c7f3Sopenharmony_cior 188b815c7f3Sopenharmony_ci[Open Source](http://www.opensource.org/). 189b815c7f3Sopenharmony_ciHowever, if you put in a great deal of effort building a significant application 190b815c7f3Sopenharmony_ciwhich simply uses libsndfile for file I/O, then I have no problem with you 191b815c7f3Sopenharmony_cireleasing that as closed source and charging as much money as you want for it as 192b815c7f3Sopenharmony_cilong as you abide by [the license](http://www.gnu.org/copyleft/lesser.html). 193b815c7f3Sopenharmony_ci 194b815c7f3Sopenharmony_ci## Download 195b815c7f3Sopenharmony_ci 196b815c7f3Sopenharmony_ciCheck latest version on 197b815c7f3Sopenharmony_ci[GitHub Releases page](https://github.com/libsndfile/libsndfile/releases/). 198b815c7f3Sopenharmony_ci 199b815c7f3Sopenharmony_ciBinaries and source packages are signed by current releaser David Seifert aka 200b815c7f3Sopenharmony_ci@SoapGentoo. You can verify signatures with his public GPG key: 201b815c7f3Sopenharmony_ci 202b815c7f3Sopenharmony_ci``` 203b815c7f3Sopenharmony_ci-----BEGIN PGP PUBLIC KEY BLOCK----- 204b815c7f3Sopenharmony_ciVersion: GnuPG v2 205b815c7f3Sopenharmony_ci 206b815c7f3Sopenharmony_cimQINBFppABgBEAC42ZiNvV7BTIgR6TQy0YnF54fx3mVRP1u8Mq00UZa7reAsNKh7 207b815c7f3Sopenharmony_ci1H60j0W4s6+4pVVIKGfpVGxLwUdJe+KVCYw1Cd3YW6uMf5zZrC/ZWqnJiH/n6S6o 208b815c7f3Sopenharmony_ci1l4INII2o6YbGBnzIWBPRo7PlOL+mvgKTLpBSJPnhD8XDGN5wRiV8rL2+6Dptg0F 209b815c7f3Sopenharmony_cinJt7oxECGF3OD3gk6HMel0o82CVkIqMtNaX1L/bhcdF7K0Rp2MXPZMmpn1izW5sI 210b815c7f3Sopenharmony_ciasN1G9+w+Zwj7kMJzq1Aw3ac+rsX4SEYdvXjS2QhDHQUIr6LXri3D2WbcEqIZj2R 211b815c7f3Sopenharmony_ciJVoVwblsrG11dYXFDBbgrq4NhgTBsxHYDlkr/qF2W+kbPC/nhSqTVZeCYvTBZbOQ 212b815c7f3Sopenharmony_ci+RqyN/I0izukglnWmV1jGijFA8snyP8efx732hw/24zRYmtXOtnEITUpw8WOeZCq 213b815c7f3Sopenharmony_ci6uiHaQ+eopnY2ojBg9BI7WZm0AFn58xxT9soMsyFOUFgXTqaWFZWlJ3fhZE8/0v8 214b815c7f3Sopenharmony_ciJEu/kPGE5aJReT3b34B+Bojkj74XR+h2u7iJJBHMTE8RwGoUOZHer/XsL9xlcdks 215b815c7f3Sopenharmony_ciI+7TCjiq++ShaSSt2XsJmw2BhREohrjW/2KkwmvT3b44RMpKPB4WTH+++aqJQNeM 216b815c7f3Sopenharmony_ciIqmswOMoZvzEZezInj7WVY/r0WEei1Y6wt1tBrJ/cFf1oQBM1UmphxcrfQARAQAB 217b815c7f3Sopenharmony_citB9EYXZpZCBTZWlmZXJ0IDxzb2FwQGdlbnRvby5vcmc+iQJUBBMBCgA+BQsJCAcD 218b815c7f3Sopenharmony_ciBRUKCQgLBRYCAwEAAh4BAheAAhsBFiEEMdlcq22A0mIkShdQpHYg6AHkfpUFAl/V 219b815c7f3Sopenharmony_ciCvoFCQkuceIACgkQpHYg6AHkfpXYxA//aiJW1NwunpmzEc62id8lRMnoLHWVjISZ 220b815c7f3Sopenharmony_cib+xSlm+hk4LYq+ZbthJDzKcT86/3DJOSE1zQw9wLuCao9IW2UfFJQBtR+TAfbagG 221b815c7f3Sopenharmony_ci0Yyk/kMcLoFJxnG1ywdJWypCAauuIhia52Z7PmmjsBbFwr6LygDwSQmZAyACMAs7 222b815c7f3Sopenharmony_ciTLQe+yERc2RNDsIEsquLSxxRF0Spk9gagWtKgrPc2XBjuNtQDwW7JgsOUoEeHyxC 223b815c7f3Sopenharmony_ci29fRUjC3o/pG2I6iAZp17OROZI5yl4TSORrSBDGIi2sayxyxP0x+IPKtrCUcBGNx 224b815c7f3Sopenharmony_ciwGp+56bP/V0hA6sgCPh/iwvqLoeibso6l/Kd4ltVAEQnHTd6fr8g+wLEUXfbJVTR 225b815c7f3Sopenharmony_ci7aeFUoaFmWjSPlQrNr6HlxSLV/kRx9kVJp1Pn16vkfVBF7fG7iDLiqphwEeQg5ND 226b815c7f3Sopenharmony_cinmGeKAbRRNxFHyBHf0XRsaYiFZQckguO+71XSRtVx8/YP5nyNbtl9y1h/4JlT6Gy 227b815c7f3Sopenharmony_cit7hb5twYFQyQrKss83E/Bo1sRdHpj0ibtqb4ZbYANbh482E6yFhAkuo8YjVTJipI 228b815c7f3Sopenharmony_ci1Ve8EBKnX3R+pDt147uyysNvtPVXML+sWpGSMVSm4NA8uT3F5nqxVwj+SeXy3Wq/ 229b815c7f3Sopenharmony_ciCHQ2VBKGBC655G+wFD5C6O7cTx2MwH+2H8tzhWm+gFlI3MFKEXa/PC+YUC/diYcb 230b815c7f3Sopenharmony_ciBrApavriTRa5Ag0EWmkAZgEQAPXMD3mZI+ChvBysXZWksC88/uSEwFeb3XkcRm7v 231b815c7f3Sopenharmony_ci04GN7hcz+bfrmnUTB3tuE/ZQgv+u7ZjetvH1aEKieznn/GjnWoOBoJusOYvfAQeF 232b815c7f3Sopenharmony_ci0mQVi118QiOZRCnEZpkz+RY9TiXVgrZJg+AGqHZ3Ol4GkInEV2NWgH37Xal+HkFl 233b815c7f3Sopenharmony_cirwI2U7mL0kZRG+LAVCQHKzqU0R0HE1XyJ4qf0awtG5Qi/TZvgXBdZPDXgr8i9Vlf 234b815c7f3Sopenharmony_ciUUu10c2XnXM0Av/YAlZmBFjVYrSOUCFenqSVqL+s9sTCVdWlJrGjrr3Ja4uT3kl2 235b815c7f3Sopenharmony_cirLva0AR4oSQoxt8adKohmFz0vzOkQtCoRzhrCwoo3JvNjKdSNoOP1nSsxlO5ji8r 236b815c7f3Sopenharmony_ciih5d+ajPgi580XyHLnrvG7vobR48qqscv1hizKuCgTacOTe6Db2Gqc8xF6v8HhJa 237b815c7f3Sopenharmony_ciKwWJtmFllIfN/tIvZ6BbbgHQn0IGf4CYnWf0SksPZqpBmTRpD2jfBxcj2UEg+AR3 238b815c7f3Sopenharmony_ciLARjuyUVpFJScyu6ExQG+6O+ByLL31iWP5MgUrza1rIpriPa3NT3rZ3DG2pvQrS3 239b815c7f3Sopenharmony_ciySsrPzH7VRX8L1ThSMSzjwF96aMsd14s7XzR4EzNuWwZDukfs0yavZk6l4o1M0mb 240b815c7f3Sopenharmony_citbJi7hE4cz13KRHYvIkKMdZGYUnzRzZUDlsj2imakk3BR6GXnxZ1ST6062g+QxiL 241b815c7f3Sopenharmony_ciAJFLABEBAAGJBHIEGAEKACYCGwIWIQQx2VyrbYDSYiRKF1CkdiDoAeR+lQUCX9UL 242b815c7f3Sopenharmony_ciDQUJCS5xpwJAwXQgBBkBCgAdFiEEuNUxXaAAcsCoYIifzjbhFyAuOEIFAlppAGYA 243b815c7f3Sopenharmony_ciCgkQzjbhFyAuOELmrQ/9H9wrWsWa21STZdxUmyU2sh9VXAWEHl1Ey0fVTznDM0Fl 244b815c7f3Sopenharmony_cizx5YSR/TmmnE36rpaz31Ttkx8SP914oV+mMgseecdya9Bf6uZL9Cv7V3KEsJBRL/ 245b815c7f3Sopenharmony_cincrOWQBHP/Xy1X+mLD6A19xq7H4RihSLj0LeK2YVjrJzJ7wMf4mKXuBayQeAHImU 246b815c7f3Sopenharmony_ciWRCRTbmK3umh2nB5V0iPd/XZEIiYtiTPe+7E/va6+0bBvOumF3a+Z0iui7eU4hFC 247b815c7f3Sopenharmony_ci7Jk71D0dcg09SlIaNoMOrw7cMC3j2pMdKtsj8+0I6WBv14PhhqPAsnjdf7I/4NfK 248b815c7f3Sopenharmony_ciL7Jav8T/gDS01uA2Jxm72d+wr+eSjOBXa6x8CEbTqfkjAGxsWENThCp6zDkaXSDd 249b815c7f3Sopenharmony_ciJsV0va47vjzG8+wTDAvPy5IxIM/KZZdl4uWM+mF5K+q+eSTOHe7aLF2OdcussoBA 250b815c7f3Sopenharmony_ciA18zm994dAkG1COX/qpxanxx2bv/2IvCGPg+x6JtAN8ji2kncWu3dWGQdE5XbVjc 251b815c7f3Sopenharmony_cifDwgsUPpp04G27Mr/x+HpEbgZ5SdA0dAqJktlNvCcHALhlblCWrsh/1QNjT/2iG8 252b815c7f3Sopenharmony_ciwsjcpEy/s4tWAuV4PTa4xvZ1JPS7Z7Eo5aBy9ZGOWG9SrHEiHnhkUsiswbHBOEjd 253b815c7f3Sopenharmony_cipBSkmNElDcv9fRUahVCTPfvWBATFDrQyMjJBSm+cV8c/iFQM7isVSu8W7E0eetsJ 254b815c7f3Sopenharmony_ciEKR2IOgB5H6Vv9sP/1dxTvH0N0UoEoxIG/hnirEkbRpljdvqy4/uikYBKyQgSbo8 255b815c7f3Sopenharmony_ciVITTjea7gIhDztil9WZYt35jbOmoaGM2Z6TP2LEDOWgljYUNq9pl9Sc2GS8cNtEO 256b815c7f3Sopenharmony_ciWxExzGOc1Flo730dX3A85Ks3+0WPXZjLDcRRcPVkFd5WLQQDV1YVYopWkuQBC+Br 257b815c7f3Sopenharmony_ci4q3uv+sk+bw6gDa9+zFBbDuegdsYuTXrFHoxHz2GRv9Yb7ULCMgpFeNKDgtQq91u 258b815c7f3Sopenharmony_ciRqewoTwQp9tlp91LH/hh7R0Q4DRgeFDkLnVRXwSKjVvCrT5cBgImGwtFTGS4egoy 259b815c7f3Sopenharmony_ciMDKd/KKjZllp1ahRCln1XfmFQyQVMVvuF/JTtt31n6KwXwK2yxIlXB01xvRH+Ees 260b815c7f3Sopenharmony_ciAWeRYWKWXydaAY/9Ve0/PLFlgsr/XUGvt0GoEKe7odD3nZgg6015+/8JTroKw19L 261b815c7f3Sopenharmony_ciNZkhdfFMl11Zi0j5k3UbyzjYVpFSd8K2o0VoOG1LFsPp8tlRxNoVzpId0CX1au/p 262b815c7f3Sopenharmony_ciy1H7Wy/39mzriRG3rw+mJAQbBjN09putCltXFXpOEWk08n/N3vufCVQUoSu/2Bqw 263b815c7f3Sopenharmony_ci2HYj8VtToQp+O5dG3XxvDHINtInP1yr2Wcw2plna0KoXLwv/lZgDm3LN+eCWpG6d 264b815c7f3Sopenharmony_ciN/xk25DTSqTHArUQIEkhcHYK6GnyxUcvoKtG88hXtqEPYXiK08FZYAUPTnDYuQIN 265b815c7f3Sopenharmony_ciBFppAIkBEADDjvQZUs1NoqJpxkD2QDBudU1DBCaeI1D6CancMtb5FebPUxgFlDMd 266b815c7f3Sopenharmony_ciCBGOun48dY5i87gDhT/qS3gP/Mv9rjKJmcG9JHfhpXdW73owxrcsQ96nxxVJNEVl 267b815c7f3Sopenharmony_ciUHJw00z8C9eGWqr0SzSoE33K/PkzSkgtsaotF6+3uCerWulweulmGa5dpVfV0mbS 268b815c7f3Sopenharmony_ciaVw8VmrhZ5NmCeodyy/lR85rPik5pb32NT6v7xBkgkfS0VYtPB2E5gW1pXX/jEOi 269b815c7f3Sopenharmony_ciMfq9idOEP9lxrNXV9j49Lr0JQCwAcrYbQ2+VPe6eacJEjzJ/6HiUqhPrYdnvydmb 270b815c7f3Sopenharmony_cihU+xmv2NjGp2UnDZDEhzQfwm6fMx+8Nx2uPzCnXQGoyRBwiC/KcdW0F1ZPKdSXqH 271b815c7f3Sopenharmony_ciNKoOF62pLvIMSmfI3ZVOrTohArfr1kFEYVDv9Nl7oY+qg2rZEc2srOF74a9Z46bR 272b815c7f3Sopenharmony_ciTDPsEQzE2UMCvu3+rofhSD7aRotlKeDCvbe2s0yE4Man457Xc3LXh8Gva8CzCOLE 273b815c7f3Sopenharmony_ci2eMhNTsHIZk68WgXp3/uvE4Xy42myrk1AV8XXDdlWgx0Kc/I6tE59O5NVPSfuGvH 274b815c7f3Sopenharmony_ci1a15KKx0F6euEnYDKKpQ5PDR6dSn61po0tfbt96m044G/xQFjrfhHei4jji9Ogd9 275b815c7f3Sopenharmony_civlXVAi2vn3+NCSHFP5l3igLByBHy9iLIdmz7yQuus/1nwRmxOHOf2QARAQABiQI8 276b815c7f3Sopenharmony_ciBBgBCgAmAhsMFiEEMdlcq22A0mIkShdQpHYg6AHkfpUFAl/VCxkFCQkucZAACgkQ 277b815c7f3Sopenharmony_cipHYg6AHkfpVPSRAAmheYkYJmtDbkzPBBnj5mbCIQN1/G5PI9eixc/TXWFOXtcjU1 278b815c7f3Sopenharmony_cimJlJpSidHJyLRrx7r0c+N+s8vnY/JuUBsNoMJMER+Mv/CFW4iFi59V534SyAb2S0 279b815c7f3Sopenharmony_ci7NINJnFNkXBY62CDz9KsMuv/MdSv2yLhPH2Tfrm/eDRQesj1PanE4U1cgjWyJRc/ 280b815c7f3Sopenharmony_ciIOlaRHvTasWDLgwbQi8ykt+4xUWzL/YKHzB+KyyzBK7vPBXqySX8ka4BOw7SDwG5 281b815c7f3Sopenharmony_cilX2gtmhk4AGBwVChLXKflqVx1WXj4DPOt0kmOKVnKFyvUijK58M0A2FMgFMXDTIS 282b815c7f3Sopenharmony_ciDRtoZPdx/rkODXxgS+W+27NcYAnxJiM0cQqizEnQh7PQ1KzgdChPejYXMKe9lwdn 283b815c7f3Sopenharmony_cissMUxrBpbuAuagEf+pebNjD2eaNR4p8kfaDdGn53q55ysDvoyxKvnVQGSk1FAR9Q 284b815c7f3Sopenharmony_cis4N5a4f02U7dzlyEhEfIcuUlRCfnlpn4n725YIhHheDig5zKWoEZCkNIfiRcGzDl 285b815c7f3Sopenharmony_ci8Drj+tlZiUR+gDkIoWSBaCkKbIQlc8qCYy6Hm7oZBaol6xKlUnTMK2rjK8fR4i8r 286b815c7f3Sopenharmony_cibVDWBAaWj3jcDHJ0Jg3fS/qBpeya/JXMp89TR8NK5Ys7PZpWbor+puXBYyXDAVx3 287b815c7f3Sopenharmony_cirXQ7JBA5klHPxrgjso1S/LqwscKLENtrVjdjhryLBmPifrmofJRnrpiHIEa5Ag0E 288b815c7f3Sopenharmony_ciWmkAswEQAL0hKwsRybQzkNGpJP+ElLSwFHd7XQhr+qIwLllpumWtnIK/DHmv8SpW 289b815c7f3Sopenharmony_ciFqAYajmRTXipFcBHH25x2jIIliZidn0a9826l+sMzrFadMC6/W4pitP71TeqZzwn 290b815c7f3Sopenharmony_cipAuHs14YL7Wiy0aJQnfbCpRzPq3kYyOXmhmY7lPWO0WdUpR6W8wUbleK5XOVDDRx 291b815c7f3Sopenharmony_ciaIC/M3hhDOxZOMzQ+pdn4BaOFQQ0ygsRkqOudbuc0R1giYRt1i6gMeT8gfzL9jlw 292b815c7f3Sopenharmony_ciHcJ+aVnxdUQQ4uC47oKo/+lg7qh7LsiW79pQC1Bcdm8lhRmqtxe6ub60ecjax3XU 293b815c7f3Sopenharmony_ci1ILIEfIFCv6M7LRUAwz0bqk35spgkJqrGGKkdeWEKAFHg2QWR2F0zy+HdlPLfKxO 294b815c7f3Sopenharmony_ciuhaccpwc9EJtf744GS0SXa2AXr32j56n7CFcEjFcIQPBC6OJn6eA3hOVUYGZ7SrT 295b815c7f3Sopenharmony_ci4fsmZiFAdGEkvLKFuNhju1Hj2EJQUY1pm4GSBco7BR8x+QqoYrt5clU3WxRMNfTR 296b815c7f3Sopenharmony_ci0Rtuzsh4xskXNVMMgvKOahAtxENv2M2Cx6zJPVL5dmaysP7d6QRVeOQA5PwkcZ5Q 297b815c7f3Sopenharmony_ciqK6JtDZj2jpaKQH4Za715kiIcdqMDSkwxa6avc0kARHvfFcBR4hwDm1GAlaKG7eH 298b815c7f3Sopenharmony_ci8TOGGQIk8x2F3s4l8mTJVLWTP/uJYnkYBdqANYo5t1NIQLvwLFV3ABEBAAGJAjwE 299b815c7f3Sopenharmony_ciGAEKACYCGyAWIQQx2VyrbYDSYiRKF1CkdiDoAeR+lQUCX9ULIwUJCS5xcAAKCRCk 300b815c7f3Sopenharmony_cidiDoAeR+leekD/sF7aHH0W35ckWrXZlfSp0qHPWrBUaLBI9OAUHenRhgs4SbK0D4 301b815c7f3Sopenharmony_ciwqEiu0C5iDQojpXAeALQ8g/1pUsZ1yuFqYbGYWrHkA0Pm+P3tAGB4LMZ41YfvROP 302b815c7f3Sopenharmony_ciuaiW/+IMJbWllgRtaDt8/NtCgs30WI9I+az5M29HcGfvEwEUykrBx3dE9T+1ui3O 303b815c7f3Sopenharmony_cicapdd+GMvdAAsX5PyVkjWgZ7GrZeH8mG7UysYfT4qthxEtQfZ/u8ceSduKA46ugh 304b815c7f3Sopenharmony_ciC2eafIDNvluqn7BU4oKxME61u6C8BN2yHLI6LV0Tr4z5H8joVbM4BSFMwLVGlsXf 305b815c7f3Sopenharmony_ciHhB8kLiErN6bXolxsjARlmYiD9S9H2AcYidr6RYXf2EVFSpBG59xn1WTDN+DsHQf 306b815c7f3Sopenharmony_ci7btNPEPl/OPxa3OQjG+xn8USddiP0N0B4xsyzMNCCKDgvXXcIhX55KG9eh3Tc98S 307b815c7f3Sopenharmony_cifEyhxu8ybZBIGmTJysPKxijfvSgQF+RPNTsz9lvXqkoK7RTgeYMschpjJEznCLbt 308b815c7f3Sopenharmony_ciM6eTDb5z0G5uLXh6+dYxtDOlPogI5OHd+G51LwCjvrQ+AtIUCgafuemwA9mpFT2b 309b815c7f3Sopenharmony_cisvb/qcxSVUb44bVaNHn1JHebX2YbokGtBOm1x2PI5fT8n6YIIYz3jKYOZAYdUT7x 310b815c7f3Sopenharmony_ci6qURyNjOfG4aPJIATwuh4GSNuxUG40+yuT+XfQF24mu1esS1J3wzRloJ7w== 311b815c7f3Sopenharmony_ci=K3x+ 312b815c7f3Sopenharmony_ci-----END PGP PUBLIC KEY BLOCK----- 313b815c7f3Sopenharmony_ci``` 314b815c7f3Sopenharmony_ci 315b815c7f3Sopenharmony_ci## See Also 316b815c7f3Sopenharmony_ci 317b815c7f3Sopenharmony_ci* [sndfile-tools](https://github.com/libsndfile/sndfile-tools): a small 318b815c7f3Sopenharmony_cicollection of programs which use libsndfile. 319