cannam@95
|
1
|
cannam@95
|
2 Rubber Band
|
cannam@95
|
3 ===========
|
cannam@95
|
4
|
cannam@95
|
5 An audio time-stretching and pitch-shifting library and utility program.
|
cannam@95
|
6
|
cannam@95
|
7 Written by Chris Cannam, chris.cannam@breakfastquay.com.
|
cannam@95
|
8 Copyright 2007-2012 Particular Programs Ltd.
|
cannam@95
|
9
|
cannam@95
|
10 Rubber Band is a library and utility program that permits changing the
|
cannam@95
|
11 tempo and pitch of an audio recording independently of one another.
|
cannam@95
|
12
|
cannam@95
|
13 See http://breakfastquay.com/rubberband/ for more information.
|
cannam@95
|
14
|
cannam@95
|
15
|
cannam@95
|
16 Licence
|
cannam@95
|
17 =======
|
cannam@95
|
18
|
cannam@95
|
19 Rubber Band is distributed under the GNU General Public License. See
|
cannam@95
|
20 the file COPYING for more information.
|
cannam@95
|
21
|
cannam@95
|
22 If you wish to distribute code using the Rubber Band Library under
|
cannam@95
|
23 terms other than those of the GNU General Public License, you must
|
cannam@95
|
24 obtain a commercial licence from us before doing so. In particular,
|
cannam@95
|
25 you may not legally distribute through any Apple App Store unless you
|
cannam@95
|
26 have a commercial licence. See http://breakfastquay.com/rubberband/
|
cannam@95
|
27 for licence terms.
|
cannam@95
|
28
|
cannam@95
|
29 If you have obtained a valid commercial licence, your licence
|
cannam@95
|
30 supersedes this README and the enclosed COPYING file and you may
|
cannam@95
|
31 redistribute and/or modify Rubber Band under the terms described in
|
cannam@95
|
32 that licence. Please refer to your licence agreement for more details.
|
cannam@95
|
33
|
cannam@95
|
34 Note that Rubber Band may link with other GPL libraries or with
|
cannam@95
|
35 proprietary libraries, depending on its build configuration. See the
|
cannam@95
|
36 section "FFT and resampler selection" below. It is your responsibility
|
cannam@95
|
37 to ensure that you redistribute only in accordance with the licence
|
cannam@95
|
38 terms of any other libraries you may build with.
|
cannam@95
|
39
|
cannam@95
|
40
|
cannam@95
|
41 Contents of this README
|
cannam@95
|
42 -----------------------
|
cannam@95
|
43
|
cannam@95
|
44 1. Code components
|
cannam@95
|
45 2. Using the Rubber Band command-line tool
|
cannam@95
|
46 3. Using the Rubber Band Library
|
cannam@95
|
47 4. Compiling Rubber Band
|
cannam@95
|
48 a. FFT and resampler selection
|
cannam@95
|
49 b. Other supported #defines
|
cannam@95
|
50 c. GNU/POSIX systems and Makefiles
|
cannam@95
|
51 d. OS/X and iOS
|
cannam@95
|
52 e. Win32 and Visual Studio
|
cannam@95
|
53 f. Android and Java
|
cannam@95
|
54 5. Copyright notes for bundled libraries
|
cannam@95
|
55
|
cannam@95
|
56
|
cannam@95
|
57 1. Code components
|
cannam@95
|
58 ------------------
|
cannam@95
|
59
|
cannam@95
|
60 Rubber Band consists of:
|
cannam@95
|
61
|
cannam@95
|
62 * The Rubber Band library code. This is the code that will normally
|
cannam@95
|
63 be used by your applications. The headers for this are in the
|
cannam@95
|
64 rubberband/ directory, and the source code is in src/.
|
cannam@95
|
65 The Rubber Band library depends upon resampler and FFT code; see
|
cannam@95
|
66 section 3a below for details.
|
cannam@95
|
67
|
cannam@95
|
68 * The Rubber Band command-line tool. This is in main/main.cpp.
|
cannam@95
|
69 This program uses the Rubber Band library and also requires libsndfile
|
cannam@95
|
70 (http://www.mega-nerd.com/libsndfile/, licensed under the GNU Lesser
|
cannam@95
|
71 General Public License) for audio file loading.
|
cannam@95
|
72
|
cannam@95
|
73 * A pitch-shifter LADSPA audio effects plugin. This is in ladspa/.
|
cannam@95
|
74 It requires the LADSPA SDK header ladspa.h (not included).
|
cannam@95
|
75
|
cannam@95
|
76 * A Vamp audio analysis plugin which may be used to inspect the
|
cannam@95
|
77 dynamic stretch ratios and other decisions taken by the Rubber Band
|
cannam@95
|
78 library when in use. This is in vamp/. It requires the Vamp
|
cannam@95
|
79 plugin SDK (http://www.vamp-plugins.org/develop.html) (not included).
|
cannam@95
|
80
|
cannam@95
|
81
|
cannam@95
|
82 2. Using the Rubber Band command-line tool
|
cannam@95
|
83 ------------------------------------------
|
cannam@95
|
84
|
cannam@95
|
85 The Rubber Band command-line tool builds as bin/rubberband. The basic
|
cannam@95
|
86 incantation is
|
cannam@95
|
87
|
cannam@95
|
88 $ rubberband -t <timeratio> -p <pitchratio> <infile.wav> <outfile.wav>
|
cannam@95
|
89
|
cannam@95
|
90 For example,
|
cannam@95
|
91
|
cannam@95
|
92 $ rubberband -t 1.5 -p 2.0 test.wav output.wav
|
cannam@95
|
93
|
cannam@95
|
94 stretches the file test.wav to 50% longer than its original duration,
|
cannam@95
|
95 shifts it up in pitch by one octave, and writes the output to output.wav.
|
cannam@95
|
96
|
cannam@95
|
97 Several further options are available: run "rubberband -h" for help.
|
cannam@95
|
98 In particular, different types of music may benefit from different
|
cannam@95
|
99 "crispness" options (-c <n> where <n> is from 0 to 6).
|
cannam@95
|
100
|
cannam@95
|
101
|
cannam@95
|
102 3. Using the Rubber Band library
|
cannam@95
|
103 --------------------------------
|
cannam@95
|
104
|
cannam@95
|
105 The Rubber Band library has a public API that consists of one C++
|
cannam@95
|
106 class, called RubberBandStretcher in the RubberBand namespace. You
|
cannam@95
|
107 should #include <rubberband/RubberBandStretcher.h> to use this class.
|
cannam@95
|
108 There is extensive documentation in the class header.
|
cannam@95
|
109
|
cannam@95
|
110 A header with C language bindings is also provided in
|
cannam@95
|
111 <rubberband/rubberband-c.h>. This is a wrapper around the C++
|
cannam@95
|
112 implementation, and as the implementation is the same, it also
|
cannam@95
|
113 requires linkage against the C++ standard libraries. It is not yet
|
cannam@95
|
114 documented separately from the C++ header. You should include only
|
cannam@95
|
115 one of the two headers, not both.
|
cannam@95
|
116
|
cannam@95
|
117 The source code for the command-line utility (main/main.cpp) provides
|
cannam@95
|
118 a good example of how to use Rubber Band in offline mode; the LADSPA
|
cannam@95
|
119 pitch shifter plugin (ladspa/RubberBandPitchShifter.cpp) may be used
|
cannam@95
|
120 as an example of Rubber Band in real-time mode.
|
cannam@95
|
121
|
cannam@95
|
122 IMPORTANT: Please ensure you have read and understood the licensing
|
cannam@95
|
123 terms for Rubber Band before using it in your application. This
|
cannam@95
|
124 library is provided under the GNU General Public License, which means
|
cannam@95
|
125 that any application that uses it must also be published under the GPL
|
cannam@95
|
126 or a compatible licence (i.e. with its full source code also available
|
cannam@95
|
127 for modification and redistribution) unless you have separately
|
cannam@95
|
128 acquired a commercial licence from the author.
|
cannam@95
|
129
|
cannam@95
|
130
|
cannam@95
|
131 4. Compiling Rubber Band
|
cannam@95
|
132 ------------------------
|
cannam@95
|
133
|
cannam@95
|
134 4a. FFT and resampler selection
|
cannam@95
|
135 -------------------------------
|
cannam@95
|
136
|
cannam@95
|
137 Rubber Band requires additional library code for FFT calculation and
|
cannam@95
|
138 resampling. Several libraries are supported. The selection is
|
cannam@95
|
139 controlled using preprocessor flags at compile time, as detailed in
|
cannam@95
|
140 the tables below.
|
cannam@95
|
141
|
cannam@95
|
142 Flags that declare that you want to use an external library begin with
|
cannam@95
|
143 HAVE_; flags that select from the bundled options begin with USE_.
|
cannam@95
|
144
|
cannam@95
|
145 You must enable one resampler implementation and one FFT
|
cannam@95
|
146 implementation. Do not enable more than one of either unless you know
|
cannam@95
|
147 what you're doing.
|
cannam@95
|
148
|
cannam@95
|
149 If you are building this software using one of the bundled library
|
cannam@95
|
150 options (Speex or KissFFT), please be sure to review the terms for
|
cannam@95
|
151 those libraries in src/speex/COPYING and src/kissfft/COPYING as
|
cannam@95
|
152 applicable.
|
cannam@95
|
153
|
cannam@95
|
154 FFT libraries supported
|
cannam@95
|
155 -----------------------
|
cannam@95
|
156
|
cannam@95
|
157 Name Flags required Notes
|
cannam@95
|
158 ---- -------------- -----
|
cannam@95
|
159
|
cannam@95
|
160 FFTW3 -DHAVE_FFTW GPL.
|
cannam@95
|
161
|
cannam@95
|
162 Accelerate -DHAVE_VDSP Platform library on OS/X and iOS.
|
cannam@95
|
163
|
cannam@95
|
164 Intel IPP -DHAVE_IPP Proprietary library, can only be used with
|
cannam@95
|
165 Rubber Band commercial licence. Define
|
cannam@95
|
166 USE_IPP_STATIC as well to build with static
|
cannam@95
|
167 IPP libraries.
|
cannam@95
|
168
|
cannam@95
|
169 KissFFT -DUSE_KISSFFT Bundled, can be used with GPL or commercial
|
cannam@95
|
170 licence. Single-precision. Slower than the
|
cannam@95
|
171 above options.
|
cannam@95
|
172
|
cannam@95
|
173 Resampler libraries supported
|
cannam@95
|
174 -----------------------------
|
cannam@95
|
175
|
cannam@95
|
176 Name Flags required Notes
|
cannam@95
|
177 ---- -------------- -----
|
cannam@95
|
178
|
cannam@95
|
179 libsamplerate -DHAVE_LIBSAMPLERATE GPL.
|
cannam@95
|
180
|
cannam@95
|
181 libresample -DHAVE_LIBRESAMPLE LGPL.
|
cannam@95
|
182
|
cannam@95
|
183 Speex -DUSE_SPEEX Bundled, can be used with GPL or commercial
|
cannam@95
|
184 licence.
|
cannam@95
|
185
|
cannam@95
|
186
|
cannam@95
|
187 4b. Other supported #defines
|
cannam@95
|
188 ----------------------------
|
cannam@95
|
189
|
cannam@95
|
190 Other symbols you may define at compile time are as follows. (Usually
|
cannam@95
|
191 the supplied build files will handle these for you.)
|
cannam@95
|
192
|
cannam@95
|
193 -DLACK_BAD_ALLOC
|
cannam@95
|
194 Define on systems lacking std::bad_alloc in the C++ library.
|
cannam@95
|
195
|
cannam@95
|
196 -DLACK_POSIX_MEMALIGN
|
cannam@95
|
197 Define on systems lacking posix_memalign.
|
cannam@95
|
198
|
cannam@95
|
199 -DUSE_OWN_ALIGNED_MALLOC
|
cannam@95
|
200 Define on systems lacking any aligned malloc implementation.
|
cannam@95
|
201
|
cannam@95
|
202 -DLACK_SINCOS
|
cannam@95
|
203 Define on systems lacking sincos().
|
cannam@95
|
204
|
cannam@95
|
205 -DNO_EXCEPTIONS
|
cannam@95
|
206 Build without use of C++ exceptions.
|
cannam@95
|
207
|
cannam@95
|
208 -DNO_THREADING
|
cannam@95
|
209 Build without any multithread support.
|
cannam@95
|
210
|
cannam@95
|
211 -DUSE_PTHREADS
|
cannam@95
|
212 Use the pthreads library (required unless NO_THREADING or on Windows)
|
cannam@95
|
213
|
cannam@95
|
214 -DPROCESS_SAMPLE_TYPE=float
|
cannam@95
|
215 Select single precision for internal calculations. The default is
|
cannam@95
|
216 double precision. Consider using for mobile architectures with
|
cannam@95
|
217 slower double-precision support.
|
cannam@95
|
218
|
cannam@95
|
219 -DUSE_POMMIER_MATHFUN
|
cannam@95
|
220 Select the Julien Pommier implementations of trig functions for ARM
|
cannam@95
|
221 NEON or x86 SSE architectures. These are usually faster but may be
|
cannam@95
|
222 of lower precision than system implementations. Consider using this
|
cannam@95
|
223 for mobile architectures.
|
cannam@95
|
224
|
cannam@95
|
225
|
cannam@95
|
226 4c. GNU/POSIX systems and Makefiles
|
cannam@95
|
227 -----------------------------------
|
cannam@95
|
228
|
cannam@95
|
229 A GNU-style configure script is included for use on Linux and similar
|
cannam@95
|
230 systems.
|
cannam@95
|
231
|
cannam@95
|
232 Run ./configure, then adjust the generated Makefile according to your
|
cannam@95
|
233 preference for FFT and resampler implementations. The default is to
|
cannam@95
|
234 use FFTW3 and libsamplerate.
|
cannam@95
|
235
|
cannam@95
|
236 The following Makefile targets are available:
|
cannam@95
|
237
|
cannam@95
|
238 static -- build static libraries only
|
cannam@95
|
239 dynamic -- build dynamic libraries only
|
cannam@95
|
240 library -- build static and dynamic libraries only
|
cannam@95
|
241 program -- build the command-line tool
|
cannam@95
|
242 vamp -- build Vamp plugin
|
cannam@95
|
243 ladspa -- build LADSPA plugin
|
cannam@95
|
244 all -- build everything.
|
cannam@95
|
245
|
cannam@95
|
246 The default target is "all".
|
cannam@95
|
247
|
cannam@95
|
248
|
cannam@95
|
249 4d. OS/X and iOS
|
cannam@95
|
250 ----------------
|
cannam@95
|
251
|
cannam@95
|
252 A Makefile for OS/X is provided as Makefile.osx.
|
cannam@95
|
253
|
cannam@95
|
254 Adjust the Makefile according to your preference for compiler and
|
cannam@95
|
255 platform SDK, FFT and resampler implementations. The default is to
|
cannam@95
|
256 use the Accelerate framework and the Speex resampler.
|
cannam@95
|
257
|
cannam@95
|
258 The following Makefile targets are available:
|
cannam@95
|
259
|
cannam@95
|
260 static -- build static libraries only
|
cannam@95
|
261 dynamic -- build dynamic libraries only
|
cannam@95
|
262 library -- build static and dynamic libraries only
|
cannam@95
|
263 program -- build the command-line tool
|
cannam@95
|
264 vamp -- build Vamp plugin
|
cannam@95
|
265 ladspa -- build LADSPA plugin
|
cannam@95
|
266 all -- build everything.
|
cannam@95
|
267
|
cannam@95
|
268 The default target is to build the static and dynamic libraries and
|
cannam@95
|
269 the command line tool. The sndfile library is required for the
|
cannam@95
|
270 command line tool.
|
cannam@95
|
271
|
cannam@95
|
272 If you prefer to add the Rubber Band library files to an existing
|
cannam@95
|
273 build project instead of using the Makefile, the files in src/ (except
|
cannam@95
|
274 for RubberBandStretcherJNI.cpp) and the API headers in rubberband/
|
cannam@95
|
275 should be all you need.
|
cannam@95
|
276
|
cannam@95
|
277 Note that you cannot legally distribute applications using Rubber Band
|
cannam@95
|
278 through the iPhone/iPad App Store or OS/X App Store unless you have a
|
cannam@95
|
279 valid commercial licence. GPL code is not permitted in these stores.
|
cannam@95
|
280
|
cannam@95
|
281
|
cannam@95
|
282 4e. Win32 and Visual Studio
|
cannam@95
|
283 ---------------------------
|
cannam@95
|
284
|
cannam@95
|
285 Two Visual Studio 2005 projects are supplied.
|
cannam@95
|
286
|
cannam@95
|
287 rubberband-library.vcproj builds the Rubber Band static libraries
|
cannam@95
|
288 only.
|
cannam@95
|
289
|
cannam@95
|
290 rubberband-program.vcproj builds the Rubber Band command-line tool
|
cannam@95
|
291 only (requires the Rubber Band libraries, and libsndfile).
|
cannam@95
|
292
|
cannam@95
|
293 You will need to adjust the project settings so as to set the compile
|
cannam@95
|
294 flags according to your preference for FFT and resampler
|
cannam@95
|
295 implementation, and set the include path and library path
|
cannam@95
|
296 appropriately. The default is to use the bundled KissFFT and the
|
cannam@95
|
297 Speex resampler.
|
cannam@95
|
298
|
cannam@95
|
299 If you prefer to add the Rubber Band library files to an existing
|
cannam@95
|
300 build project instead of using the supplied one, the files in src/
|
cannam@95
|
301 (except for RubberBandStretcherJNI.cpp) and the API headers in
|
cannam@95
|
302 rubberband/ should be all you need.
|
cannam@95
|
303
|
cannam@95
|
304
|
cannam@95
|
305 4f. Android and Java
|
cannam@95
|
306 --------------------
|
cannam@95
|
307
|
cannam@95
|
308 An Android NDK build file is provided as Android.mk. This includes
|
cannam@95
|
309 compile definitions for a shared library built for ARM architectures
|
cannam@95
|
310 which can be loaded from a Java application using the Java native
|
cannam@95
|
311 interface (i.e. the Android NDK).
|
cannam@95
|
312
|
cannam@95
|
313 The Java side of the interface can be found in
|
cannam@95
|
314 com/breakfastquay/rubberband/RubberBandStretcher.java.
|
cannam@95
|
315
|
cannam@95
|
316 The supplied .mk file uses KissFFT and the Speex resampler.
|
cannam@95
|
317
|
cannam@95
|
318
|
cannam@95
|
319 5. Copyright notes for bundled libraries
|
cannam@95
|
320 ========================================
|
cannam@95
|
321
|
cannam@95
|
322 5a. Speex
|
cannam@95
|
323 ---------
|
cannam@95
|
324
|
cannam@95
|
325 [files in src/speex]
|
cannam@95
|
326
|
cannam@95
|
327 Copyright 2002-2007 Xiph.org Foundation
|
cannam@95
|
328 Copyright 2002-2007 Jean-Marc Valin
|
cannam@95
|
329 Copyright 2005-2007 Analog Devices Inc.
|
cannam@95
|
330 Copyright 2005-2007 Commonwealth Scientific and Industrial Research
|
cannam@95
|
331 Organisation (CSIRO)
|
cannam@95
|
332 Copyright 1993, 2002, 2006 David Rowe
|
cannam@95
|
333 Copyright 2003 EpicGames
|
cannam@95
|
334 Copyright 1992-1994 Jutta Degener, Carsten Bormann
|
cannam@95
|
335
|
cannam@95
|
336 Redistribution and use in source and binary forms, with or without
|
cannam@95
|
337 modification, are permitted provided that the following conditions
|
cannam@95
|
338 are met:
|
cannam@95
|
339
|
cannam@95
|
340 - Redistributions of source code must retain the above copyright
|
cannam@95
|
341 notice, this list of conditions and the following disclaimer.
|
cannam@95
|
342
|
cannam@95
|
343 - Redistributions in binary form must reproduce the above copyright
|
cannam@95
|
344 notice, this list of conditions and the following disclaimer in the
|
cannam@95
|
345 documentation and/or other materials provided with the distribution.
|
cannam@95
|
346
|
cannam@95
|
347 - Neither the name of the Xiph.org Foundation nor the names of its
|
cannam@95
|
348 contributors may be used to endorse or promote products derived from
|
cannam@95
|
349 this software without specific prior written permission.
|
cannam@95
|
350
|
cannam@95
|
351 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
cannam@95
|
352 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
cannam@95
|
353 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
cannam@95
|
354 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
|
cannam@95
|
355 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
cannam@95
|
356 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
cannam@95
|
357 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
cannam@95
|
358 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
cannam@95
|
359 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
cannam@95
|
360 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
cannam@95
|
361 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
cannam@95
|
362
|
cannam@95
|
363
|
cannam@95
|
364 5b. KissFFT
|
cannam@95
|
365 -----------
|
cannam@95
|
366
|
cannam@95
|
367 [files in src/kissfft]
|
cannam@95
|
368
|
cannam@95
|
369 Copyright (c) 2003-2004 Mark Borgerding
|
cannam@95
|
370
|
cannam@95
|
371 All rights reserved.
|
cannam@95
|
372
|
cannam@95
|
373 Redistribution and use in source and binary forms, with or without
|
cannam@95
|
374 modification, are permitted provided that the following conditions are
|
cannam@95
|
375 met:
|
cannam@95
|
376
|
cannam@95
|
377 * Redistributions of source code must retain the above copyright
|
cannam@95
|
378 notice, this list of conditions and the following disclaimer.
|
cannam@95
|
379 * Redistributions in binary form must reproduce the above
|
cannam@95
|
380 copyright notice, this list of conditions and the following
|
cannam@95
|
381 disclaimer in the documentation and/or other materials provided
|
cannam@95
|
382 with the distribution.
|
cannam@95
|
383 * Neither the author nor the names of any contributors may be used
|
cannam@95
|
384 to endorse or promote products derived from this software
|
cannam@95
|
385 without specific prior written permission.
|
cannam@95
|
386
|
cannam@95
|
387 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
cannam@95
|
388 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
cannam@95
|
389 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
cannam@95
|
390 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
cannam@95
|
391 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
cannam@95
|
392 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
cannam@95
|
393 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
cannam@95
|
394 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
cannam@95
|
395 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
cannam@95
|
396 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
cannam@95
|
397 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
cannam@95
|
398
|
cannam@95
|
399
|
cannam@95
|
400 5c. Pommier math functions
|
cannam@95
|
401 --------------------------
|
cannam@95
|
402
|
cannam@95
|
403 [files in src/pommier]
|
cannam@95
|
404
|
cannam@95
|
405 Copyright (C) 2011 Julien Pommier
|
cannam@95
|
406
|
cannam@95
|
407 This software is provided 'as-is', without any express or implied
|
cannam@95
|
408 warranty. In no event will the authors be held liable for any damages
|
cannam@95
|
409 arising from the use of this software.
|
cannam@95
|
410
|
cannam@95
|
411 Permission is granted to anyone to use this software for any purpose,
|
cannam@95
|
412 including commercial applications, and to alter it and redistribute it
|
cannam@95
|
413 freely, subject to the following restrictions:
|
cannam@95
|
414
|
cannam@95
|
415 1. The origin of this software must not be misrepresented; you must not
|
cannam@95
|
416 claim that you wrote the original software. If you use this software
|
cannam@95
|
417 in a product, an acknowledgment in the product documentation would be
|
cannam@95
|
418 appreciated but is not required.
|
cannam@95
|
419 2. Altered source versions must be plainly marked as such, and must not be
|
cannam@95
|
420 misrepresented as being the original software.
|
cannam@95
|
421 3. This notice may not be removed or altered from any source distribution.
|
cannam@95
|
422
|
cannam@95
|
423
|
cannam@95
|
424 5d. float_cast
|
cannam@95
|
425 --------------
|
cannam@95
|
426
|
cannam@95
|
427 [files in src/float_cast]
|
cannam@95
|
428
|
cannam@95
|
429 Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
|
cannam@95
|
430
|
cannam@95
|
431 Permission to use, copy, modify, distribute, and sell this file for any
|
cannam@95
|
432 purpose is hereby granted without fee, provided that the above copyright
|
cannam@95
|
433 and this permission notice appear in all copies. No representations are
|
cannam@95
|
434 made about the suitability of this software for any purpose. It is
|
cannam@95
|
435 provided "as is" without express or implied warranty.
|
cannam@95
|
436
|
cannam@95
|
437
|
cannam@95
|
438 5d. getopt
|
cannam@95
|
439 ----------
|
cannam@95
|
440
|
cannam@95
|
441 [files in src/getopt, used by command-line tool on some platforms]
|
cannam@95
|
442
|
cannam@95
|
443 Copyright (c) 2000 The NetBSD Foundation, Inc.
|
cannam@95
|
444 All rights reserved.
|
cannam@95
|
445
|
cannam@95
|
446 This code is derived from software contributed to The NetBSD Foundation
|
cannam@95
|
447 by Dieter Baron and Thomas Klausner.
|
cannam@95
|
448
|
cannam@95
|
449 Redistribution and use in source and binary forms, with or without
|
cannam@95
|
450 modification, are permitted provided that the following conditions
|
cannam@95
|
451 are met:
|
cannam@95
|
452 1. Redistributions of source code must retain the above copyright
|
cannam@95
|
453 notice, this list of conditions and the following disclaimer.
|
cannam@95
|
454 2. Redistributions in binary form must reproduce the above copyright
|
cannam@95
|
455 notice, this list of conditions and the following disclaimer in the
|
cannam@95
|
456 documentation and/or other materials provided with the distribution.
|
cannam@95
|
457 3. All advertising materials mentioning features or use of this software
|
cannam@95
|
458 must display the following acknowledgement:
|
cannam@95
|
459 This product includes software developed by the NetBSD
|
cannam@95
|
460 Foundation, Inc. and its contributors.
|
cannam@95
|
461 4. Neither the name of The NetBSD Foundation nor the names of its
|
cannam@95
|
462 contributors may be used to endorse or promote products derived
|
cannam@95
|
463 from this software without specific prior written permission.
|
cannam@95
|
464
|
cannam@95
|
465 THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
cannam@95
|
466 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
cannam@95
|
467 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
cannam@95
|
468 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
cannam@95
|
469 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
cannam@95
|
470 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
cannam@95
|
471 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
cannam@95
|
472 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
cannam@95
|
473 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
cannam@95
|
474 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
cannam@95
|
475 POSSIBILITY OF SUCH DAMAGE.
|