Note: This license is from documentation/LICENSE.txt included in fmodapi43802linux.tar.gz with BSD and BSD-2 stripped out from it

FMOD Ex SoundSystem Copyright © 2005-2011 Firelight Technologies Pty, Ltd.

FMOD NON-COMMERCIAL LICENSE
------------------------------------
IF YOUR PRODUCT IS NOT INTENDED FOR COMMERCIAL GAIN AND DOES NOT
INCLUDE THE FMOD LIBRARY FOR RESALE, LICENSE OR OTHER COMMERCIAL
DISTRIBUTION, THEN USE OF FMOD IS FREE OF CHARGE.  THERE ARE NO
LICENSE FEES FOR NON-COMMERCIAL APPLICATIONS.

CONDITIONS/LIMITATIONS:
- WHEN USING THIS LICENSE, THE FMOD LIBRARY CANNOT BE USED FOR
  RESALE OR OTHER COMMERCIAL DISTRIBUTION
- THIS LICENSE CANNOT BE USED FOR PRODUCTS WHICH DO NOT MAKE
  PROFIT BUT ARE STILL COMMERCIALLY RELEASED
- THIS LICENSE CANNOT BE USED FOR COMMERCIAL SERVICES, WHERE THE
  EXECUTABLE CONTAINING FMOD IS NOT SOLD, BUT THE DATA IS.
- WHEN USING FMOD, A CREDIT LINE IS REQUIRED IN EITHER DOCUMENTATION,
  OR 'ON SCREEN' FORMAT (IF POSSIBLE). IT SHOULD CONTAIN AT LEAST
  THE WORDS FMOD SOUND SYSTEM AND FIRELIGHT TECHNOLOGIES.
  LOGOS ARE AVAILABLE FOR BOX OR MANUAL ART, BUT ARE NOT MANDANTORY.
  AN EXAMPLE CREDIT COULD BE:

  FMOD Sound System, copyright © Firelight Technologies Pty, Ltd., 1994-2011.

  NOTE THIS IN ADVANCE, AS IT MUST BE DONE BEFORE SHIPPING YOUR
  PRODUCT WITH FMOD.
