Browse Source

Add copyright preamble to all sources.

looper
Ben Niemann 5 years ago
parent
commit
fdc6d7dc35
  1. 20
      3rdparty/csound/setup.py
  2. 20
      3rdparty/lilv/setup.py
  3. 20
      3rdparty/lv2/setup.py
  4. 20
      CMakeLists.txt
  5. 2
      NOTES.org
  6. 20
      bin/commit-check
  7. 20
      bin/noisicaä
  8. 20
      bin/noisipg
  9. 20
      bin/runpylint
  10. 20
      bin/runtests
  11. 20
      bin/runtests.py
  12. 20
      bin/setup_env.sh
  13. 193
      bin/update_license
  14. 23
      data/csound/blip.csnd
  15. 23
      data/csound/butterbp.csnd
  16. 23
      data/csound/butterbr.csnd
  17. 23
      data/csound/butterhp.csnd
  18. 23
      data/csound/butterlp.csnd
  19. 23
      data/csound/delay.csnd
  20. 23
      data/csound/reverb.csnd
  21. 23
      data/presets/light_revert.preset
  22. 20
      noisicaa/CMakeLists.txt
  23. 20
      noisicaa/__init__.py
  24. 20
      noisicaa/audio_playground.py
  25. 20
      noisicaa/audioproc/CMakeLists.txt
  26. 20
      noisicaa/audioproc/__init__.py
  27. 20
      noisicaa/audioproc/audioproc_client.py
  28. 20
      noisicaa/audioproc/audioproc_client_test.py
  29. 20
      noisicaa/audioproc/audioproc_process.py
  30. 20
      noisicaa/audioproc/exceptions.py
  31. 20
      noisicaa/audioproc/mutations.py
  32. 20
      noisicaa/audioproc/node.py
  33. 19
      noisicaa/audioproc/node_db.py
  34. 20
      noisicaa/audioproc/nodes/CMakeLists.txt
  35. 20
      noisicaa/audioproc/nodes/__init__.py
  36. 20
      noisicaa/audioproc/nodes/builtin.py
  37. 20
      noisicaa/audioproc/nodes/track_audio_source.py
  38. 20
      noisicaa/audioproc/nodes/track_control_source.py
  39. 20
      noisicaa/audioproc/nodes/track_event_source.py
  40. 20
      noisicaa/audioproc/ports.py
  41. 20
      noisicaa/audioproc/vm/CMakeLists.txt
  42. 20
      noisicaa/audioproc/vm/__init__.py
  43. 22
      noisicaa/audioproc/vm/audio_stream.cpp
  44. 22
      noisicaa/audioproc/vm/audio_stream.h
  45. 20
      noisicaa/audioproc/vm/audio_stream.pxd
  46. 20
      noisicaa/audioproc/vm/audio_stream.pyx
  47. 20
      noisicaa/audioproc/vm/audio_stream_test.py
  48. 22
      noisicaa/audioproc/vm/backend.cpp
  49. 22
      noisicaa/audioproc/vm/backend.h
  50. 20
      noisicaa/audioproc/vm/backend.pxd
  51. 19
      noisicaa/audioproc/vm/backend.pyx
  52. 22
      noisicaa/audioproc/vm/backend_ipc.cpp
  53. 22
      noisicaa/audioproc/vm/backend_ipc.h
  54. 20
      noisicaa/audioproc/vm/backend_ipc_test.pyx
  55. 22
      noisicaa/audioproc/vm/backend_null.cpp
  56. 22
      noisicaa/audioproc/vm/backend_null.h
  57. 22
      noisicaa/audioproc/vm/backend_portaudio.cpp
  58. 22
      noisicaa/audioproc/vm/backend_portaudio.h
  59. 20
      noisicaa/audioproc/vm/backend_test.pyx
  60. 22
      noisicaa/audioproc/vm/block_context.h
  61. 20
      noisicaa/audioproc/vm/block_context.pxd
  62. 20
      noisicaa/audioproc/vm/block_context.pyx
  63. 20
      noisicaa/audioproc/vm/block_data.capnp
  64. 22
      noisicaa/audioproc/vm/buffers.cpp
  65. 22
      noisicaa/audioproc/vm/buffers.h
  66. 20
      noisicaa/audioproc/vm/buffers.pxd
  67. 19
      noisicaa/audioproc/vm/buffers.pyx
  68. 20
      noisicaa/audioproc/vm/buffers_test.pyx
  69. 20
      noisicaa/audioproc/vm/compiler.py
  70. 20
      noisicaa/audioproc/vm/compiler_test.py
  71. 22
      noisicaa/audioproc/vm/control_value.cpp
  72. 22
      noisicaa/audioproc/vm/control_value.h
  73. 20
      noisicaa/audioproc/vm/control_value.pxd
  74. 20
      noisicaa/audioproc/vm/control_value.pyx
  75. 20
      noisicaa/audioproc/vm/engine.pyx
  76. 20
      noisicaa/audioproc/vm/engine_perftest.py
  77. 20
      noisicaa/audioproc/vm/engine_test.py
  78. 20
      noisicaa/audioproc/vm/graph.py
  79. 22
      noisicaa/audioproc/vm/host_data.cpp
  80. 22
      noisicaa/audioproc/vm/host_data.h
  81. 20
      noisicaa/audioproc/vm/host_data.pxd
  82. 20
      noisicaa/audioproc/vm/host_data.pyx
  83. 22
      noisicaa/audioproc/vm/host_system_csound.cpp
  84. 22
      noisicaa/audioproc/vm/host_system_csound.h
  85. 22
      noisicaa/audioproc/vm/host_system_lv2.cpp
  86. 22
      noisicaa/audioproc/vm/host_system_lv2.h
  87. 22
      noisicaa/audioproc/vm/message_queue.cpp
  88. 22
      noisicaa/audioproc/vm/message_queue.h
  89. 19
      noisicaa/audioproc/vm/message_queue.pxd
  90. 22
      noisicaa/audioproc/vm/misc.cpp
  91. 22
      noisicaa/audioproc/vm/misc.h
  92. 22
      noisicaa/audioproc/vm/opcodes.cpp
  93. 22
      noisicaa/audioproc/vm/opcodes.h
  94. 20
      noisicaa/audioproc/vm/opcodes.pxd
  95. 20
      noisicaa/audioproc/vm/opcodes_test.pyx
  96. 22
      noisicaa/audioproc/vm/processor.cpp
  97. 22
      noisicaa/audioproc/vm/processor.h
  98. 20
      noisicaa/audioproc/vm/processor.pxd
  99. 20
      noisicaa/audioproc/vm/processor.pyx
  100. 22
      noisicaa/audioproc/vm/processor_csound.cpp
  101. Some files were not shown because too many files have changed in this diff Show More

