aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/main/libresample/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/main/libresample/README.txt')
-rw-r--r--trunk/main/libresample/README.txt84
1 files changed, 84 insertions, 0 deletions
diff --git a/trunk/main/libresample/README.txt b/trunk/main/libresample/README.txt
new file mode 100644
index 000000000..14be45b83
--- /dev/null
+++ b/trunk/main/libresample/README.txt
@@ -0,0 +1,84 @@
+libresample
+
+Real-time library interface by Dominic Mazzoni
+
+Based on resample-1.7:
+ http://www-ccrma.stanford.edu/~jos/resample/
+
+License: LGPL - see the file LICENSE.txt for more information
+
+History:
+
+This library is not the highest-quality resampling library
+available, nor is it the most flexible, nor is it the
+fastest. But it is pretty good in all of these regards, and
+it is quite portable. The best resampling library I am aware
+of is libsamplerate by Erik de Castro Lopo. It's small, fast,
+and very high quality. However, it uses the GPL for its
+license (with commercial options available) and I needed
+a more free library. So I wrote this library, using
+the LGPL resample-1.7 library by Julius Smith as a basis.
+
+Resample-1.7 is a fixed-point resampler, and as a result
+has only limited precision. I rewrote it to use single-precision
+floating-point arithmetic instead and increased the number
+of filter coefficients between time steps significantly.
+On modern processors it can resample in real time even
+with this extra overhead.
+
+Resample-1.7 was designed to read and write from files, so
+I removed all of that code and replaced it with an API that
+lets you pass samples in small chunks. It should be easy
+to link to resample-1.7 as a library.
+
+Changes in version 0.1.3:
+
+* Fixed two bugs that were causing subtle problems
+ on Intel x86 processors due to differences in roundoff errors.
+
+* Prefixed most function names with lrs and changed header file
+ from resample.h to libresample.h, to avoid namespace
+ collisions with existing programs and libraries.
+
+* Added resample_dup (thanks to Glenn Maynard)
+
+* Argument to resample_get_filter_width takes a const void *
+ (thanks to Glenn Maynard)
+
+* resample-sndfile clips output to -1...1 (thanks to Glenn Maynard)
+
+Usage notes:
+
+- If the output buffer you pass is too small, resample_process
+ may not use any input samples because its internal output
+ buffer is too full to process any more. So do not assume
+ that it is an error just because no input samples were
+ consumed. Just keep passing valid output buffers.
+
+- Given a resampling factor f > 1, and a number of input
+ samples n, the number of output samples should be between
+ floor(n - f) and ceil(n + f). In other words, if you
+ resample 1000 samples at a factor of 8, the number of
+ output samples might be between 7992 and 8008. Do not
+ assume that it will be exactly 8000. If you need exactly
+ 8000 outputs, pad the input with extra zeros as necessary.
+
+License and warranty:
+
+All of the files in this package are Copyright 2003 by Dominic
+Mazzoni <dominic@minorninth.com>. This library was based heavily
+on Resample-1.7, Copyright 1994-2002 by Julius O. Smith III
+<jos@ccrma.stanford.edu>, all rights reserved.
+
+Permission to use and copy is granted subject to the terms of the
+"GNU Lesser General Public License" (LGPL) as published by the
+Free Software Foundation; either version 2.1 of the License,
+or any later version. In addition, Julius O. Smith III requests
+that a copy of any modified files be sent by email to
+jos@ccrma.stanford.edu so that he may incorporate them into the
+CCRMA version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.