annotate src/rubberband-1.8.1/README.txt @ 11:4d14605afe75

Fixes, ranlibs
author Chris Cannam
date Wed, 20 Mar 2013 15:56:36 +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.