20
3rdparty/csound/setup.py vendored

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from distutils import core
from distutils.command.build import build
from distutils.command.install import install

20
3rdparty/lilv/setup.py vendored

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from distutils import core
from distutils.command.build import build
from distutils.command.install import install

20
3rdparty/lv2/setup.py vendored

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from distutils import core
from distutils.command.build import build
from distutils.command.install import install

20
CMakeLists.txt

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
cmake_minimum_required(VERSION 3.5)
project (noisicaä)

2
NOTES.org

@ -57,8 +57,6 @@
- use spaces for indentation in C++, too
- tweak C++ indentation
- C-o C-t to run tests
* Add copyright block to every source file :FR:
- also (text) data files
* Do SVG conversion at build time :FR:
- the stuff in SvgSymbol.strip_dom()
* ProcessorFluidSynth :FR:

20
bin/commit-check

@ -1,5 +1,25 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
BASEDIR=$(readlink -f "$(dirname "$0")")
(

20
bin/noisicaä

@ -1,5 +1,25 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
LIBDIR=$(readlink -f "$(dirname "$0")/../build")
(cd $LIBDIR && make) || exit 1

20
bin/noisipg

@ -1,5 +1,25 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
LIBDIR=$(readlink -f "$(dirname "$0")/..")
export PYTHONPATH="$LIBDIR:$PYTHONPATH"
export LD_LIBRARY_PATH=${VIRTUAL_ENV}/lib

20
bin/runpylint

@ -1,5 +1,25 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
BASEDIR=$(readlink -f "$(dirname "$0")/..")
python setup.py build
cd $BASEDIR/build/lib.linux-x86_64-3.5/

20
bin/runtests

@ -1,4 +1,24 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
export LD_LIBRARY_PATH=${VIRTUAL_ENV}/lib
exec python3 $(readlink -f "$(dirname "$0")/runtests.py") "$@"

20
bin/runtests.py

@ -1,5 +1,25 @@
#!/usr/bin/env python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import argparse
import itertools
import fnmatch

20
bin/setup_env.sh

@ -1,5 +1,25 @@
#!/bin/bash
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
if [ -z "$VIRTUAL_ENV" -o ! -d "$VIRTUAL_ENV" ]; then
echo >&2 "Not running in a virtualenv. Please set that up first."
exit 1

193
bin/update_license

@ -0,0 +1,193 @@
#!/usr/bin/env python
# -*- mode: python -*-
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import datetime
import fnmatch
import os
import os.path
import subprocess
import sys
import textwrap
DEFAULT_TYPEMAP = {
'*.py': 'text/x-python',
'*.pyx': 'text/x-python',
'*.pxd': 'text/x-python',
'*.cpp': 'text/x-c++',
'*.h': 'text/x-c++',
'*.sh': 'text/x-shellscript',
'*.capnp': 'text/x-capnp',
'CMakeLists.txt': 'text/x-cmake',
}
TYPE_PROPS = {
'text/x-python': (None, None, '# ', '#'),
'text/x-shellscript': (None, None, '# ', '#'),
'text/x-cmake': (None, None, '# ', '#'),
'text/x-c++': ('/*', ' */', ' * ', '//'),
'text/x-capnp': (None, None, '# ', None),
'application/xml': ('<!--', '-->', ' ', '<?'),
}
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
DIRS = [
('setup.py', '*', DEFAULT_TYPEMAP),
('CMakeLists.txt', '*', DEFAULT_TYPEMAP),
('bin', '*', DEFAULT_TYPEMAP),
('noisicaa', '*', DEFAULT_TYPEMAP),
('noisidev', '*', DEFAULT_TYPEMAP),
('3rdparty', 'setup.py', DEFAULT_TYPEMAP),
('data/csound', '*.csnd', {'*': 'application/xml'}),
('data/presets', '*.preset', {'*': 'application/xml'}),
]
SKIP_DIRS = [
'__pycache__',
'testdata',
]
SKIP_FILES = [
'*.pyc',
'*~',
'pylintrc',
]
LICENSE = textwrap.dedent("""\
Copyright (c) 2015-{year}, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
""").format(
year=datetime.date.today().year,
)
def rewrite_file(path, typemap):
for type_glob, file_type in typemap.items():
if fnmatch.fnmatch(os.path.basename(path), type_glob):
break
else:
file_type = subprocess.check_output(['/usr/bin/file', '--brief', '--mime-type', path]).decode('ascii').strip()
try:
block_start, block_end, line_prefix, header_prefix = TYPE_PROPS[file_type]
except KeyError:
raise ValueError("Unsupported file type %s for %s" % (file_type, path))
with open(path, 'r', encoding='utf-8') as fp:
orig_contents = fp.read()
contents = orig_contents
new_lines = []
in_license = False
license_found = False
for line in contents.splitlines():
if line == line_prefix + '@custom_license':
return
if line == line_prefix + '@begin:license':
in_license = True
license_found = True
new_lines.append(line)
for lline in LICENSE.splitlines():
new_lines.append((line_prefix + lline).rstrip())
elif line == line_prefix + '@end:license':
in_license = False
new_lines.append(line)
elif not in_license:
new_lines.append(line)
if not license_found:
new_lines = []
in_header = True
skip_blanks = False
for line in contents.splitlines():
if in_header and (not header_prefix or not line.startswith(header_prefix)):
in_header = False
if len(new_lines) > 0:
new_lines.append('')
if block_start:
new_lines.append(block_start)
new_lines.append(line_prefix + '@begin:license')
for lline in LICENSE.splitlines():
new_lines.append((line_prefix + lline).rstrip())
new_lines.append(line_prefix + '@end:license')
if block_end:
new_lines.append(block_end)
new_lines.append('')
skip_blanks = True
if not skip_blanks or line != '':
skip_blanks = False
new_lines.append(line)
contents = '\n'.join(new_lines) + '\n'
if contents != orig_contents:
with open(path, 'w', encoding='utf-8') as fp:
fp.write(contents)
print("Updated %s" % path)
def main(argv):
for root_name, file_glob, typemap in DIRS:
root_path = os.path.join(ROOT, root_name)
if os.path.isfile(root_path):
rewrite_file(root_path, typemap)
else:
for dir_path, dirs, files in os.walk(root_path):
for idx, dir_name in reversed(list(enumerate(dirs))):
if any(fnmatch.fnmatch(dir_name, skip_dir) for skip_dir in SKIP_DIRS):
del dirs[idx]
dirs.sort()
for file_name in sorted(files):
if any(fnmatch.fnmatch(file_name, skip_file) for skip_file in SKIP_FILES):
continue
if not fnmatch.fnmatch(file_name, file_glob):
continue
rewrite_file(os.path.join(dir_path, file_name), typemap)
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))

