annotate src/rubberband-1.8.1/README.txt @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 37bf6b4a2645
children
rev   line source
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.