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