23
data/csound/blip.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Blip</display-name>
<ports>

23
data/csound/butterbp.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Butterworth Band-pass Filter</display-name>
<ports>

23
data/csound/butterbr.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Butterworth Band-reject Filter</display-name>
<ports>

23
data/csound/butterhp.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Butterworth High-pass Filter</display-name>
<ports>

23
data/csound/butterlp.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Butterworth Low-pass Filter</display-name>
<ports>

23
data/csound/delay.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Delay</display-name>
<ports>

23
data/csound/reverb.csnd

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<csound>
<display-name>Reverb</display-name>
<ports>

23
data/presets/light_revert.preset

@ -1,4 +1,27 @@
<?xml version="1.0"?>
<!--
@begin:license
Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@end:license
-->
<preset>
<display-name>Light Reverb</display-name>
<node uri="builtin://custom_csound"/>

20
noisicaa/CMakeLists.txt

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
add_python_package(
audio_playground.py
constants.py

20
noisicaa/__init__.py

@ -0,0 +1,20 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license

20
noisicaa/audio_playground.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import asyncio
import sys
import argparse

20
noisicaa/audioproc/CMakeLists.txt

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
add_python_package(
audioproc_client.py
audioproc_client_test.py

20
noisicaa/audioproc/__init__.py

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from .audioproc_client import AudioProcClientMixin
from .mutations import (
AddNode,

20
noisicaa/audioproc/audioproc_client.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from noisicaa import core

20
noisicaa/audioproc/audioproc_client_test.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import asyncio
import time
import unittest

20
noisicaa/audioproc/audioproc_process.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import asyncio
import functools
import logging

20
noisicaa/audioproc/exceptions.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
class Error(Exception):
pass

20
noisicaa/audioproc/mutations.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from noisicaa import node_db

20
noisicaa/audioproc/node.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from noisicaa import node_db

19
noisicaa/audioproc/node_db.py

@ -1,5 +1,24 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
class NodeDB(object):
def __init__(self):

20
noisicaa/audioproc/nodes/CMakeLists.txt

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
add_python_package(
builtin.py
track_audio_source.py

20
noisicaa/audioproc/nodes/__init__.py

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from .builtin import Sink
from .track_control_source import TrackControlSource
from .track_audio_source import TrackAudioSource

20
noisicaa/audioproc/nodes/builtin.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from noisicaa import node_db

20
noisicaa/audioproc/nodes/track_audio_source.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from noisicaa import node_db

20
noisicaa/audioproc/nodes/track_control_source.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from noisicaa import node_db

20
noisicaa/audioproc/nodes/track_event_source.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
import random

20
noisicaa/audioproc/ports.py

@ -1,5 +1,25 @@
#!/usr/bin/python3
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
import logging
from . import vm

20
noisicaa/audioproc/vm/CMakeLists.txt

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
add_python_package(
audio_stream_test.py
compiler.py

20
noisicaa/audioproc/vm/__init__.py

@ -1,3 +1,23 @@
# @begin:license
#
# Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# @end:license
from .engine import PipelineVM
from .compiler import compile_graph
from .audio_stream import (

22
noisicaa/audioproc/vm/audio_stream.cpp

@ -1,3 +1,25 @@
/*
* @begin:license
*
* Copyright (c) 2015-2017, Benjamin Niemann <pink@odahoda.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.