annotate src/rubberband-1.8.1/README.txt @ 169:223a55898ab9 tip default

Add null config files
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 02 Mar 2020 14:03:47 +0000
parents 89f5e221ed7b
children
rev   line source
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.