├── .clang-format ├── .gitignore ├── .gitlab-ci.yml ├── 3rd ├── CMakeLists.txt ├── ffts │ ├── .gitignore │ ├── .travis.yml │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── COPYRIGHT │ ├── Makefile.am │ ├── Makefile.in │ ├── README.md │ ├── aclocal.m4 │ ├── build_android.sh │ ├── build_iphone.sh │ ├── config.guess │ ├── config.h.in │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── depcomp │ ├── ffts.pc.cmake.in │ ├── ffts.pc.in │ ├── include │ │ └── ffts.h │ ├── install-sh │ ├── java │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── android │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ │ └── org.eclipse.ltk.core.refactoring.prefs │ │ │ ├── AndroidManifest.xml │ │ │ ├── ant.properties │ │ │ ├── build.xml │ │ │ ├── jni │ │ │ │ ├── Android.mk │ │ │ │ └── Application.mk │ │ │ ├── proguard-project.txt │ │ │ └── project.properties │ │ ├── jni │ │ │ └── ffts_jni.c │ │ └── src │ │ │ └── nz │ │ │ └── ac │ │ │ └── waikato │ │ │ └── ffts │ │ │ └── FFTS.java │ ├── ltmain.sh │ ├── m4 │ │ ├── ax_check_class.m4 │ │ ├── ax_check_classpath.m4 │ │ ├── ax_check_java_home.m4 │ │ ├── ax_check_java_plugin.m4 │ │ ├── ax_java_check_class.m4 │ │ ├── ax_java_options.m4 │ │ ├── ax_jni_include_dir.m4 │ │ ├── ax_prog_jar.m4 │ │ ├── ax_prog_java.m4 │ │ ├── ax_prog_java_cc.m4 │ │ ├── ax_prog_java_works.m4 │ │ ├── ax_prog_javac.m4 │ │ ├── ax_prog_javac_works.m4 │ │ ├── ax_prog_javadoc.m4 │ │ ├── ax_prog_javah.m4 │ │ ├── ax_try_compile_java.m4 │ │ └── ax_try_run_java.m4 │ ├── missing │ ├── src │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── arch │ │ │ ├── .gitignore │ │ │ ├── ChangeLog │ │ │ ├── LICENSE │ │ │ ├── Makefile.am │ │ │ ├── README │ │ │ ├── arm │ │ │ │ ├── .gitattributes │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ ├── arm-codegen.c │ │ │ │ ├── arm-codegen.h │ │ │ │ ├── arm-dis.c │ │ │ │ ├── arm-dis.h │ │ │ │ ├── arm-vfp-codegen.h │ │ │ │ ├── arm-wmmx.h │ │ │ │ ├── cmp_macros.th │ │ │ │ ├── dpi_macros.th │ │ │ │ ├── dpiops.sh │ │ │ │ ├── mov_macros.th │ │ │ │ ├── tramp.c │ │ │ │ ├── vfp_macros.th │ │ │ │ ├── vfpm_macros.th │ │ │ │ └── vfpops.sh │ │ │ ├── arm64 │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ └── arm64-codegen.h │ │ │ ├── ia64 │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ ├── codegen.c │ │ │ │ └── ia64-codegen.h │ │ │ ├── mips │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ ├── mips-codegen.h │ │ │ │ └── test.c │ │ │ ├── ppc │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ └── ppc-codegen.h │ │ │ ├── s390x │ │ │ │ ├── .gitignore │ │ │ │ ├── ChangeLog │ │ │ │ ├── Makefile.am │ │ │ │ ├── s390x-codegen.h │ │ │ │ └── tramp.c │ │ │ ├── sparc │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ ├── sparc-codegen.h │ │ │ │ ├── test.c │ │ │ │ └── tramp.c │ │ │ ├── x64 │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ └── x64-codegen.h │ │ │ └── x86 │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile.am │ │ │ │ └── x86-codegen.h │ │ ├── codegen.c │ │ ├── codegen.h │ │ ├── codegen_arm.h │ │ ├── codegen_sse.h │ │ ├── ffts.c │ │ ├── ffts_attributes.h │ │ ├── ffts_chirp_z.c │ │ ├── ffts_chirp_z.h │ │ ├── ffts_cpu.c │ │ ├── ffts_cpu.h │ │ ├── ffts_dd.h │ │ ├── ffts_internal.h │ │ ├── ffts_nd.c │ │ ├── ffts_nd.h │ │ ├── ffts_real.c │ │ ├── ffts_real.h │ │ ├── ffts_real_nd.c │ │ ├── ffts_real_nd.h │ │ ├── ffts_static.c │ │ ├── ffts_static.h │ │ ├── ffts_transpose.c │ │ ├── ffts_transpose.h │ │ ├── ffts_trig.c │ │ ├── ffts_trig.h │ │ ├── macros-alpha.h │ │ ├── macros-altivec.h │ │ ├── macros-avx.h │ │ ├── macros-neon.h │ │ ├── macros-sse.h │ │ ├── macros.h │ │ ├── neon.h │ │ ├── neon.s │ │ ├── neon_static.s │ │ ├── patterns.h │ │ ├── sequitur.h │ │ ├── types.h │ │ ├── vfp.h │ │ └── vfp.s │ └── tests │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── cpu_test.c │ │ ├── test.c │ │ └── trig_test.c ├── include │ ├── oscpkt │ │ └── oscpkt.hh │ ├── portaudio │ │ ├── portaudio.h │ │ └── portaudiocpp │ │ │ ├── AutoSystem.hxx │ │ │ ├── BlockingStream.hxx │ │ │ ├── CFunCallbackStream.hxx │ │ │ ├── CallbackInterface.hxx │ │ │ ├── CallbackStream.hxx │ │ │ ├── CppFunCallbackStream.hxx │ │ │ ├── Device.hxx │ │ │ ├── DirectionSpecificStreamParameters.hxx │ │ │ ├── Exception.hxx │ │ │ ├── HostApi.hxx │ │ │ ├── InterfaceCallbackStream.hxx │ │ │ ├── MemFunCallbackStream.hxx │ │ │ ├── PortAudioCpp.hxx │ │ │ ├── SampleDataFormat.hxx │ │ │ ├── Stream.hxx │ │ │ ├── StreamParameters.hxx │ │ │ ├── System.hxx │ │ │ ├── SystemDeviceIterator.hxx │ │ │ └── SystemHostApiIterator.hxx │ └── sndfile │ │ ├── sndfile.h │ │ └── sndfile.hh ├── kissfft │ ├── .gitignore │ ├── CHANGELOG │ ├── CMakeLists.txt │ ├── COPYING │ ├── Makefile │ ├── README │ ├── README.md │ ├── README.simd │ ├── TIPS │ ├── _kiss_fft_guts.h │ ├── kiss_fft.c │ ├── kiss_fft.h │ ├── kiss_fft_double.c │ ├── kiss_fft_double.h │ ├── kiss_fft_double_redefines.h │ ├── kiss_fft_float.c │ ├── kiss_fft_float.h │ ├── kiss_fft_float_redefines.h │ ├── kiss_fftr_double.c │ ├── kiss_fftr_double.h │ ├── kiss_fftr_double_redefines.h │ ├── kiss_fftr_float.c │ ├── kiss_fftr_float.h │ ├── kiss_fftr_float_redefines.h │ ├── kissfft.hh │ ├── test │ │ ├── Makefile │ │ ├── benchfftw.c │ │ ├── benchkiss.c │ │ ├── compfft.py │ │ ├── doit.c │ │ ├── fastfir.py │ │ ├── fft.py │ │ ├── mk_test.py │ │ ├── pstats.c │ │ ├── pstats.h │ │ ├── tailscrap.m │ │ ├── test_real.c │ │ ├── test_vs_dft.c │ │ ├── testcpp.cc │ │ ├── testkiss.py │ │ └── twotonetest.c │ └── tools │ │ ├── Makefile │ │ ├── fftutil.c │ │ ├── kfc.c │ │ ├── kfc.h │ │ ├── kiss_fastfir.c │ │ ├── kiss_fftnd.c │ │ ├── kiss_fftnd.h │ │ ├── kiss_fftndr.c │ │ ├── kiss_fftndr.h │ │ ├── kiss_fftr.c │ │ ├── kiss_fftr.h │ │ └── psdpng.c ├── lib │ └── windows-x86_64 │ │ ├── portaudio │ │ ├── portaudio.lib │ │ └── portaudio_x64.dll │ │ └── sndfile │ │ ├── libsndfile-1.def │ │ ├── libsndfile-1.dll │ │ └── libsndfile-1.lib └── pybind11 │ ├── .appveyor.yml │ ├── .clang-format │ ├── .clang-tidy │ ├── .cmake-format.yaml │ ├── .codespell-ignore-lines │ ├── .gitattributes │ ├── .github │ ├── CODEOWNERS │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE │ │ ├── bug-report.yml │ │ └── config.yml │ ├── dependabot.yml │ ├── labeler.yml │ ├── labeler_merged.yml │ ├── matchers │ │ └── pylint.json │ ├── pull_request_template.md │ └── workflows │ │ ├── ci.yml │ │ ├── configure.yml │ │ ├── emscripten.yaml │ │ ├── format.yml │ │ ├── labeler.yml │ │ ├── pip.yml │ │ └── upstream.yml │ ├── .gitignore │ ├── .pre-commit-config.yaml │ ├── .readthedocs.yml │ ├── CMakeLists.txt │ ├── LICENSE │ ├── MANIFEST.in │ ├── README.rst │ ├── SECURITY.md │ ├── docs │ ├── Doxyfile │ ├── Makefile │ ├── _static │ │ └── css │ │ │ └── custom.css │ ├── advanced │ │ ├── cast │ │ │ ├── chrono.rst │ │ │ ├── custom.rst │ │ │ ├── eigen.rst │ │ │ ├── functional.rst │ │ │ ├── index.rst │ │ │ ├── overview.rst │ │ │ ├── stl.rst │ │ │ └── strings.rst │ │ ├── classes.rst │ │ ├── embedding.rst │ │ ├── exceptions.rst │ │ ├── functions.rst │ │ ├── misc.rst │ │ ├── pycpp │ │ │ ├── index.rst │ │ │ ├── numpy.rst │ │ │ ├── object.rst │ │ │ └── utilities.rst │ │ └── smart_ptrs.rst │ ├── basics.rst │ ├── benchmark.py │ ├── benchmark.rst │ ├── changelog.rst │ ├── classes.rst │ ├── cmake │ │ └── index.rst │ ├── compiling.rst │ ├── conf.py │ ├── faq.rst │ ├── index.rst │ ├── installing.rst │ ├── limitations.rst │ ├── pybind11-logo.png │ ├── pybind11_vs_boost_python1.png │ ├── pybind11_vs_boost_python1.svg │ ├── pybind11_vs_boost_python2.png │ ├── pybind11_vs_boost_python2.svg │ ├── reference.rst │ ├── release.rst │ ├── requirements.in │ ├── requirements.txt │ └── upgrade.rst │ ├── include │ └── pybind11 │ │ ├── attr.h │ │ ├── buffer_info.h │ │ ├── cast.h │ │ ├── chrono.h │ │ ├── common.h │ │ ├── complex.h │ │ ├── detail │ │ ├── class.h │ │ ├── common.h │ │ ├── cpp_conduit.h │ │ ├── descr.h │ │ ├── exception_translation.h │ │ ├── init.h │ │ ├── internals.h │ │ ├── type_caster_base.h │ │ ├── typeid.h │ │ └── value_and_holder.h │ │ ├── eigen.h │ │ ├── eigen │ │ ├── common.h │ │ ├── matrix.h │ │ └── tensor.h │ │ ├── embed.h │ │ ├── eval.h │ │ ├── functional.h │ │ ├── gil.h │ │ ├── gil_safe_call_once.h │ │ ├── iostream.h │ │ ├── numpy.h │ │ ├── operators.h │ │ ├── options.h │ │ ├── pybind11.h │ │ ├── pytypes.h │ │ ├── stl.h │ │ ├── stl │ │ └── filesystem.h │ │ ├── stl_bind.h │ │ ├── type_caster_pyobject_ptr.h │ │ └── typing.h │ ├── noxfile.py │ ├── pybind11 │ ├── __init__.py │ ├── __main__.py │ ├── _version.py │ ├── commands.py │ ├── py.typed │ └── setup_helpers.py │ ├── pyproject.toml │ ├── setup.cfg │ ├── setup.py │ ├── tests │ ├── CMakeLists.txt │ ├── conftest.py │ ├── constructor_stats.h │ ├── cross_module_gil_utils.cpp │ ├── cross_module_interleaved_error_already_set.cpp │ ├── eigen_tensor_avoid_stl_array.cpp │ ├── env.py │ ├── exo_planet_c_api.cpp │ ├── exo_planet_pybind11.cpp │ ├── extra_python_package │ │ ├── pytest.ini │ │ └── test_files.py │ ├── extra_setuptools │ │ ├── pytest.ini │ │ └── test_setuphelper.py │ ├── home_planet_very_lonely_traveler.cpp │ ├── local_bindings.h │ ├── object.h │ ├── pybind11_cross_module_tests.cpp │ ├── pybind11_tests.cpp │ ├── pybind11_tests.h │ ├── pyproject.toml │ ├── pytest.ini │ ├── requirements.txt │ ├── test_async.cpp │ ├── test_async.py │ ├── test_buffers.cpp │ ├── test_buffers.py │ ├── test_builtin_casters.cpp │ ├── test_builtin_casters.py │ ├── test_call_policies.cpp │ ├── test_call_policies.py │ ├── test_callbacks.cpp │ ├── test_callbacks.py │ ├── test_chrono.cpp │ ├── test_chrono.py │ ├── test_class.cpp │ ├── test_class.py │ ├── test_cmake_build │ │ ├── CMakeLists.txt │ │ ├── embed.cpp │ │ ├── installed_embed │ │ │ └── CMakeLists.txt │ │ ├── installed_function │ │ │ └── CMakeLists.txt │ │ ├── installed_target │ │ │ └── CMakeLists.txt │ │ ├── main.cpp │ │ ├── subdirectory_embed │ │ │ └── CMakeLists.txt │ │ ├── subdirectory_function │ │ │ └── CMakeLists.txt │ │ ├── subdirectory_target │ │ │ └── CMakeLists.txt │ │ └── test.py │ ├── test_const_name.cpp │ ├── test_const_name.py │ ├── test_constants_and_functions.cpp │ ├── test_constants_and_functions.py │ ├── test_copy_move.cpp │ ├── test_copy_move.py │ ├── test_cpp_conduit.cpp │ ├── test_cpp_conduit.py │ ├── test_cpp_conduit_traveler_bindings.h │ ├── test_cpp_conduit_traveler_types.h │ ├── test_custom_type_casters.cpp │ ├── test_custom_type_casters.py │ ├── test_custom_type_setup.cpp │ ├── test_custom_type_setup.py │ ├── test_docstring_options.cpp │ ├── test_docstring_options.py │ ├── test_eigen_matrix.cpp │ ├── test_eigen_matrix.py │ ├── test_eigen_tensor.cpp │ ├── test_eigen_tensor.inl │ ├── test_eigen_tensor.py │ ├── test_embed │ │ ├── CMakeLists.txt │ │ ├── catch.cpp │ │ ├── external_module.cpp │ │ ├── test_interpreter.cpp │ │ ├── test_interpreter.py │ │ └── test_trampoline.py │ ├── test_enum.cpp │ ├── test_enum.py │ ├── test_eval.cpp │ ├── test_eval.py │ ├── test_eval_call.py │ ├── test_exceptions.cpp │ ├── test_exceptions.h │ ├── test_exceptions.py │ ├── test_factory_constructors.cpp │ ├── test_factory_constructors.py │ ├── test_gil_scoped.cpp │ ├── test_gil_scoped.py │ ├── test_iostream.cpp │ ├── test_iostream.py │ ├── test_kwargs_and_defaults.cpp │ ├── test_kwargs_and_defaults.py │ ├── test_local_bindings.cpp │ ├── test_local_bindings.py │ ├── test_methods_and_attributes.cpp │ ├── test_methods_and_attributes.py │ ├── test_modules.cpp │ ├── test_modules.py │ ├── test_multiple_inheritance.cpp │ ├── test_multiple_inheritance.py │ ├── test_numpy_array.cpp │ ├── test_numpy_array.py │ ├── test_numpy_dtypes.cpp │ ├── test_numpy_dtypes.py │ ├── test_numpy_vectorize.cpp │ ├── test_numpy_vectorize.py │ ├── test_opaque_types.cpp │ ├── test_opaque_types.py │ ├── test_operator_overloading.cpp │ ├── test_operator_overloading.py │ ├── test_pickling.cpp │ ├── test_pickling.py │ ├── test_python_multiple_inheritance.cpp │ ├── test_python_multiple_inheritance.py │ ├── test_pytypes.cpp │ ├── test_pytypes.py │ ├── test_sequences_and_iterators.cpp │ ├── test_sequences_and_iterators.py │ ├── test_smart_ptr.cpp │ ├── test_smart_ptr.py │ ├── test_stl.cpp │ ├── test_stl.py │ ├── test_stl_binders.cpp │ ├── test_stl_binders.py │ ├── test_tagbased_polymorphic.cpp │ ├── test_tagbased_polymorphic.py │ ├── test_thread.cpp │ ├── test_thread.py │ ├── test_type_caster_pyobject_ptr.cpp │ ├── test_type_caster_pyobject_ptr.py │ ├── test_type_caster_std_function_specializations.cpp │ ├── test_type_caster_std_function_specializations.py │ ├── test_union.cpp │ ├── test_union.py │ ├── test_unnamed_namespace_a.cpp │ ├── test_unnamed_namespace_a.py │ ├── test_unnamed_namespace_b.cpp │ ├── test_unnamed_namespace_b.py │ ├── test_vector_unique_ptr_member.cpp │ ├── test_vector_unique_ptr_member.py │ ├── test_virtual_functions.cpp │ ├── test_virtual_functions.py │ ├── valgrind-numpy-scipy.supp │ └── valgrind-python.supp │ └── tools │ ├── FindCatch.cmake │ ├── FindEigen3.cmake │ ├── FindPythonLibsNew.cmake │ ├── JoinPaths.cmake │ ├── check-style.sh │ ├── cmake_uninstall.cmake.in │ ├── codespell_ignore_lines_from_errors.py │ ├── libsize.py │ ├── make_changelog.py │ ├── pybind11.pc.in │ ├── pybind11Common.cmake │ ├── pybind11Config.cmake.in │ ├── pybind11GuessPythonExtSuffix.cmake │ ├── pybind11NewTools.cmake │ ├── pybind11Tools.cmake │ ├── pyproject.toml │ ├── setup_global.py.in │ ├── setup_main.py.in │ └── test-pybind11GuessPythonExtSuffix.cmake ├── CMakeLists.txt ├── ChangeLog.txt ├── Contributors.md ├── LICENSE.md ├── Readme.md ├── cmake_modules ├── Adjust3rdPartyLibraries.cmake ├── FindFFTS.cmake ├── FindFLAC.cmake ├── FindIPP.cmake ├── FindJack.cmake ├── FindKissFFT.cmake ├── FindMatlab.cmake ├── FindMaxSDK.cmake ├── FindOggVorbis.cmake ├── FindPortaudio.cmake ├── FindSndFile.cmake ├── FindSphinx.cmake ├── Matlabdef.def ├── PackageConfig.cmake ├── adjust_test_environment.cmake ├── change_dependency_installname.sh ├── list_all_target_properties.txt ├── package_resources │ ├── VISR-launchagent.plist.in │ ├── productbuild_postscript.sh.in │ └── welcome.txt.in ├── postscript.sh ├── postscript.sh.in ├── resources │ ├── s3a_logo.icns │ ├── s3a_logo.jpg │ └── s3a_logo.png └── s3a_logo.png ├── config ├── bbc │ ├── bbc-listening-room-full.xml │ ├── bs2051-0+2+0.xml │ ├── bs2051-0+5+0.xml │ ├── bs2051-2+5+0-speakers-s3a.txt │ ├── bs2051-2+5+0.xml │ ├── bs2051-3+7+0-speakers-s3a.txt │ ├── bs2051-4+5+0-speakers-s3a.txt │ ├── bs2051-4+5+0.xml │ ├── bs2051-4+5+1-speakers-s3a.txt │ ├── bs2051-4+9+0-speakers-s3a.txt │ ├── bs2051-4+9+0.xml │ ├── bs2051-9+10+3-speakers-s3a.txt │ ├── bs2051-9+10+3.xml │ ├── listeningroomspeakers-s3a.txt │ ├── scripts │ │ └── createBBCConfigs.m │ └── speaker_config_original │ │ ├── bs2051-0+2+0-speakers.txt │ │ ├── bs2051-0+5+0-speakers.txt │ │ ├── bs2051-2+5+0-speakers.txt │ │ ├── bs2051-3+7+0-speakers.txt │ │ ├── bs2051-4+5+0-speakers.txt │ │ ├── bs2051-4+5+1-speakers.txt │ │ ├── bs2051-4+9+0-speakers.txt │ │ ├── bs2051-9+10+3-speakers.txt │ │ └── listeningroomspeakers.txt ├── filters │ ├── random_phase_allpass_64ch_1024taps.wav │ ├── random_phase_allpass_64ch_128taps.wav │ ├── random_phase_allpass_64ch_256taps.wav │ ├── random_phase_allpass_64ch_512taps.wav │ ├── random_phase_allpass_64ch_512taps_16bit.wav │ └── random_phase_allpass_64ch_512taps_32bit.wav ├── generic │ ├── bs2051-0+2+0-no-subwoofer.xml │ ├── bs2051-0+2+0-rear-fading.xml │ ├── bs2051-0+2+0.xml │ ├── bs2051-0+5+0-no-subwoofer.xml │ ├── bs2051-0+5+0.xml │ ├── bs2051-2+5+0-no-subwoofer.xml │ ├── bs2051-2+5+0.xml │ ├── bs2051-3+7+0-no-subwoofer.xml │ ├── bs2051-3+7+0.xml │ ├── bs2051-4+5+0-no-subwoofer.xml │ ├── bs2051-4+5+0.xml │ ├── bs2051-4+5+1-no-subwoofer.xml │ ├── bs2051-4+5+1.xml │ ├── bs2051-4+9+0-no-subwoofer.xml │ ├── bs2051-4+9+0.xml │ ├── bs2051-9+10+3-no-subwoofers.xml │ ├── bs2051-9+10+3-subwoofers-xover.xml │ ├── bs2051-9+10+3.xml │ ├── decode_N8_P40_t-design_t8_P40.txt │ ├── downmix_matrices │ │ ├── 22_2_to_2_0.dat │ │ └── downmix_coefs.mat │ ├── octahedron.xml │ ├── scripts │ │ └── createBS2051Configs.py │ ├── stereo.xml │ └── t-design_t8_P40.txt ├── isvr │ ├── audioIfc │ │ ├── jackComplexConf.json │ │ ├── jackDefConf.json │ │ ├── jackPortConf.json │ │ ├── jackSimpleConf.json │ │ └── portAudioDefConf.json │ ├── audiolab_22speakers.xml │ ├── audiolab_22speakers_1subwoofer.xml │ ├── audiolab_39speakers.xml │ ├── audiolab_39speakers_1subwoofer.xml │ ├── audiolab_5.1_1subwoofer.xml │ ├── audiolab_9.1_1subwoofer.xml │ ├── audiolab_cube_1subwoofer.xml │ ├── audiolab_stereo_1sub_with_rerouting.xml │ ├── audiolab_stereo_1subwoofer.xml │ ├── bak │ │ ├── 22.1_audiolab.txt │ │ ├── 5.1_audiolab.txt │ │ ├── 9.1_audiolab.txt │ │ ├── cube_audiolab.txt │ │ ├── full_39_loudspeaker_layout_audiolab.txt │ │ └── stereo_audiolab.txt │ ├── data │ │ ├── audiolab_gain_delay.xls │ │ └── gains_distances.mat │ ├── scripts │ │ ├── createIsvrConfigs.m │ │ ├── createSphereConfig.m │ │ ├── sparSpeakerPos.m │ │ └── writeArrayConfigXml.m │ ├── sphere_30channels_1subwoofer.xml │ └── sphere_30channels_1subwoofer_crossover.xml └── surrey │ ├── 2.0_surrey.txt │ ├── 22.0_surrey.txt │ ├── 5.0_surrey.txt │ ├── 9.0_surrey.txt │ ├── obsolete_configurations │ ├── 22.0_surrey_mod_DM.txt │ ├── 22.1_surrey.txt │ ├── 5.1_surrey.txt │ ├── 9.0_surrey_mod_DM.txt │ └── 9.1_surrey.txt │ └── speaker_configuration_surrey_sphere.xml ├── doc ├── CMakeLists.txt ├── apidoc │ ├── about.rst │ ├── builtin_component_library.rst │ ├── conf.py.in │ ├── create-build-environment.rst │ ├── css │ │ └── custom.css │ ├── elementary_functions_library.rst │ ├── git-workflow.rst │ ├── index.rst │ ├── objectmodel_library.rst │ ├── runtime_library.rst │ └── visr-apidoc.rst ├── contributing │ ├── VISR_corporate_contributor_licence_agreement_v1.1.docx │ ├── VISR_corporate_contributor_licence_agreement_v1.1.pdf │ ├── VISR_individual_contributor_licence_agreement_v1.1.docx │ └── VISR_individual_contributor_licence_agreement_v1.1.pdf ├── doxygen │ ├── Doxyfile.in │ ├── build.dox │ ├── installation.dox │ ├── jackconf.dox │ ├── libobjectmodel.dox │ ├── mainpage.dox │ ├── max_msp_externals.dox │ ├── namespaces.dox │ ├── portaudioconf.dox │ └── python_support.dox ├── images │ ├── git-model-gitflow.png │ ├── jackexample.jpeg │ ├── jacksimpleexample.jpeg │ ├── s3a_logo_small.png │ ├── visr_bst │ │ ├── dynamic_hrir_synthesis.png │ │ ├── hoa_object_to_binaural_renderer.png │ │ ├── hoa_to_binaural_renderer.png │ │ ├── object_based_scene_renderer.png │ │ ├── object_to_virtual_loudspeaker_renderer.png │ │ ├── transaural_array_renderer.png │ │ ├── virtual_loudspeaker_renderer.png │ │ ├── visr_atomic_component.png │ │ ├── visr_component_schematic.png │ │ └── visr_composite_component.png │ ├── visr_macos_installer.png │ ├── visr_macos_installer_customize.png │ ├── visr_object_based_object_model_hierarchy.png │ ├── visr_python_tutorial │ │ ├── listening_test_gui.png │ │ ├── max_msp_example.png │ │ ├── object_renderer_plugin.png │ │ ├── object_renderer_signal_flow.png │ │ ├── offline_simulation_audio_signal.png │ │ ├── offline_simulation_energy_direction_difference.png │ │ ├── offline_simulation_gains.png │ │ ├── panning_comparison.png │ │ ├── vbap_panner.png │ │ ├── vbap_panner_auralisation.png │ │ ├── visr_atomic_component.png │ │ ├── visr_component_schematic.png │ │ └── visr_composite_component.png │ ├── windows_environment_variables_editor.png │ └── windows_installer.png ├── userdoc │ ├── about.rst │ ├── binaural-synthesis-toolkit.rst │ ├── conf.py.in │ ├── css │ │ └── custom.css │ ├── download.rst │ ├── getting-started.rst │ ├── getting-visr.rst │ ├── index.rst │ ├── installation.rst │ ├── loudspeaker-config-file-format.inc │ ├── object-based-audio-with-visr.rst │ ├── object-model.inc │ ├── parameter-subsystem.rst │ ├── rcl_component_documentation.rst │ ├── references.rst │ ├── references_binaural_synthesis_toolkit.bib │ ├── references_main.bib │ ├── references_visr_introduction.bib │ ├── sourcecode.rst │ ├── support.rst │ ├── time-api.rst │ ├── time-frequency-processing.rst │ ├── using-standalone-renderers.rst │ ├── visr-component-api.rst │ └── visr-python-tutorial.rst └── userdoc_unused_files │ ├── examples.rst │ ├── people.rst │ ├── tutorials.rst │ └── visr-principles.rst ├── resources └── s3a_logo.png └── src ├── CMakeLists.txt ├── apps ├── CMakeLists.txt ├── baseline_renderer │ ├── CMakeLists.txt │ ├── doc │ │ └── baseline_renderer_usage.dox │ ├── files │ │ └── quasiAllpassFIR_f64_n63_initializer_list.txt │ ├── main.cpp │ ├── options.cpp │ ├── options.hpp │ └── python │ │ ├── setListenerPosition.py │ │ ├── set_channel_object.py │ │ ├── set_diffuse_source.py │ │ ├── set_hoa_source.py │ │ ├── set_planewave.py │ │ └── set_pointsource.py ├── feedthrough │ ├── CMakeLists.txt │ ├── main.cpp │ ├── options.cpp │ ├── options.hpp │ ├── signal_flow.cpp │ └── signal_flow.hpp ├── matrix_convolver │ ├── CMakeLists.txt │ ├── init_filter_matrix.cpp │ ├── init_filter_matrix.hpp │ ├── main.cpp │ ├── options.cpp │ └── options.hpp ├── python_runner │ ├── CMakeLists.txt │ ├── main.cpp │ ├── options.cpp │ └── options.hpp ├── time_frequency_feedthrough │ ├── CMakeLists.txt │ └── main.cpp └── visr_renderer │ ├── CMakeLists.txt │ ├── doc │ └── visr_renderer_usage.dox │ ├── files │ └── quasiAllpassFIR_f64_n63_initializer_list.txt │ ├── main.cpp │ ├── options.cpp │ └── options.hpp ├── libapputilities ├── CMakeLists.txt ├── export_symbols.hpp ├── options.cpp └── options.hpp ├── libaudiointerfaces ├── CMakeLists.txt ├── audio_interface.cpp ├── audio_interface.hpp ├── audio_interface_factory.cpp ├── audio_interface_factory.hpp ├── export_symbols.hpp ├── jack_interface.cpp ├── jack_interface.hpp ├── portaudio_interface.cpp ├── portaudio_interface.hpp └── test │ ├── CMakeLists.txt │ └── audio_interface_configuration.cpp ├── libefl ├── CMakeLists.txt ├── aligned_array.hpp ├── alignment.hpp ├── armv7l_neon_32bit │ ├── CMakeLists.txt │ ├── initialise_library.cpp │ ├── initialise_library.hpp │ ├── vector_add.cpp │ ├── vector_functions.hpp │ ├── vector_multiply.cpp │ └── vector_multiply_add.cpp ├── basic_matrix.cpp ├── basic_matrix.hpp ├── basic_vector.cpp ├── basic_vector.hpp ├── cartesian_spherical_conversion.hpp ├── db_linear_conversion.hpp ├── degree_radian_conversion.hpp ├── denormalised_number_handling.cpp ├── denormalised_number_handling.hpp ├── error_codes.cpp ├── error_codes.hpp ├── export_symbols.hpp ├── filter_functions.cpp ├── filter_functions.hpp ├── function_wrapper.hpp ├── initialise_library.cpp ├── initialise_library.hpp ├── intel_x86_64 │ ├── CMakeLists.txt │ ├── cpu_features.cpp │ ├── cpu_features.hpp │ ├── initialise_library.cpp │ ├── initialise_library.hpp │ ├── vector_functions.hpp │ ├── vector_multiply.cpp │ ├── vector_multiply_add.cpp │ └── vector_ramp_scaling.cpp ├── lagrange_coefficient_calculator.cpp ├── lagrange_coefficient_calculator.hpp ├── matrix_functions.cpp ├── matrix_functions.hpp ├── reference │ ├── filter_functions.cpp │ ├── filter_functions.hpp │ ├── filter_functions_impl.hpp │ ├── vector_conversions.cpp │ ├── vector_conversions.hpp │ ├── vector_conversions_impl.hpp │ ├── vector_functions.cpp │ ├── vector_functions.hpp │ └── vector_functions_impl.hpp ├── test │ ├── CMakeLists.txt │ ├── complex_multiply.cpp │ ├── lagrange_interpolator.cpp │ ├── python │ │ └── lagrange.py │ └── test_main.cpp ├── vector_conversions.cpp ├── vector_conversions.hpp ├── vector_functions.cpp └── vector_functions.hpp ├── libmexsupport ├── CMakeLists.txt ├── export_symbol.hpp ├── mex_wrapper.cpp └── mex_wrapper.hpp ├── libobjectmodel ├── CMakeLists.txt ├── channel_object.cpp ├── channel_object.hpp ├── channel_object_parser.cpp ├── channel_object_parser.hpp ├── diffuse_source.cpp ├── diffuse_source.hpp ├── diffuse_source_parser.cpp ├── diffuse_source_parser.hpp ├── export_symbols.hpp ├── hoa_source.cpp ├── hoa_source.hpp ├── hoa_source_parser.cpp ├── hoa_source_parser.hpp ├── object.cpp ├── object.hpp ├── object_factory.cpp ├── object_factory.hpp ├── object_parser.cpp ├── object_parser.hpp ├── object_type.cpp ├── object_type.hpp ├── object_vector.cpp ├── object_vector.hpp ├── object_vector_parser.cpp ├── object_vector_parser.hpp ├── plane_wave.cpp ├── plane_wave.hpp ├── plane_wave_parser.cpp ├── plane_wave_parser.hpp ├── point_source.cpp ├── point_source.hpp ├── point_source_extent.cpp ├── point_source_extent.hpp ├── point_source_extent_parser.cpp ├── point_source_extent_parser.hpp ├── point_source_parser.cpp ├── point_source_parser.hpp ├── point_source_with_diffuseness.cpp ├── point_source_with_diffuseness.hpp ├── point_source_with_diffuseness_parser.cpp ├── point_source_with_diffuseness_parser.hpp ├── point_source_with_reverb.cpp ├── point_source_with_reverb.hpp ├── point_source_with_reverb_parser.cpp ├── point_source_with_reverb_parser.hpp └── test │ ├── CMakeLists.txt │ ├── audio_object_parser.cpp │ ├── channel_object_parser.cpp │ ├── data │ └── point_source_with_reverb_1.json │ ├── instantiation.cpp │ ├── object_vector_assign.cpp │ ├── point_source_with_reverb.cpp │ ├── reverb_object_parser.cpp │ ├── reverb_object_parser.h │ └── test_main.cpp ├── libpanning ├── AllRAD.cpp ├── AllRAD.h ├── CAP.cpp ├── CAP.h ├── CAP_VBAP.cpp ├── CAP_VBAP.h ├── CMakeLists.txt ├── LoudspeakerArray.cpp ├── LoudspeakerArray.h ├── VBAP.cpp ├── VBAP.h ├── XYZ.cpp ├── XYZ.h ├── defs.h ├── export_symbols.hpp └── test │ ├── CMakeLists.txt │ ├── allrad.cpp │ ├── cap.cpp │ ├── loudspeaker_array.cpp │ ├── matlab │ ├── arrays │ │ ├── decodeB2VBAP.txt │ │ ├── decode_N8_P40_t-design_t8_P40.txt │ │ ├── decode_N8_P40_t-design_t8_P40.txt.cpp │ │ ├── octahedron.txt │ │ ├── octahedron.xml │ │ ├── raw │ │ │ ├── des.3.40.8.txt │ │ │ ├── des.3.80.11.txt │ │ │ └── fliege196.txt │ │ ├── t-design_t8_P40.txt │ │ ├── t-design_t8_P40.xml │ │ └── t-design_t8_P40.xml.cpp │ ├── calc_decode.m │ ├── createSubwooferConfig.m │ ├── d_factorial.m │ ├── encodeObjectHoa.m │ ├── legendre_associated_normalized_N3D.m │ ├── plots │ │ ├── Y(1,-1)_t-8-40.eps │ │ └── test.eps │ ├── readArrayConfigTxt.m │ ├── readArrayConfigXml.m │ ├── spherical_harmonic_N3D.m │ ├── spherical_harmonic_N3D_xyz.m │ ├── visualiseSetup.m │ └── writeArrayConfigXml.m │ ├── referencedata │ └── decodeB2VBAP.txt │ ├── test_main.cpp │ ├── testoutput │ └── .gitignore │ └── vbap.cpp ├── libpanningdsp ├── CMakeLists.txt ├── export_symbols.hpp ├── initialise_parameter_library.cpp ├── initialise_parameter_library.hpp ├── panning_gain_matrix.cpp ├── panning_gain_matrix.hpp ├── panning_matrix_parameter.cpp ├── panning_matrix_parameter.hpp └── types.hpp ├── libpml ├── CMakeLists.txt ├── array_configuration.cpp ├── array_configuration.hpp ├── biquad_parameter.cpp ├── biquad_parameter.hpp ├── double_buffering_protocol.cpp ├── double_buffering_protocol.hpp ├── empty_parameter_config.cpp ├── empty_parameter_config.hpp ├── export_symbols.hpp ├── filter_routing_parameter.cpp ├── filter_routing_parameter.hpp ├── indexed_value_parameter.cpp ├── indexed_value_parameter.hpp ├── initialise_parameter_library.cpp ├── initialise_parameter_library.hpp ├── interpolation_parameter.cpp ├── interpolation_parameter.hpp ├── listener_position.cpp ├── listener_position.hpp ├── matrix_parameter.cpp ├── matrix_parameter.hpp ├── matrix_parameter_config.cpp ├── matrix_parameter_config.hpp ├── message_queue_protocol.cpp ├── message_queue_protocol.hpp ├── object_vector.cpp ├── object_vector.hpp ├── scalar_parameter.cpp ├── scalar_parameter.hpp ├── shared_data_protocol.cpp ├── shared_data_protocol.hpp ├── signal_routing_parameter.cpp ├── signal_routing_parameter.hpp ├── sparse_gain_routing_parameter.cpp ├── sparse_gain_routing_parameter.hpp ├── string_parameter.cpp ├── string_parameter.hpp ├── test │ ├── CMakeLists.txt │ ├── data │ │ ├── vector_data_float32_16elements.dat │ │ └── vector_data_float32_16elements.wav │ ├── filter_routing_parameter.cpp │ ├── matrix_parameter.cpp │ ├── parameter_instantiation.cpp │ ├── test_main.cpp │ └── vector_parameter.cpp ├── time_frequency_parameter.cpp ├── time_frequency_parameter.hpp ├── time_frequency_parameter_config.cpp ├── time_frequency_parameter_config.hpp ├── vector_parameter.cpp ├── vector_parameter.hpp ├── vector_parameter_config.cpp └── vector_parameter_config.hpp ├── libpythoncomponents ├── CMakeLists.txt ├── export_symbols.hpp ├── test │ ├── CMakeLists.txt │ ├── pml_initialisation.cpp │ ├── python │ │ ├── initpml │ │ │ ├── __init__.py │ │ │ └── pml_adder.py │ │ ├── nestednamespacemodule │ │ │ ├── __init__.py │ │ │ └── level1 │ │ │ │ ├── __init__.py │ │ │ │ ├── level2 │ │ │ │ ├── __init__.py │ │ │ │ └── level2adder.py │ │ │ │ └── nestedadder.py │ │ ├── pythonAtoms.py │ │ ├── subpackagemodule │ │ │ ├── __init__.py │ │ │ └── level1 │ │ │ │ ├── __init__.py │ │ │ │ ├── level2 │ │ │ │ ├── __init__.py │ │ │ │ └── level2adder.py │ │ │ │ └── nestedadder.py │ │ └── testmodule │ │ │ ├── __init__.py │ │ │ └── adder.py │ ├── test_main.cpp │ └── wrapper.cpp ├── wrapper.cpp └── wrapper.hpp ├── libpythonsupport ├── CMakeLists.txt ├── export_symbols.hpp ├── gil_ensure_guard.cpp ├── gil_ensure_guard.hpp ├── initialisation_guard.cpp ├── initialisation_guard.hpp ├── load_module.cpp └── load_module.hpp ├── librbbl ├── CMakeLists.txt ├── biquad_coefficient.cpp ├── biquad_coefficient.hpp ├── circular_buffer.cpp ├── circular_buffer.hpp ├── core_convolver_uniform.cpp ├── core_convolver_uniform.hpp ├── crossfading_convolver_uniform.cpp ├── crossfading_convolver_uniform.hpp ├── export_symbols.hpp ├── fft_wrapper_base.hpp ├── fft_wrapper_factory.cpp ├── fft_wrapper_factory.hpp ├── ffts_wrapper.cpp ├── ffts_wrapper.hpp ├── filter_routing.cpp ├── filter_routing.hpp ├── fir.cpp ├── fir.hpp ├── float_sequence.cpp ├── float_sequence.hpp ├── fractional_delay_base.cpp ├── fractional_delay_base.hpp ├── fractional_delay_factory.cpp ├── fractional_delay_factory.hpp ├── fractional_delay_interpolator_base.hpp ├── gain_fader.cpp ├── gain_fader.hpp ├── gain_matrix.cpp ├── gain_matrix.hpp ├── index_sequence.cpp ├── index_sequence.hpp ├── interpolating_convolver_uniform.cpp ├── interpolating_convolver_uniform.hpp ├── interpolation_parameter.cpp ├── interpolation_parameter.hpp ├── ipp_fft_wrapper.cpp ├── ipp_fft_wrapper.hpp ├── kiss_fft_wrapper.hpp ├── kiss_fft_wrapper_double.cpp ├── kiss_fft_wrapper_float.cpp ├── lagrange_interpolator.cpp ├── lagrange_interpolator.hpp ├── multichannel_convolver_uniform.cpp ├── multichannel_convolver_uniform.hpp ├── multichannel_delay_line.cpp ├── multichannel_delay_line.hpp ├── object_channel_allocator.cpp ├── object_channel_allocator.hpp ├── parametric_iir_coefficient.cpp ├── parametric_iir_coefficient.hpp ├── parametric_iir_coefficient_calculator.cpp ├── parametric_iir_coefficient_calculator.hpp ├── position_3d.cpp ├── position_3d.hpp ├── quaternion.cpp ├── quaternion.hpp ├── sparse_gain_routing.cpp ├── sparse_gain_routing.hpp └── test │ ├── CMakeLists.txt │ ├── biquad_coefficient.cpp │ ├── circular_buffer.cpp │ ├── ffts_wrapper.cpp │ ├── fir │ ├── quasiAllpassFIR_f32_n63.txt │ ├── quasiAllpassFIR_f32_n63.wav │ ├── quasiAllpassFIR_f64_n63_initializer_list.txt │ └── test_f2_n3.txt │ ├── float_sequence.cpp │ ├── index_sequence.cpp │ ├── interpolating_convolver.cpp │ ├── ipp_fft_wrapper.cpp │ ├── kiss_fft_wrapper.cpp │ ├── matlab │ ├── generateConvolverSignals.m │ └── uniformlyPartitionedConvolution.m │ ├── multichannel_convolver.cpp │ ├── object_channel_allocator.cpp │ ├── parametric_iir_coefficient.cpp │ ├── signals │ ├── filter_4ch.wav │ ├── filters_4ch.wav │ ├── input_4ch.wav │ └── output_4ch.wav │ ├── sparse_gain_routing.cpp │ ├── test_FIR.cpp │ └── test_main.cpp ├── librcl ├── CMakeLists.txt ├── add.cpp ├── add.hpp ├── biquad_iir_filter.cpp ├── biquad_iir_filter.hpp ├── cap_gain_calculator.cpp ├── cap_gain_calculator.hpp ├── channel_object_routing_calculator.cpp ├── channel_object_routing_calculator.hpp ├── crossfading_fir_filter_matrix.cpp ├── crossfading_fir_filter_matrix.hpp ├── delay_matrix.cpp ├── delay_matrix.hpp ├── delay_vector.cpp ├── delay_vector.hpp ├── diffusion_gain_calculator.cpp ├── diffusion_gain_calculator.hpp ├── export_symbols.hpp ├── fir_filter_matrix.cpp ├── fir_filter_matrix.hpp ├── gain_matrix.cpp ├── gain_matrix.hpp ├── gain_vector.cpp ├── gain_vector.hpp ├── hoa_allrad_gain_calculator.cpp ├── hoa_allrad_gain_calculator.hpp ├── interpolating_fir_filter_matrix.cpp ├── interpolating_fir_filter_matrix.hpp ├── listener_compensation.cpp ├── listener_compensation.hpp ├── null_source.cpp ├── null_source.hpp ├── object_gain_eq_calculator.cpp ├── object_gain_eq_calculator.hpp ├── panning_calculator.cpp ├── panning_calculator.hpp ├── parameter_input_terminator.cpp ├── parameter_input_terminator.hpp ├── parameter_output_terminator.cpp ├── parameter_output_terminator.hpp ├── position_decoder.cpp ├── position_decoder.hpp ├── scalar_osc_decoder.cpp ├── scalar_osc_decoder.hpp ├── scene_decoder.cpp ├── scene_decoder.hpp ├── scene_encoder.cpp ├── scene_encoder.hpp ├── signal_routing.cpp ├── signal_routing.hpp ├── sparse_gain_matrix.cpp ├── sparse_gain_matrix.hpp ├── test │ ├── CMakeLists.txt │ ├── biquad_iir_filter.cpp │ ├── hoa_allrad_gain_calculator.cpp │ ├── scene_decoder.cpp │ ├── signal_routing.cpp │ ├── test_kinect_receiver.cpp │ ├── test_listener_compensation.cpp │ └── test_main.cpp ├── time_frequency_inverse_transform.cpp ├── time_frequency_inverse_transform.hpp ├── time_frequency_transform.cpp ├── time_frequency_transform.hpp ├── udp_receiver.cpp ├── udp_receiver.hpp ├── udp_sender.cpp └── udp_sender.hpp ├── libreverbobject ├── CMakeLists.txt ├── export_symbols.hpp ├── late_reverb_filter_calculator.cpp ├── late_reverb_filter_calculator.hpp ├── late_reverb_parameter.cpp ├── late_reverb_parameter.hpp ├── reverb_object_renderer.cpp ├── reverb_object_renderer.hpp ├── reverb_parameter_calculator.cpp └── reverb_parameter_calculator.hpp ├── librrl ├── CMakeLists.txt ├── audio_connection_map.cpp ├── audio_connection_map.hpp ├── audio_signal_flow.cpp ├── audio_signal_flow.hpp ├── communication_area.cpp ├── communication_area.hpp ├── export_symbols.hpp ├── flexible_buffer_wrapper.cpp ├── flexible_buffer_wrapper.hpp ├── integrity_checking.cpp ├── integrity_checking.hpp ├── parameter_connection_graph.cpp ├── parameter_connection_graph.hpp ├── parameter_connection_map.cpp ├── parameter_connection_map.hpp ├── port_utilities.cpp ├── port_utilities.hpp ├── runtime_profiler.cpp ├── runtime_profiler.hpp ├── scheduling_graph.cpp ├── scheduling_graph.hpp ├── signal_routing_internal.cpp ├── signal_routing_internal.hpp └── test │ ├── CMakeLists.txt │ ├── atomic_source.py │ ├── audio_signal_flow_checking.cpp │ ├── parameter_connection.cpp │ └── test_main.cpp ├── libsignalflows ├── CMakeLists.txt ├── baseline_renderer.cpp ├── baseline_renderer.hpp ├── bunch_renderer.cpp ├── bunch_renderer.hpp ├── core_renderer.cpp ├── core_renderer.hpp ├── delay_vector.cpp ├── delay_vector.hpp ├── export_symbols.hpp ├── gain_matrix.cpp ├── gain_matrix.hpp ├── test │ ├── CMakeLists.txt │ ├── baseline_renderer.cpp │ ├── delay_vector.cpp │ └── test_main.cpp ├── time_frequency_feedthrough.cpp └── time_frequency_feedthrough.hpp ├── libsignalflowspython ├── CMakeLists.txt ├── export_symbols.hpp ├── visr_renderer.cpp └── visr_renderer.hpp ├── libvisr ├── CMakeLists.txt ├── atomic_component.cpp ├── atomic_component.hpp ├── audio_input.cpp ├── audio_input.hpp ├── audio_output.cpp ├── audio_output.hpp ├── audio_port_base.cpp ├── audio_port_base.hpp ├── audio_sample_type.cpp ├── audio_sample_type.hpp ├── channel_list.cpp ├── channel_list.hpp ├── communication_protocol_base.cpp ├── communication_protocol_base.hpp ├── communication_protocol_factory.cpp ├── communication_protocol_factory.hpp ├── communication_protocol_type.hpp ├── component.cpp ├── component.hpp ├── composite_component.cpp ├── composite_component.hpp ├── constants.hpp ├── detail │ ├── compile_time_hash_fnv1.hpp │ └── compose_message_string.hpp ├── export_symbols.hpp ├── impl │ ├── audio_connection_descriptor.cpp │ ├── audio_connection_descriptor.hpp │ ├── audio_port_base_implementation.cpp │ ├── audio_port_base_implementation.hpp │ ├── component_implementation.cpp │ ├── component_implementation.hpp │ ├── composite_component_implementation.cpp │ ├── composite_component_implementation.hpp │ ├── parameter_connection_descriptor.cpp │ ├── parameter_connection_descriptor.hpp │ ├── parameter_port_base_implementation.cpp │ ├── parameter_port_base_implementation.hpp │ ├── port_base_implementation.cpp │ ├── port_base_implementation.hpp │ ├── time_implementation.cpp │ └── time_implementation.hpp ├── parameter_base.cpp ├── parameter_base.hpp ├── parameter_config_base.cpp ├── parameter_config_base.hpp ├── parameter_factory.cpp ├── parameter_factory.hpp ├── parameter_input.cpp ├── parameter_input.hpp ├── parameter_output.cpp ├── parameter_output.hpp ├── parameter_port_base.cpp ├── parameter_port_base.hpp ├── parameter_type.hpp ├── polymorphic_parameter_input.cpp ├── polymorphic_parameter_input.hpp ├── polymorphic_parameter_output.cpp ├── polymorphic_parameter_output.hpp ├── port_base.cpp ├── port_base.hpp ├── signal_flow_context.cpp ├── signal_flow_context.hpp ├── status_message.hpp ├── test │ ├── CMakeLists.txt │ ├── audio_connection_descriptor.cpp │ ├── audio_sample_type.cpp │ ├── component_names.cpp │ ├── parameter_connection.cpp │ ├── parameter_factory.cpp │ ├── polymorphic_parameter_port.cpp │ └── test_main.cpp ├── time.cpp ├── time.hpp ├── typed_parameter_base.hpp ├── version.cpp └── version.hpp ├── maxmspexternals ├── CMakeLists.txt ├── delay_vector │ ├── CMakeLists.txt │ ├── delay_vector.cpp │ └── delay_vector.hpp ├── gain_matrix │ ├── CMakeLists.txt │ ├── gain_matrix.cpp │ └── gain_matrix.hpp ├── libmaxsupport │ ├── CMakeLists.txt │ ├── argument_list.cpp │ ├── argument_list.hpp │ ├── class_registrar.hpp │ ├── export_symbols.hpp │ ├── external_base.cpp │ ├── external_base.hpp │ ├── external_wrapper.hpp │ ├── signal_flow_wrapper.cpp │ └── signal_flow_wrapper.hpp ├── matrix_convolver │ ├── CMakeLists.txt │ ├── init_filter_matrix.cpp │ ├── init_filter_matrix.hpp │ ├── matrix_convolver.cpp │ ├── matrix_convolver.hpp │ ├── options.cpp │ └── options.hpp └── visr_renderer │ ├── CMakeLists.txt │ ├── options.cpp │ ├── options.hpp │ ├── visr_renderer.cpp │ └── visr_renderer.hpp ├── mex ├── CMakeLists.txt ├── biquad_iir_filter │ ├── CMakeLists.txt │ ├── biquad_iir_filter.cpp │ ├── signal_flow.cpp │ └── signal_flow.hpp ├── delay_vector │ ├── CMakeLists.txt │ └── delay_vector.cpp ├── feedthrough │ ├── CMakeLists.txt │ ├── feedthrough.cpp │ ├── signal_flow.cpp │ └── signal_flow.hpp ├── gain_matrix │ ├── CMakeLists.txt │ ├── gain_matrix.cpp │ ├── signal_flow.cpp │ └── signal_flow.hpp ├── late_reverb_filter_calculator │ ├── CMakeLists.txt │ ├── late_reverb_filter_calculator.cpp │ ├── signal_flow.cpp │ └── signal_flow.hpp ├── multichannel_convolver │ ├── CMakeLists.txt │ ├── multichannel_convolver.cpp │ ├── testConvolver.m │ ├── utility_functions.cpp │ └── utility_functions.hpp └── time_frequency_feedthrough │ ├── CMakeLists.txt │ └── time_frequency_feedthrough.cpp ├── python ├── CMakeLists.txt ├── audiointerfaces │ ├── CMakeLists.txt │ ├── audio_interface.cpp │ ├── audio_interface_factory.cpp │ ├── audiointerfaces.cpp │ ├── jack_interface.cpp │ └── portaudio_interface.cpp ├── efl │ ├── CMakeLists.txt │ ├── basic_matrix.cpp │ ├── basic_vector.cpp │ ├── check_error.hpp │ ├── denormalised_number_handling.cpp │ ├── efl.cpp │ ├── error_codes.cpp │ ├── filter_functions.cpp │ ├── initialise_library.cpp │ ├── test │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── test_iir_biquads_single_channel.py │ │ ├── test_vector_add.py │ │ ├── test_vector_conversions.py │ │ ├── test_vector_copy_strided.py │ │ ├── test_vector_multiply.py │ │ ├── test_vector_multiply_add.py │ │ ├── test_vector_ramp_scaling.py │ │ ├── test_vector_subtract.py │ │ └── uniform_sequence.py │ ├── vector_conversions.cpp │ └── vector_functions.cpp ├── gui │ ├── calibrator_button.py │ └── listening_test.py ├── libpythonbindinghelpers │ ├── CMakeLists.txt │ ├── container_access.hpp │ ├── matrix_from_ndarray.hpp │ ├── ndarray_from_basic_matrix.hpp │ ├── ndarray_from_basic_vector.hpp │ └── vector_from_ndarray.hpp ├── objectmodel │ ├── CMakeLists.txt │ ├── channel_object.cpp │ ├── diffuse_source.cpp │ ├── hoa_source.cpp │ ├── object.cpp │ ├── object_type.cpp │ ├── object_vector.cpp │ ├── objectmodel.cpp │ ├── plane_wave.cpp │ ├── point_source.cpp │ ├── point_source_extent.cpp │ ├── point_source_with_diffuseness.cpp │ └── point_source_with_reverb.cpp ├── packages │ ├── loudspeakerconfig │ │ ├── __init__.py │ │ ├── createArrayConfigFile.py │ │ ├── createArrayConfigFromSofa.py │ │ └── geometry_functions.py │ ├── metadapter │ │ ├── .gitignore │ │ ├── Changelog.txt │ │ ├── __init__.py │ │ ├── condition_processors │ │ │ ├── __init__.py │ │ │ ├── condition_processor_factory.py │ │ │ └── select_group_condition.py │ │ ├── config │ │ │ ├── C4_demo1_init.xml │ │ │ ├── TMMExperiment2config.xml │ │ │ ├── TMMExperiment3config.xml │ │ │ ├── channel_object.xml │ │ │ ├── conditional_empty_branch.xml │ │ │ ├── conditional_no_default.xml │ │ │ ├── conditional_reordered_branches.xml │ │ │ ├── conditional_single_branch.xml │ │ │ ├── conditional_single_branch_no_merge.xml │ │ │ ├── conditional_test1.xml │ │ │ ├── diffuse_source_test.xml │ │ │ ├── envelopment.xml │ │ │ ├── example_processing_chain_1.xml │ │ │ ├── example_processing_chain_1_quot.xml │ │ │ ├── mdo.xml │ │ │ ├── mdoAzimuth.xml │ │ │ ├── mdoPhones.xml │ │ │ ├── mdo_production.xml │ │ │ ├── mdo_production_fireface.xml │ │ │ ├── narrative_importance.xml │ │ │ ├── narrative_importance_reaper.xml │ │ │ ├── nested_sequences.xml │ │ │ ├── processing_chain_no_sequence_layer.xml │ │ │ ├── radio_drama_adaptation_FOW.xml │ │ │ ├── radio_drama_adaptation_demo.xml │ │ │ ├── reverb_config_notes.txt │ │ │ ├── room_acoustic_adaptation_test.xml │ │ │ ├── semantic_stereo.xml │ │ │ ├── simple_mdo.xml │ │ │ ├── smpte_demo.xml │ │ │ ├── source_merge_1.xml │ │ │ ├── speech_steering.xml │ │ │ ├── split_sink_1.xml │ │ │ ├── static_point_source_extent.xml │ │ │ ├── test_add_advanced_metadata.xml │ │ │ ├── test_add_mdo_metadata.xml │ │ │ ├── test_add_reverb.xml │ │ │ ├── test_add_reverb_hoa.xml │ │ │ ├── test_edit_distance.xml │ │ │ ├── test_edit_reverb.xml │ │ │ ├── test_edit_reverb_frame.xml │ │ │ └── test_edit_reverb_scene.xml │ │ ├── core │ │ │ ├── base_processor_interface.py │ │ │ ├── composite_conditional.py │ │ │ ├── composite_sequence.py │ │ │ ├── composite_source_merge.py │ │ │ ├── composite_split_sink.py │ │ │ ├── condition_processor_interface.py │ │ │ ├── instantiate_subflow.py │ │ │ ├── merge_processor_interface.py │ │ │ ├── metadapter_engine.py │ │ │ ├── metadata_processor_factory.py │ │ │ ├── sequence_processor_interface.py │ │ │ ├── sink_processor_interface.py │ │ │ └── source_processor_interface.py │ │ ├── examples │ │ │ ├── test_json_control_data.py │ │ │ └── test_metadapter.py │ │ ├── max │ │ │ ├── AddReverbOSCController.maxpat │ │ │ └── ReverbControllerv0.maxpat │ │ ├── merge_processors │ │ │ ├── __init__.py │ │ │ ├── branch_order_merge_processor.py │ │ │ └── merge_processor_factory.py │ │ ├── metadapter_standalone.py │ │ ├── networked │ │ │ ├── __init__.py │ │ │ └── engine.py │ │ ├── processors │ │ │ ├── Nuendo_height_fix_processor.py │ │ │ ├── TMMExperiment2_processor.py │ │ │ ├── TMMExperiment3_MUSHRA_processor.py │ │ │ ├── TMMExperiment3_processor.py │ │ │ ├── TMMGeneric_processor.py │ │ │ ├── __init__.py │ │ │ ├── adapt_diffuseness_processor.py │ │ │ ├── adapt_position_processor.py │ │ │ ├── add_object_metadata_processor.py │ │ │ ├── add_objects_processor.py │ │ │ ├── add_reverb_processor.py │ │ │ ├── addadvancedmetadata_processor.py │ │ │ ├── attenuate_action_processor.py │ │ │ ├── az_remap.py │ │ │ ├── change_volume_processor.py │ │ │ ├── compress_above_processor.py │ │ │ ├── compress_below_processor.py │ │ │ ├── compress_height_processor.py │ │ │ ├── edit_distance_processor.py │ │ │ ├── edit_reverb_processor.py │ │ │ ├── envelopment_functions.py │ │ │ ├── envelopment_processor.py │ │ │ ├── envelopmentopt_processor.py │ │ │ ├── fakegroups_processor.py │ │ │ ├── globaleq_processor.py │ │ │ ├── group_adapt_radius_processor.py │ │ │ ├── group_volume_processor.py │ │ │ ├── mdoAzimuth_processor.py │ │ │ ├── mdoPhones_processor.py │ │ │ ├── mdoProduction_processor.py │ │ │ ├── mdo_processor.py │ │ │ ├── narrativeimportance_processor.py │ │ │ ├── print_advanced_metadata_processor.py │ │ │ ├── print_object_coordinate.py │ │ │ ├── reverb │ │ │ │ ├── AES142Library.json │ │ │ │ ├── AES142Library1.json │ │ │ │ ├── BFormatParamTest.json │ │ │ │ └── JAESLibrary.json │ │ │ ├── room │ │ │ │ ├── ArrayConfig.xml │ │ │ │ └── RoomArrayResponse.json │ │ │ ├── room_acoustic_adaptation_processor.py │ │ │ ├── routetosoundbar_processor.py │ │ │ ├── saveObjectVector.py │ │ │ ├── semantic_stereo_processor.py │ │ │ ├── solo_processor.py │ │ │ ├── spat_message_processor.py │ │ │ ├── spread_processor.py │ │ │ └── utilities.py │ │ ├── python_examples │ │ │ ├── README.txt │ │ │ ├── reactor_udp_tutorial.py │ │ │ └── udpreactor.py │ │ ├── sink_processors │ │ │ ├── __init__.py │ │ │ ├── print_scene_processor.py │ │ │ └── sink_processor_factory.py │ │ ├── source_processors │ │ │ ├── __init__.py │ │ │ ├── source_processor_factory.py │ │ │ └── static_scene_source.py │ │ ├── templates │ │ │ ├── add_objects.py │ │ │ └── modify_all_objects.py │ │ ├── thirdparty │ │ │ ├── OSC.py │ │ │ ├── __init__.py │ │ │ └── thirdparty │ │ │ │ ├── OSC.py │ │ │ │ └── __init__.py │ │ └── visrintegration │ │ │ ├── __init__.py │ │ │ └── component.py │ ├── visr_bst │ │ ├── Changelog │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __init__.py │ │ ├── controllers │ │ │ ├── dynamic_hrir_controller.py │ │ │ └── virtual_loudspeaker_controller.py │ │ ├── data │ │ │ ├── loudspeaker_configs │ │ │ │ ├── bbcrdlr_all_speakers.xml │ │ │ │ ├── bbcrdlr_systemA.xml │ │ │ │ ├── bbcrdlr_systemB.xml │ │ │ │ ├── bbcrdlr_systemC.xml │ │ │ │ ├── bbcrdlr_systemD.xml │ │ │ │ ├── bbcrdlr_systemE.xml │ │ │ │ ├── bbcrdlr_systemF.xml │ │ │ │ ├── bbcrdlr_systemG.xml │ │ │ │ ├── bbcrdlr_systemH.xml │ │ │ │ ├── salfordBRIRs.xml │ │ │ │ └── scripts │ │ │ │ │ └── createBbcBrirConfigs.py │ │ │ └── sofa │ │ │ │ ├── brir │ │ │ │ └── .gitignore │ │ │ │ ├── hoa2binaural │ │ │ │ └── .gitignore │ │ │ │ └── hrir │ │ │ │ └── .gitignore │ │ ├── examples │ │ │ ├── .gitignore │ │ │ ├── run_realtime_dynamic_hrir_renderer.py │ │ │ ├── run_realtime_hoa_binaural_renderer.py │ │ │ ├── run_realtime_hoa_object_to_renderer.py │ │ │ ├── run_realtime_virtual_loudspeaker_renderer.py │ │ │ ├── simulate_dynamic_hrir_renderer.py │ │ │ ├── simulate_hoa_binaural_renderer.py │ │ │ ├── simulate_hoa_object_to_binaural_renderer.py │ │ │ ├── simulate_object_to_virtual_loudspeaker_renderer.py │ │ │ ├── simulate_virtual_loudspeaker_renderer.py │ │ │ ├── simulate_virtual_loudspeaker_renderer_late_static.py │ │ │ ├── test_dynamic_hrir_controller.py │ │ │ └── test_virtual_loudspeaker_controller.py │ │ ├── hoa_components │ │ │ ├── __init__.py │ │ │ ├── hoa_coefficient_rotation.py │ │ │ ├── hoa_object_encoder.py │ │ │ └── hoa_rotation_matrix_calculator.py │ │ ├── realtime_renderers │ │ │ ├── realtime_dynamic_hrir_renderer.py │ │ │ ├── realtime_hoa_binaural_renderer.py │ │ │ ├── realtime_hoa_object_to_binaural_renderer.py │ │ │ └── realtime_virtual_loudspeaker_renderer.py │ │ ├── renderers │ │ │ ├── dynamic_hrir_renderer.py │ │ │ ├── hoa_binaural_renderer.py │ │ │ ├── hoa_object_to_binaural_renderer.py │ │ │ ├── object_to_virtual_loudspeaker_renderer.py │ │ │ └── virtual_loudspeaker_renderer.py │ │ ├── tracker │ │ │ ├── __init__.py │ │ │ ├── hdm_tracker.py │ │ │ ├── hdm_tracker_with_udp_calibration_trigger.py │ │ │ ├── razor_ahrs.py │ │ │ └── razor_ahrs_with_udp_calibration_trigger.py │ │ └── util │ │ │ ├── __init__.py │ │ │ ├── read_sofa_file.py │ │ │ ├── real_spherical_harmonics.py │ │ │ ├── rotation_functions.py │ │ │ ├── sofa_extract_delay.py │ │ │ └── spherical_harmonics_rotation.py │ └── visrliser │ │ └── visrliser.py ├── panning │ ├── CMakeLists.txt │ ├── loudspeaker_array.cpp │ ├── panning.cpp │ ├── vbap.cpp │ └── xyz.cpp ├── panningdsp │ ├── CMakeLists.txt │ ├── panning_gain_matrix.cpp │ ├── panning_matrix_parameter.cpp │ ├── panningdsp.cpp │ └── test │ │ ├── CMakeLists.txt │ │ ├── test_panning_gain_matrix.py │ │ └── test_panning_matrix_parameter.py ├── pml │ ├── CMakeLists.txt │ ├── biquad_coefficient_parameter.cpp │ ├── double_buffering_protocol.cpp │ ├── empty_parameter_config.cpp │ ├── filter_routing_parameter.cpp │ ├── indexed_value_parameter.cpp │ ├── interpolation_parameter.cpp │ ├── listener_position.cpp │ ├── matrix_parameter.cpp │ ├── message_queue_protocol.cpp │ ├── object_vector.cpp │ ├── pml.cpp │ ├── scalar_parameter.cpp │ ├── shared_data_protocol.cpp │ ├── signal_routing_parameter.cpp │ ├── sparse_gain_routing_parameter.cpp │ ├── string_parameter.cpp │ ├── test │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── test_biquad_coefficient_parameter.py │ │ ├── test_gain_matrix.py │ │ └── test_listener_position.py │ ├── time_frequency_parameter.cpp │ └── vector_parameter.cpp ├── rbbl │ ├── CMakeLists.txt │ ├── biquad_coefficient.cpp │ ├── core_convolver_uniform.cpp │ ├── crossfading_convolver_uniform.cpp │ ├── filter_routing.cpp │ ├── fractional_delay_base.cpp │ ├── fractional_delay_factory.cpp │ ├── interpolating_convolver_uniform.cpp │ ├── interpolation_parameter.cpp │ ├── lagrange_interpolator.cpp │ ├── multichannel_convolver_uniform.cpp │ ├── object_channel_allocator.cpp │ ├── parametric_iir_coefficient.cpp │ ├── parametric_iir_coefficient_calculator.cpp │ ├── position_3d.cpp │ ├── quaternion.cpp │ ├── rbbl.cpp │ ├── sparse_gain_routing.cpp │ └── test │ │ ├── CMakeLists.txt │ │ ├── test_crossfading_convolver_uniform.py │ │ ├── test_interpolating_convolver_uniform.py │ │ ├── test_interpolating_convolver_uniform_brir.py │ │ ├── test_lagrange_interpolator.py │ │ ├── test_position_3d.py │ │ └── test_quaternion.py ├── rcl │ ├── CMakeLists.txt │ ├── add.cpp │ ├── biquad_iir_filter.cpp │ ├── cap_gain_calculator.cpp │ ├── channel_object_routing_calculator.cpp │ ├── crossfading_fir_filter_matrix.cpp │ ├── delay_matrix.cpp │ ├── delay_vector.cpp │ ├── diffusion_gain_calculator.cpp │ ├── fir_filter_matrix.cpp │ ├── gain_matrix.cpp │ ├── gain_vector.cpp │ ├── hoa_allrad_gain_calculator.cpp │ ├── interpolating_fir_filter_matrix.cpp │ ├── listener_compensation.cpp │ ├── null_source.cpp │ ├── object_gain_eq_calculator.cpp │ ├── panning_calculator.cpp │ ├── parameter_input_terminator.cpp │ ├── parameter_output_terminator.cpp │ ├── position_decoder.cpp │ ├── rcl.cpp │ ├── scalar_osc_decoder.cpp │ ├── scene_decoder.cpp │ ├── scene_encoder.cpp │ ├── signal_routing.cpp │ ├── sparse_gain_matrix.cpp │ ├── test │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── test_fir_filter_matrix.py │ │ ├── test_gain_matrix.py │ │ ├── test_interpolating_fir_filter_matrix.py │ │ ├── test_parameter_input_terminator.py │ │ ├── test_parameter_output_terminator.py │ │ ├── test_position_decoder.py │ │ └── test_time_frequency_transform.py │ ├── time_frequency_inverse_transform.cpp │ ├── time_frequency_transform.cpp │ ├── udp_receiver.cpp │ └── udp_sender.cpp ├── reverbobject │ ├── CMakeLists.txt │ ├── late_reverb_filter_calculator.cpp │ ├── late_reverb_parameter.cpp │ ├── reverb_object_renderer.cpp │ ├── reverb_parameter_calculator.cpp │ └── reverbobject.cpp ├── rrl │ ├── CMakeLists.txt │ ├── audio_signal_flow.cpp │ ├── flexible_buffer_wrapper.cpp │ ├── integrity_checking.cpp │ ├── rrl.cpp │ ├── runtime_profiler.cpp │ └── test │ │ ├── CMakeLists.txt │ │ ├── test_audio_signal_flow.py │ │ └── test_flexible_buffer_wrapper.py ├── scripts │ ├── audio_signal_switch.py │ ├── binaural │ │ ├── analyse_binaural_renderer.py │ │ ├── compareVirtualLoudspeakerRenderer.py │ │ ├── data │ │ │ └── .gitignore │ │ ├── option_files │ │ │ └── virtual_4+5.cfg │ │ ├── testDynamicBinauralRendererSAWconv.py │ │ ├── testHOABinauralRendererSAWconv.py │ │ ├── testRotation.py │ │ ├── test_real_sph_harmonics.py │ │ └── testing │ │ │ ├── DynBinRendererTest.RPP-bak │ │ │ ├── EnglishGBF_Hannah_comp.wav.reapeaks │ │ │ ├── VirtualLoudspeakerRendererTest.RPP │ │ │ ├── VirtualLoudspeakerRendererTest.RPP-bak │ │ │ ├── calibration.rtf │ │ │ ├── cello.wav │ │ │ ├── cello.wav.reapeaks │ │ │ ├── fly me to the moon [chan 1].wav.reapeaks │ │ │ ├── kill process using port.rtf │ │ │ ├── patchbay │ │ │ ├── ADMplayer_scene.xml │ │ │ ├── binaural_reaper.xml │ │ │ └── virtual_loudspeaker_renderer.xml │ │ │ ├── sinusoide_440_44100.wav │ │ │ └── sinusoide_440_44100.wav.reapeaks │ ├── instantiateBaselineRenderer.py │ ├── instantiateCoreRenderer.py │ ├── instantiateReverbRenderer.py │ ├── instantiate_multi_renderer.py │ ├── multi_renderer.py │ ├── panning_comparison.py │ ├── parameterConnection.py │ ├── pointsource_trajectory_generator.py │ ├── pythonAtomicFlow.py │ ├── pythonAtomicFlowRealTime.py │ ├── pythonAtoms.py │ ├── pythonCompositeFlow.py │ ├── python_panner.py │ ├── realtime_multi_renderer.py │ ├── realtime_multi_renderer_trajectory.py │ ├── rsao │ │ ├── BBC_BRIR.mat │ │ ├── bbcrdlr9ch_brirs.wav │ │ ├── bs2051-4+5+0_nosub.xml │ │ ├── reverbObjectBinauralisation_flexible.py │ │ ├── reverbObjectBinauralisation_simple.py │ │ ├── testLateReverbCalculator.py │ │ └── testReverbObject.py │ ├── runAtomicComponent.py │ ├── runRealtimeMultiRenderer.py │ ├── run_panning_comparison.py │ ├── testCAP.py │ ├── testDelayMatrix.py │ ├── testGainVector.py │ ├── testHoaAllRadGainCalculator.py │ ├── testLoudspeakerArray.py │ ├── testPanningCalculator.py │ ├── time_frequency_filtering.py │ └── transauralCoeffCalculator.py ├── signalflows │ ├── CMakeLists.txt │ ├── baseline_renderer.cpp │ ├── baseline_renderer.hpp │ ├── core_renderer.cpp │ ├── core_renderer.hpp │ ├── delay_line.cpp │ ├── delay_matrix.hpp │ ├── delay_vector.cpp │ ├── delay_vector.hpp │ ├── signalflows.cpp │ └── visr_renderer.cpp ├── templates │ ├── audio_meter.py │ ├── audio_meter_evaluation.py │ └── audio_meter_gui.py └── visr │ ├── CMakeLists.txt │ ├── atomic_component.cpp │ ├── audio_connection.cpp │ ├── audio_port.cpp │ ├── audio_sample_type.cpp │ ├── channel_list.cpp │ ├── communication_protocol.cpp │ ├── communication_protocol_factory.cpp │ ├── component.cpp │ ├── composite_component.cpp │ ├── parameter_base.cpp │ ├── parameter_config_base.cpp │ ├── parameter_connection.cpp │ ├── parameter_factory.cpp │ ├── parameter_port.cpp │ ├── port.cpp │ ├── signal_flow_context.cpp │ ├── time.cpp │ └── visr.cpp └── visr-config.cmake.in /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | build* 3 | .project 4 | .vscode/ 5 | __pycache__ 6 | 7 | -------------------------------------------------------------------------------- /3rd/ffts/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.Po 3 | *.a 4 | *.la 5 | *.lai 6 | *.lo 7 | *.Plo 8 | *.so 9 | *~ 10 | *.log 11 | *.swp 12 | *.cache/* 13 | 14 | *Makefile 15 | 16 | config.h 17 | config.status 18 | compile 19 | libtool 20 | ffts.pc 21 | stamp-h1 22 | tests/test 23 | 24 | java/android/local.properties 25 | java/android/gen/* 26 | java/android/obj/* 27 | java/android/bin/* 28 | 29 | build 30 | -------------------------------------------------------------------------------- /3rd/ffts/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | os: 3 | - linux 4 | - osx 5 | addons: 6 | apt: 7 | packages: 8 | - cmake 9 | sources: 10 | - kubuntu-backports 11 | script: 12 | - mkdir build && cd build && cmake .. && cmake --build . 13 | -------------------------------------------------------------------------------- /3rd/ffts/AUTHORS: -------------------------------------------------------------------------------- 1 | FFTS was developed at the University of Waikato by Anthony Blake 2 | 3 | The following authors have also graciously contributed code: 4 | 5 | Michael Zucchi -- JNI java/android support 6 | Michael Cree -- Architecture specific code, including support for Altivec and DEC Alpha 7 | -------------------------------------------------------------------------------- /3rd/ffts/Makefile.am: -------------------------------------------------------------------------------- 1 | AUTOMAKE_OPTIONS = foreign 2 | SUBDIRS = src tests 3 | EXTRA_DIST=COPYRIGHT ffts.pc.in build_iphone.sh build_android.sh 4 | ACLOCAL_AMFLAGS = -Im4 5 | 6 | pkgconfigdir = $(libdir)/pkgconfig 7 | pkgconfig_DATA = ffts.pc 8 | 9 | if ENABLE_JNI 10 | SUBDIRS += java 11 | endif 12 | -------------------------------------------------------------------------------- /3rd/ffts/build_iphone.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | # Compiles ffts for iOS 3 | # Modify INSTALL_DIR, SDKVER and DEVROOT to suit your situation 4 | 5 | INSTALL_DIR="`pwd`/build" 6 | 7 | export SDKVER="6.1" 8 | export DEVROOT="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer" 9 | export SDKROOT="$DEVROOT/SDKs/iPhoneOS$SDKVER.sdk" 10 | export CFLAGS="-O3 -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-shorten-64-to-32 -Wno-trigraphs -fpascal-strings -miphoneos-version-min=5.0 -mcpu=cortex-a9 -arch armv7 -mfpu=neon -pipe -isysroot $SDKROOT -isystem $SDKROOT/usr/include -isystem $DEVROOT/usr/include -mno-thumb -no-integrated-as" 11 | export AR="$DEVROOT/usr/bin/ar" 12 | export CC="clang" 13 | 14 | 15 | mkdir -p $INSTALL_DIR 16 | ./configure --enable-neon --build=i386-apple-darwin`uname -r` --host=arm-eabi --prefix=$INSTALL_DIR 17 | 18 | make clean 19 | make 20 | make install 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /3rd/ffts/ffts.pc.cmake.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: @CMAKE_PROJECT_NAME@ 7 | Description: fast Fourier transform library 8 | Version: @FFTS_VERSION@ 9 | Libs: -L${libdir} -lffts -lm 10 | Cflags: -I${includedir}/ffts 11 | -------------------------------------------------------------------------------- /3rd/ffts/ffts.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: FFTS 7 | Description: fast Fourier transform library 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lffts -lm 10 | Cflags: -I${includedir}/ffts 11 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/.settings/org.eclipse.ltk.core.refactoring.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false 3 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/ant.properties: -------------------------------------------------------------------------------- 1 | # This file is used to override default values used by the Ant build system. 2 | # 3 | # This file must be checked into Version Control Systems, as it is 4 | # integral to the build system of your project. 5 | 6 | # This file is only used by the Ant script. 7 | 8 | # You can use this to override default values such as 9 | # 'source.dir' for the location of your java source folder and 10 | # 'out.dir' for the location of your output folder. 11 | source.dir=../src 12 | 13 | # You can also use it define how the release builds are signed by declaring 14 | # the following properties: 15 | # 'key.store' for the location of your keystore and 16 | # 'key.alias' for the name of the key to use. 17 | # The password will be asked during the build when you use the 'release' target. 18 | 19 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | TOP=../../.. 4 | 5 | # Include the shared library 6 | #include $(CLEAR_VARS) 7 | #LOCAL_MODULE := ffts 8 | #LOCAL_SRC_FILES := ../../../src/.libs/libffts.so 9 | #include $(PREBUILT_SHARED_LIBRARY) 10 | 11 | # Include the static library in shared lib 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE := ffts 14 | LOCAL_SRC_FILES := $(TOP)/java/android/bin/lib/libffts.a 15 | LOCAL_EXPORT_C_INCLUDES := $(TOP)/include 16 | include $(PREBUILT_STATIC_LIBRARY) 17 | 18 | include $(CLEAR_VARS) 19 | LOCAL_MODULE := ffts_jni 20 | LOCAL_CFLAGS := -I$(TOP)/include -I$(TOP)/java/jni -I$(TOP) -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast 21 | LOCAL_SRC_FILES := $(TOP)/java/jni/ffts_jni.c 22 | LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 23 | LOCAL_STATIC_LIBRARIES := ffts 24 | 25 | include $(BUILD_SHARED_LIBRARY) 26 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # requires NEON atm 2 | APP_ABI := armeabi-v7a 3 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /3rd/ffts/java/android/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | android.library=true 14 | # Project target. 15 | target=android-10 16 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.deps 4 | /.libs 5 | /*.la 6 | /*.lo 7 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/Makefile.am: -------------------------------------------------------------------------------- 1 | DIST_SUBDIRS = x86 ppc sparc arm arm64 s390x amd64 ia64 mips 2 | 3 | AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir) 4 | 5 | if ARM 6 | # arm needs to build some stuff even in JIT mode 7 | SUBDIRS = $(arch_target) 8 | endif 9 | 10 | EXTRA_DIST = ChangeLog 11 | 12 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/README: -------------------------------------------------------------------------------- 1 | mono_arch 2 | ========= 3 | 4 | Part of Mono project, https://github.com/mono 5 | 6 | These are C macros that are useful when generating native code on various platforms. 7 | This code is MIT X11 licensed. 8 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/.gitattributes: -------------------------------------------------------------------------------- 1 | /arm-wmmx.h -crlf 2 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.deps 4 | /.libs 5 | /*.o 6 | /*.la 7 | /*.lo 8 | /*.lib 9 | /*.obj 10 | /*.exe 11 | /*.dll 12 | /arm_dpimacros.h 13 | /arm_fpamacros.h 14 | /arm_vfpmacros.h 15 | /fixeol.sh 16 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir) 3 | 4 | noinst_LTLIBRARIES = libmonoarch-arm.la 5 | 6 | BUILT_SOURCES = arm_dpimacros.h arm_vfpmacros.h 7 | 8 | 9 | libmonoarch_arm_la_SOURCES = $(BUILT_SOURCES) \ 10 | arm-codegen.c \ 11 | arm-codegen.h \ 12 | arm-dis.c \ 13 | arm-dis.h 14 | 15 | arm_dpimacros.h: dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th 16 | (cd $(srcdir); bash ./dpiops.sh) > $@t 17 | mv $@t $@ 18 | 19 | arm_vfpmacros.h: vfpops.sh vfpm_macros.th vfp_macros.th 20 | (cd $(srcdir); bash ./vfpops.sh) > $@t 21 | mv $@t $@ 22 | 23 | CLEANFILES = $(BUILT_SOURCES) 24 | 25 | EXTRA_DIST = dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th \ 26 | vfpm_macros.th vfp_macros.th arm-vfp-codegen.h vfpops.sh 27 | 28 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/dpiops.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | OPCODES="AND EOR SUB RSB ADD ADC SBC RSC ORR BIC" 4 | CMP_OPCODES="TST TEQ CMP CMN" 5 | MOV_OPCODES="MOV MVN" 6 | 7 | # $1: opcode list 8 | # $2: template 9 | gen() { 10 | for i in $1; do 11 | sed "s//$i/g" $2.th 12 | done 13 | } 14 | 15 | 16 | 17 | echo -e "/* Macros for DPI ops, auto-generated from template */\n" 18 | 19 | echo -e "\n/* mov/mvn */\n" 20 | gen "$MOV_OPCODES" mov_macros 21 | 22 | echo -e "\n/* DPIs, arithmetic and logical */\n" 23 | gen "$OPCODES" dpi_macros 24 | 25 | echo -e "\n\n" 26 | 27 | echo -e "\n/* DPIs, comparison */\n" 28 | gen "$CMP_OPCODES" cmp_macros 29 | 30 | echo -e "\n/* end generated */\n" 31 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/vfp_macros.th: -------------------------------------------------------------------------------- 1 | /* -- -- */ 2 | 3 | 4 | /* Fd := Fn Fm */ 5 | #define ARM_VFP_D_COND(p, rd, rn, rm, cond) \ 6 | ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_,rd,rn,rm)) 7 | #define ARM_VFP_D(p, rd, rn, rm) \ 8 | ARM_VFP_D_COND(p, rd, rn, rm, ARMCOND_AL) 9 | 10 | #define ARM_VFP_S_COND(p, rd, rn, rm, cond) \ 11 | ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_,rd,rn,rm)) 12 | #define ARM_VFP_S(p, rd, rn, rm) \ 13 | ARM_VFP_S_COND(p, rd, rn, rm, ARMCOND_AL) 14 | 15 | 16 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/vfpm_macros.th: -------------------------------------------------------------------------------- 1 | /* -- -- */ 2 | 3 | 4 | /* Fd := Fm */ 5 | 6 | #define ARM_D_COND(p,dreg,sreg,cond) \ 7 | ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_,(dreg),(sreg))) 8 | #define ARM_D(p,dreg,sreg) ARM_D_COND(p,dreg,sreg,ARMCOND_AL) 9 | 10 | #define ARM_S_COND(p,dreg,sreg,cond) \ 11 | ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_,(dreg),(sreg))) 12 | #define ARM_S(p,dreg,sreg) ARM_S_COND(p,dreg,sreg,ARMCOND_AL) 13 | 14 | 15 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm/vfpops.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DYADIC="ADD SUB MUL NMUL DIV" 4 | MONADIC="CPY ABS NEG SQRT CMP CMPE CMPZ CMPEZ CVT UITO SITO TOUI TOSI TOUIZ TOSIZ" 5 | 6 | # $1: opcode list 7 | # $2: template 8 | gen() { 9 | for i in $1; do 10 | sed "s//$i/g" $2.th 11 | done 12 | } 13 | 14 | echo -e "/* Macros for VFP ops, auto-generated from template */\n" 15 | 16 | echo -e "\n/* dyadic */\n" 17 | gen "$DYADIC" vfp_macros 18 | 19 | echo -e "\n/* monadic */\n" 20 | gen "$MONADIC" vfpm_macros 21 | 22 | echo -e "\n\n" 23 | 24 | echo -e "\n/* end generated */\n" 25 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm64/.gitignore: -------------------------------------------------------------------------------- 1 | / 2 | /Makefile 3 | /Makefile.in 4 | /*.o 5 | /*.lo 6 | /.deps 7 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm64/Makefile.am: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/ffts/src/arch/arm64/Makefile.am -------------------------------------------------------------------------------- /3rd/ffts/src/arch/arm64/arm64-codegen.h: -------------------------------------------------------------------------------- 1 | #include "../../../../mono-extensions/mono/arch/arm64/arm64-codegen.h" 2 | 3 | 4 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/ia64/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/ia64/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = ia64-codegen.h 2 | 3 | 4 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/mips/.gitignore: -------------------------------------------------------------------------------- 1 | / 2 | /Makefile 3 | /Makefile.in 4 | /*.o 5 | /*.lo 6 | /.deps 7 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/mips/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir) 3 | 4 | noinst_LTLIBRARIES = libmonoarch-mips.la 5 | 6 | libmonoarch_mips_la_SOURCES = mips-codegen.h 7 | 8 | noinst_PROGRAMS = test 9 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/ppc/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.libs 4 | /.deps 5 | /*.la 6 | /*.lo 7 | /test 8 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/ppc/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = ppc-codegen.h -------------------------------------------------------------------------------- /3rd/ffts/src/arch/s390x/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.libs 4 | /.deps 5 | /*.la 6 | /*.lo 7 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/s390x/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir) 3 | 4 | noinst_LTLIBRARIES = libmonoarch-s390x.la 5 | 6 | libmonoarch_s390x_la_SOURCES = tramp.c s390x-codegen.h 7 | 8 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/sparc/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.deps 4 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/sparc/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir) 3 | 4 | noinst_LTLIBRARIES = libmonoarch-sparc.la 5 | 6 | libmonoarch_sparc_la_SOURCES = tramp.c sparc-codegen.h 7 | 8 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/x64/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /Makefile 3 | /.deps 4 | /.libs 5 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/x64/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = x64-codegen.h 2 | 3 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/x86/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /.libs 4 | /.deps 5 | /*.la 6 | /*.lo 7 | -------------------------------------------------------------------------------- /3rd/ffts/src/arch/x86/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = x86-codegen.h -------------------------------------------------------------------------------- /3rd/ffts/src/ffts_trig.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/ffts/src/ffts_trig.c -------------------------------------------------------------------------------- /3rd/ffts/tests/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | noinst_PROGRAMS = test 3 | test_SOURCES = test.c 4 | test_LDADD = $(top_builddir)/src/libffts.la 5 | -------------------------------------------------------------------------------- /3rd/kissfft/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_double.c: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #include "kiss_fft_double_redefines.h" 4 | 5 | #include "kiss_fft.c" 6 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_double.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FFT_DOUBLE_H 2 | #define KISS_FFT_DOUBLE_H 3 | 4 | #include "kiss_fft_double_refedines.h" 5 | 6 | #include "kiss_fft.h" 7 | 8 | #endif // KISS_FFT_DOUBLE_H 9 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_double_redefines.h: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #define kiss_fft_scalar double 4 | 5 | #define kiss_fft_state kiss_fft_state_double 6 | #define kiss_fft_cfg kiss_fft_cfg_double 7 | #define kiss_fft_alloc kiss_fft_alloc_double 8 | #define kiss_fft kiss_fft_double 9 | #define kiss_fft_stride kiss_fft_stride_double 10 | #define kiss_fft_cleanup kiss_fft_cleanup_double 11 | #define kiss_fft_next_fast_size kiss_fft_next_fast_size_double 12 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_float.c: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #include "kiss_fft_float_redefines.h" 4 | 5 | #include "kiss_fft.c" 6 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_float.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FFT_FLOAT_H 2 | #define KISS_FFT_FLOAT_H 3 | 4 | #include "kiss_fft_float_redefines.h" 5 | 6 | #include "kiss_fft.h" 7 | 8 | #endif // KISS_FFT_FLOAT_H 9 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fft_float_redefines.h: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #define kiss_fft_scalar float 4 | 5 | #define kiss_fft_state kiss_fft_state_float 6 | #define kiss_fft_cfg kiss_fft_cfg_float 7 | #define kiss_fft_alloc kiss_fft_alloc_float 8 | #define kiss_fft kiss_fft_float 9 | #define kiss_fft_stride kiss_fft_stride_float 10 | #define kiss_fft_cleanup kiss_fft_cleanup_float 11 | #define kiss_fft_next_fast_size kiss_fft_next_fast_size_float 12 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_double.c: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #include "kiss_fftr_double_redefines.h" 4 | 5 | // As the real-to-complex transform uses the complex transform, we need to include the new names as well. 6 | #include "kiss_fft_double_redefines.h" 7 | 8 | #include "tools/kiss_fftr.c" 9 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_double.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FFTR_DOUBLE_H 2 | #define KISS_FFTR_DOUBLE_H 3 | 4 | #include "kiss_fftr_double_redefines.h" 5 | 6 | #include "tools/kiss_fftr.h" 7 | 8 | #undef kiss_fftr_state 9 | #undef kiss_fftr_cfg 10 | #undef kiss_fftr_alloc 11 | #undef kiss_fftr 12 | #undef kiss_fftri 13 | 14 | #endif // KISS_FFTR_DOUBLE_H 15 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_double_redefines.h: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #define kiss_fft_scalar double 4 | 5 | #define kiss_fftr_state kiss_fftr_state_double 6 | #define kiss_fftr_cfg kiss_fftr_cfg_double 7 | #define kiss_fftr_alloc kiss_fftr_alloc_double 8 | #define kiss_fftr kiss_fftr_double 9 | #define kiss_fftri kiss_fftri_double 10 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_float.c: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #include "kiss_fftr_float_redefines.h" 4 | 5 | // As the real-to-complex transform uses the complex transform, we need to include the new names as well. 6 | #include "kiss_fft_float_redefines.h" 7 | 8 | #include "tools/kiss_fftr.c" 9 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_float.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FFTR_FLOAT_H 2 | #define KISS_FFTR_FLOAT_H 3 | 4 | #include "kiss_fftr_float_redefines.h" 5 | 6 | #include "tools/kiss_fftr.h" 7 | 8 | #undef kiss_fftr_state 9 | #undef kiss_fftr_cfg 10 | #undef kiss_fftr_alloc 11 | #undef kiss_fftr 12 | #undef kiss_fftri 13 | 14 | #endif // KISS_FFTR_FLOAT_H 15 | -------------------------------------------------------------------------------- /3rd/kissfft/kiss_fftr_float_redefines.h: -------------------------------------------------------------------------------- 1 | // Copyright Andreas Franck - All rights reserved 2 | 3 | #define kiss_fft_scalar float 4 | 5 | #define kiss_fftr_state kiss_fftr_state_float 6 | #define kiss_fftr_cfg kiss_fftr_cfg_float 7 | #define kiss_fftr_alloc kiss_fftr_alloc_float 8 | #define kiss_fftr kiss_fftr_float 9 | #define kiss_fftri kiss_fftri_float 10 | -------------------------------------------------------------------------------- /3rd/kissfft/test/pstats.h: -------------------------------------------------------------------------------- 1 | #ifndef PSTATS_H 2 | #define PSTATS_H 3 | 4 | void pstats_init(void); 5 | void pstats_report(void); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /3rd/kissfft/test/tailscrap.m: -------------------------------------------------------------------------------- 1 | function maxabsdiff=tailscrap() 2 | % test code for circular convolution with the scrapped portion 3 | % at the tail of the buffer, rather than the front 4 | % 5 | % The idea is to rotate the zero-padded h (impulse response) buffer 6 | % to the left nh-1 samples, rotating the junk samples as well. 7 | % This could be very handy in avoiding buffer copies during fast filtering. 8 | nh=10; 9 | nfft=256; 10 | 11 | h=rand(1,nh); 12 | x=rand(1,nfft); 13 | 14 | hpad=[ h(nh) zeros(1,nfft-nh) h(1:nh-1) ]; 15 | 16 | % baseline comparison 17 | y1 = filter(h,1,x); 18 | y1_notrans = y1(nh:nfft); 19 | 20 | % fast convolution 21 | y2 = ifft( fft(hpad) .* fft(x) ); 22 | y2_notrans=y2(1:nfft-nh+1); 23 | 24 | maxabsdiff = max(abs(y2_notrans - y1_notrans)) 25 | 26 | end 27 | -------------------------------------------------------------------------------- /3rd/kissfft/tools/kiss_fftnd.h: -------------------------------------------------------------------------------- 1 | #ifndef KISS_FFTND_H 2 | #define KISS_FFTND_H 3 | 4 | #include "kiss_fft.h" 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | typedef struct kiss_fftnd_state * kiss_fftnd_cfg; 11 | 12 | kiss_fftnd_cfg kiss_fftnd_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem); 13 | void kiss_fftnd(kiss_fftnd_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout); 14 | 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | #endif 19 | -------------------------------------------------------------------------------- /3rd/lib/windows-x86_64/portaudio/portaudio.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/lib/windows-x86_64/portaudio/portaudio.lib -------------------------------------------------------------------------------- /3rd/lib/windows-x86_64/portaudio/portaudio_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/lib/windows-x86_64/portaudio/portaudio_x64.dll -------------------------------------------------------------------------------- /3rd/lib/windows-x86_64/sndfile/libsndfile-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/lib/windows-x86_64/sndfile/libsndfile-1.dll -------------------------------------------------------------------------------- /3rd/lib/windows-x86_64/sndfile/libsndfile-1.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/lib/windows-x86_64/sndfile/libsndfile-1.lib -------------------------------------------------------------------------------- /3rd/pybind11/.gitattributes: -------------------------------------------------------------------------------- 1 | docs/*.svg binary 2 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | *.cmake @henryiii 2 | CMakeLists.txt @henryiii 3 | *.yml @henryiii 4 | *.yaml @henryiii 5 | /tools/ @henryiii 6 | /pybind11/ @henryiii 7 | noxfile.py @henryiii 8 | .clang-format @henryiii 9 | .clang-tidy @henryiii 10 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/pybind/pybind11/discussions/new 5 | about: Please ask and answer questions here, or propose new ideas. 6 | - name: Gitter room 7 | url: https://gitter.im/pybind/Lobby 8 | about: A room for discussing pybind11 with an active community 9 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Maintain dependencies for GitHub Actions 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | groups: 9 | actions: 10 | patterns: 11 | - "*" 12 | ignore: 13 | - dependency-name: actions/checkout 14 | versions: 15 | - "<5" 16 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/labeler.yml: -------------------------------------------------------------------------------- 1 | docs: 2 | all: 3 | - changed-files: 4 | - all-globs-to-all-files: 5 | - '!docs/changelog.rst' 6 | - '!docs/upgrade.rst' 7 | - base-branch: "^(?!dependabot).*" 8 | - base-branch: "^(?!pre-commit-ci).*" 9 | 10 | ci: 11 | - changed-files: 12 | - any-glob-to-any-file: 13 | - '.github/workflows/*.yml' 14 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/labeler_merged.yml: -------------------------------------------------------------------------------- 1 | # Add 'needs changelog` label to any change to code files as long as the `CHANGELOG` hasn't changed 2 | # Skip dependabot and pre-commit-ci PRs 3 | needs changelog: 4 | - all: 5 | - changed-files: 6 | - all-globs-to-all-files: "!docs/changelog.rst" 7 | - base-branch: "^(?!dependabot).*" 8 | - base-branch: "^(?!pre-commit-ci).*" 9 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/matchers/pylint.json: -------------------------------------------------------------------------------- 1 | { 2 | "problemMatcher": [ 3 | { 4 | "severity": "warning", 5 | "pattern": [ 6 | { 7 | "regexp": "^([^:]+):(\\d+):(\\d+): ([A-DF-Z]\\d+): \\033\\[[\\d;]+m([^\\033]+).*$", 8 | "file": 1, 9 | "line": 2, 10 | "column": 3, 11 | "code": 4, 12 | "message": 5 13 | } 14 | ], 15 | "owner": "pylint-warning" 16 | }, 17 | { 18 | "severity": "error", 19 | "pattern": [ 20 | { 21 | "regexp": "^([^:]+):(\\d+):(\\d+): (E\\d+): \\033\\[[\\d;]+m([^\\033]+).*$", 22 | "file": 1, 23 | "line": 2, 24 | "column": 3, 25 | "code": 4, 26 | "message": 5 27 | } 28 | ], 29 | "owner": "pylint-error" 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 5 | ## Description 6 | 7 | 8 | 9 | 10 | ## Suggested changelog entry: 11 | 12 | 14 | 15 | ```rst 16 | 17 | ``` 18 | 19 | 20 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/workflows/emscripten.yaml: -------------------------------------------------------------------------------- 1 | name: WASM 2 | 3 | on: 4 | workflow_dispatch: 5 | pull_request: 6 | branches: 7 | - master 8 | - stable 9 | - v* 10 | 11 | concurrency: 12 | group: ${{ github.workflow }}-${{ github.ref }} 13 | cancel-in-progress: true 14 | 15 | jobs: 16 | build-wasm-emscripten: 17 | name: Pyodide wheel 18 | runs-on: ubuntu-22.04 19 | steps: 20 | - uses: actions/checkout@v4 21 | with: 22 | submodules: true 23 | fetch-depth: 0 24 | 25 | - uses: pypa/cibuildwheel@v2.20 26 | env: 27 | PYODIDE_BUILD_EXPORTS: whole_archive 28 | with: 29 | package-dir: tests 30 | only: cp312-pyodide_wasm32 31 | -------------------------------------------------------------------------------- /3rd/pybind11/.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: Labeler 2 | on: 3 | pull_request_target: 4 | types: [closed] 5 | 6 | permissions: {} 7 | 8 | jobs: 9 | label: 10 | name: Labeler 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: read 14 | pull-requests: write 15 | steps: 16 | 17 | - uses: actions/labeler@v5 18 | if: > 19 | github.event.pull_request.merged == true && 20 | !startsWith(github.event.pull_request.title, 'chore(deps):') && 21 | !startsWith(github.event.pull_request.title, 'ci(fix):') && 22 | !startsWith(github.event.pull_request.title, 'docs(changelog):') 23 | with: 24 | repo-token: ${{ secrets.GITHUB_TOKEN }} 25 | configuration-path: .github/labeler_merged.yml 26 | -------------------------------------------------------------------------------- /3rd/pybind11/.gitignore: -------------------------------------------------------------------------------- 1 | CMakeCache.txt 2 | CMakeFiles 3 | Makefile 4 | cmake_install.cmake 5 | cmake_uninstall.cmake 6 | .DS_Store 7 | *.so 8 | *.pyd 9 | *.dll 10 | *.sln 11 | *.sdf 12 | *.opensdf 13 | *.vcxproj 14 | *.vcxproj.user 15 | *.filters 16 | example.dir 17 | Win32 18 | x64 19 | Release 20 | Debug 21 | .vs 22 | CTestTestfile.cmake 23 | Testing 24 | autogen 25 | MANIFEST 26 | /.ninja_* 27 | /*.ninja 28 | /docs/.build 29 | *.py[co] 30 | *.egg-info 31 | *~ 32 | .*.swp 33 | .DS_Store 34 | /dist 35 | /*build* 36 | .cache/ 37 | sosize-*.txt 38 | pybind11Config*.cmake 39 | pybind11Targets.cmake 40 | /*env* 41 | /.vscode 42 | /pybind11/include/* 43 | /pybind11/share/* 44 | /docs/_build/* 45 | .ipynb_checkpoints/ 46 | tests/main.cpp 47 | -------------------------------------------------------------------------------- /3rd/pybind11/.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # https://blog.readthedocs.com/migrate-configuration-v2/ 2 | 3 | version: 2 4 | 5 | build: 6 | os: ubuntu-22.04 7 | apt_packages: 8 | - librsvg2-bin 9 | tools: 10 | python: "3.11" 11 | 12 | sphinx: 13 | configuration: docs/conf.py 14 | 15 | python: 16 | install: 17 | - requirements: docs/requirements.txt 18 | 19 | formats: 20 | - pdf 21 | -------------------------------------------------------------------------------- /3rd/pybind11/MANIFEST.in: -------------------------------------------------------------------------------- 1 | prune tests 2 | recursive-include pybind11/include/pybind11 *.h 3 | recursive-include pybind11 *.py 4 | recursive-include pybind11 py.typed 5 | include pybind11/share/cmake/pybind11/*.cmake 6 | include LICENSE README.rst SECURITY.md pyproject.toml setup.py setup.cfg 7 | -------------------------------------------------------------------------------- /3rd/pybind11/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Security updates are applied only to the latest release. 6 | 7 | ## Reporting a Vulnerability 8 | 9 | If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released. 10 | 11 | Please disclose it at [security advisory](https://github.com/pybind/pybind11/security/advisories/new). 12 | 13 | This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure. 14 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/Doxyfile: -------------------------------------------------------------------------------- 1 | PROJECT_NAME = pybind11 2 | INPUT = ../include/pybind11/ 3 | RECURSIVE = YES 4 | 5 | GENERATE_HTML = NO 6 | GENERATE_LATEX = NO 7 | GENERATE_XML = YES 8 | XML_OUTPUT = .build/doxygenxml 9 | XML_PROGRAMLISTING = YES 10 | 11 | MACRO_EXPANSION = YES 12 | EXPAND_ONLY_PREDEF = YES 13 | EXPAND_AS_DEFINED = PYBIND11_RUNTIME_EXCEPTION 14 | 15 | ALIASES = "rst=\verbatim embed:rst" 16 | ALIASES += "endrst=\endverbatim" 17 | 18 | QUIET = YES 19 | WARNINGS = YES 20 | WARN_IF_UNDOCUMENTED = NO 21 | PREDEFINED = PYBIND11_NOINLINE 22 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | .highlight .go { 2 | color: #707070; 3 | } 4 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/advanced/pycpp/index.rst: -------------------------------------------------------------------------------- 1 | Python C++ interface 2 | #################### 3 | 4 | pybind11 exposes Python types and functions using thin C++ wrappers, which 5 | makes it possible to conveniently call Python code from C++ without resorting 6 | to Python's C API. 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | object 12 | numpy 13 | utilities 14 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/cmake/index.rst: -------------------------------------------------------------------------------- 1 | CMake helpers 2 | ------------- 3 | 4 | Pybind11 can be used with ``add_subdirectory(extern/pybind11)``, or from an 5 | install with ``find_package(pybind11 CONFIG)``. The interface provided in 6 | either case is functionally identical. 7 | 8 | .. cmake-module:: ../../tools/pybind11Config.cmake.in 9 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/index.rst: -------------------------------------------------------------------------------- 1 | .. only:: latex 2 | 3 | Intro 4 | ===== 5 | 6 | .. include:: readme.rst 7 | 8 | .. only:: not latex 9 | 10 | Contents: 11 | 12 | .. toctree:: 13 | :maxdepth: 1 14 | 15 | changelog 16 | upgrade 17 | 18 | .. toctree:: 19 | :caption: The Basics 20 | :maxdepth: 2 21 | 22 | installing 23 | basics 24 | classes 25 | compiling 26 | 27 | .. toctree:: 28 | :caption: Advanced Topics 29 | :maxdepth: 2 30 | 31 | advanced/functions 32 | advanced/classes 33 | advanced/exceptions 34 | advanced/smart_ptrs 35 | advanced/cast/index 36 | advanced/pycpp/index 37 | advanced/embedding 38 | advanced/misc 39 | 40 | .. toctree:: 41 | :caption: Extra Information 42 | :maxdepth: 1 43 | 44 | faq 45 | benchmark 46 | limitations 47 | reference 48 | cmake/index 49 | -------------------------------------------------------------------------------- /3rd/pybind11/docs/pybind11-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/docs/pybind11-logo.png -------------------------------------------------------------------------------- /3rd/pybind11/docs/pybind11_vs_boost_python1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/docs/pybind11_vs_boost_python1.png -------------------------------------------------------------------------------- /3rd/pybind11/docs/pybind11_vs_boost_python2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/docs/pybind11_vs_boost_python2.png -------------------------------------------------------------------------------- /3rd/pybind11/docs/requirements.in: -------------------------------------------------------------------------------- 1 | breathe 2 | furo 3 | sphinx 4 | sphinx-copybutton 5 | sphinxcontrib-moderncmakedomain 6 | sphinxcontrib-svg2pdfconverter 7 | -------------------------------------------------------------------------------- /3rd/pybind11/include/pybind11/common.h: -------------------------------------------------------------------------------- 1 | #include "detail/common.h" 2 | #warning "Including 'common.h' is deprecated. It will be removed in v3.0. Use 'pybind11.h'." 3 | -------------------------------------------------------------------------------- /3rd/pybind11/include/pybind11/eigen.h: -------------------------------------------------------------------------------- 1 | /* 2 | pybind11/eigen.h: Transparent conversion for dense and sparse Eigen matrices 3 | 4 | Copyright (c) 2016 Wenzel Jakob 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #pragma once 11 | 12 | #include "eigen/matrix.h" 13 | -------------------------------------------------------------------------------- /3rd/pybind11/include/pybind11/eigen/common.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2023 The pybind Community. 2 | 3 | #pragma once 4 | 5 | // Common message for `static_assert()`s, which are useful to easily 6 | // preempt much less obvious errors. 7 | #define PYBIND11_EIGEN_MESSAGE_POINTER_TYPES_ARE_NOT_SUPPORTED \ 8 | "Pointer types (in particular `PyObject *`) are not supported as scalar types for Eigen " \ 9 | "types." 10 | -------------------------------------------------------------------------------- /3rd/pybind11/pybind11/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | if sys.version_info < (3, 7): # noqa: UP036 6 | msg = "pybind11 does not support Python < 3.7. v2.12 was the last release supporting Python 3.6." 7 | raise ImportError(msg) 8 | 9 | 10 | from ._version import __version__, version_info 11 | from .commands import get_cmake_dir, get_include, get_pkgconfig_dir 12 | 13 | __all__ = ( 14 | "version_info", 15 | "__version__", 16 | "get_include", 17 | "get_cmake_dir", 18 | "get_pkgconfig_dir", 19 | ) 20 | -------------------------------------------------------------------------------- /3rd/pybind11/pybind11/_version.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | 4 | def _to_int(s: str) -> int | str: 5 | try: 6 | return int(s) 7 | except ValueError: 8 | return s 9 | 10 | 11 | __version__ = "2.13.6" 12 | version_info = tuple(_to_int(s) for s in __version__.split(".")) 13 | -------------------------------------------------------------------------------- /3rd/pybind11/pybind11/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/pybind11/py.typed -------------------------------------------------------------------------------- /3rd/pybind11/tests/eigen_tensor_avoid_stl_array.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | tests/eigen_tensor.cpp -- automatic conversion of Eigen Tensor 3 | 4 | All rights reserved. Use of this source code is governed by a 5 | BSD-style license that can be found in the LICENSE file. 6 | */ 7 | 8 | #ifndef EIGEN_AVOID_STL_ARRAY 9 | # define EIGEN_AVOID_STL_ARRAY 10 | #endif 11 | 12 | #include "test_eigen_tensor.inl" 13 | 14 | PYBIND11_MODULE(eigen_tensor_avoid_stl_array, m, pybind11::mod_gil_not_used()) { 15 | eigen_tensor_test::test_module(m); 16 | } 17 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/exo_planet_pybind11.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 The pybind Community. 2 | 3 | #if defined(PYBIND11_INTERNALS_VERSION) 4 | # undef PYBIND11_INTERNALS_VERSION 5 | #endif 6 | #define PYBIND11_INTERNALS_VERSION 900000001 7 | 8 | #include "test_cpp_conduit_traveler_bindings.h" 9 | 10 | namespace pybind11_tests { 11 | namespace test_cpp_conduit { 12 | 13 | PYBIND11_MODULE(exo_planet_pybind11, m) { 14 | wrap_traveler(m); 15 | m.def("wrap_very_lonely_traveler", [m]() { wrap_very_lonely_traveler(m); }); 16 | } 17 | 18 | } // namespace test_cpp_conduit 19 | } // namespace pybind11_tests 20 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/extra_python_package/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/tests/extra_python_package/pytest.ini -------------------------------------------------------------------------------- /3rd/pybind11/tests/extra_setuptools/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/3rd/pybind11/tests/extra_setuptools/pytest.ini -------------------------------------------------------------------------------- /3rd/pybind11/tests/home_planet_very_lonely_traveler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 The pybind Community. 2 | 3 | #include "test_cpp_conduit_traveler_bindings.h" 4 | 5 | namespace pybind11_tests { 6 | namespace test_cpp_conduit { 7 | 8 | PYBIND11_MODULE(home_planet_very_lonely_traveler, m) { 9 | m.def("wrap_very_lonely_traveler", [m]() { wrap_very_lonely_traveler(m); }); 10 | } 11 | 12 | } // namespace test_cpp_conduit 13 | } // namespace pybind11_tests 14 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/pyproject.toml: -------------------------------------------------------------------------------- 1 | # Warning: this is currently used for pyodide, and is not a general out-of-tree 2 | # builder for the tests (yet). Specifically, wheels can't be built from SDists. 3 | 4 | [build-system] 5 | requires = ["scikit-build-core"] 6 | build-backend = "scikit_build_core.build" 7 | 8 | [project] 9 | name = "pybind11_tests" 10 | version = "0.0.1" 11 | dependencies = ["pytest", "pytest-timeout", "numpy", "scipy"] 12 | 13 | [tool.scikit-build] 14 | # Hide a warning while we also support CMake < 3.15 15 | cmake.version = ">=3.15" 16 | 17 | [tool.scikit-build.cmake.define] 18 | PYBIND11_FINDPYTHON = true 19 | 20 | [tool.cibuildwheel] 21 | test-command = "pytest -o timeout=0 -p no:cacheprovider {project}/tests/test_*.py" 22 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | minversion = 3.10 3 | norecursedirs = test_* extra_* 4 | xfail_strict = True 5 | addopts = 6 | # show summary of tests 7 | -ra 8 | # capture only Python print and C++ py::print, but not C output (low-level Python errors) 9 | --capture=sys 10 | # Show local info when a failure occurs 11 | --showlocals 12 | log_cli_level = info 13 | filterwarnings = 14 | # make warnings into errors but ignore certain third-party extension issues 15 | error 16 | # somehow, some DeprecationWarnings do not get turned into errors 17 | always::DeprecationWarning 18 | # importing scipy submodules on some version of Python 19 | ignore::ImportWarning 20 | # bogus numpy ABI warning (see numpy/#432) 21 | ignore:.*numpy.dtype size changed.*:RuntimeWarning 22 | ignore:.*numpy.ufunc size changed.*:RuntimeWarning 23 | default:The global interpreter lock:RuntimeWarning 24 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_async.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | import pytest 6 | 7 | asyncio = pytest.importorskip("asyncio") 8 | m = pytest.importorskip("pybind11_tests.async_module") 9 | 10 | if sys.platform.startswith("emscripten"): 11 | pytest.skip("Can't run a new event_loop in pyodide", allow_module_level=True) 12 | 13 | 14 | @pytest.fixture 15 | def event_loop(): 16 | loop = asyncio.new_event_loop() 17 | yield loop 18 | loop.close() 19 | 20 | 21 | async def get_await_result(x): 22 | return await x 23 | 24 | 25 | def test_await(event_loop): 26 | assert event_loop.run_until_complete(get_await_result(m.SupportsAsync())) == 5 27 | 28 | 29 | def test_await_missing(event_loop): 30 | with pytest.raises(TypeError): 31 | event_loop.run_until_complete(get_await_result(m.DoesNotSupportAsync())) 32 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_cmake_build/embed.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace py = pybind11; 3 | 4 | PYBIND11_EMBEDDED_MODULE(test_cmake_build, m) { 5 | m.def("add", [](int i, int j) { return i + j; }); 6 | } 7 | 8 | int main(int argc, char *argv[]) { 9 | if (argc != 2) { 10 | throw std::runtime_error("Expected test.py file as the first argument"); 11 | } 12 | auto *test_py_file = argv[1]; 13 | 14 | py::scoped_interpreter guard{}; 15 | 16 | auto m = py::module_::import("test_cmake_build"); 17 | if (m.attr("add")(1, 2).cast() != 3) { 18 | throw std::runtime_error("embed.cpp failed"); 19 | } 20 | 21 | py::module_::import("sys").attr("argv") = py::make_tuple("test.py", "embed.cpp"); 22 | py::eval_file(test_py_file, py::globals()); 23 | } 24 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_cmake_build/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace py = pybind11; 3 | 4 | PYBIND11_MODULE(test_cmake_build, m, py::mod_gil_not_used()) { 5 | m.def("add", [](int i, int j) { return i + j; }); 6 | } 7 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_cmake_build/test.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | import test_cmake_build 6 | 7 | assert isinstance(__file__, str) # Test this is properly set 8 | 9 | assert test_cmake_build.add(1, 2) == 3 10 | print(f"{sys.argv[1]} imports, runs, and adds: 1 + 2 = 3") 11 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_const_name.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import pytest 4 | 5 | from pybind11_tests import const_name as m 6 | 7 | 8 | @pytest.mark.parametrize("func", [m.const_name_tests, m.underscore_tests]) 9 | @pytest.mark.parametrize( 10 | ("selector", "expected"), 11 | enumerate( 12 | ( 13 | "", 14 | "A", 15 | "Bd", 16 | "Cef", 17 | "%", 18 | "%", 19 | "T1", 20 | "U2", 21 | "D1", 22 | "E2", 23 | "KeepAtEnd", 24 | ) 25 | ), 26 | ) 27 | def test_const_name(func, selector, expected): 28 | if isinstance(func, str): 29 | pytest.skip(func) 30 | text = func(selector) 31 | assert text == expected 32 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_cpp_conduit.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 The pybind Community. 2 | 3 | #include "pybind11_tests.h" 4 | #include "test_cpp_conduit_traveler_bindings.h" 5 | 6 | #include 7 | 8 | namespace pybind11_tests { 9 | namespace test_cpp_conduit { 10 | 11 | TEST_SUBMODULE(cpp_conduit, m) { 12 | m.attr("PYBIND11_PLATFORM_ABI_ID") = py::bytes(PYBIND11_PLATFORM_ABI_ID); 13 | m.attr("cpp_type_info_capsule_Traveler") 14 | = py::capsule(&typeid(Traveler), typeid(std::type_info).name()); 15 | m.attr("cpp_type_info_capsule_int") = py::capsule(&typeid(int), typeid(std::type_info).name()); 16 | 17 | wrap_traveler(m); 18 | wrap_lonely_traveler(m); 19 | } 20 | 21 | } // namespace test_cpp_conduit 22 | } // namespace pybind11_tests 23 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_cpp_conduit_traveler_types.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 The pybind Community. 2 | 3 | #pragma once 4 | 5 | #include 6 | 7 | namespace pybind11_tests { 8 | namespace test_cpp_conduit { 9 | 10 | struct Traveler { 11 | explicit Traveler(const std::string &luggage) : luggage(luggage) {} 12 | std::string luggage; 13 | }; 14 | 15 | struct PremiumTraveler : Traveler { 16 | explicit PremiumTraveler(const std::string &luggage, int points) 17 | : Traveler(luggage), points(points) {} 18 | int points; 19 | }; 20 | 21 | struct LonelyTraveler {}; 22 | struct VeryLonelyTraveler : LonelyTraveler {}; 23 | 24 | } // namespace test_cpp_conduit 25 | } // namespace pybind11_tests 26 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_eigen_tensor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | tests/eigen_tensor.cpp -- automatic conversion of Eigen Tensor 3 | 4 | All rights reserved. Use of this source code is governed by a 5 | BSD-style license that can be found in the LICENSE file. 6 | */ 7 | 8 | #define PYBIND11_TEST_EIGEN_TENSOR_NAMESPACE eigen_tensor 9 | 10 | #ifdef EIGEN_AVOID_STL_ARRAY 11 | # undef EIGEN_AVOID_STL_ARRAY 12 | #endif 13 | 14 | #include "test_eigen_tensor.inl" 15 | 16 | #include "pybind11_tests.h" 17 | 18 | test_initializer egien_tensor("eigen_tensor", eigen_tensor_test::test_module); 19 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_embed/external_module.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace py = pybind11; 4 | 5 | /* Simple test module/test class to check that the referenced internals data of external pybind11 6 | * modules aren't preserved over a finalize/initialize. 7 | */ 8 | 9 | PYBIND11_MODULE(external_module, m, py::mod_gil_not_used()) { 10 | class A { 11 | public: 12 | explicit A(int value) : v{value} {}; 13 | int v; 14 | }; 15 | 16 | py::class_(m, "A").def(py::init()).def_readwrite("value", &A::v); 17 | 18 | m.def("internals_at", 19 | []() { return reinterpret_cast(&py::detail::get_internals()); }); 20 | } 21 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_embed/test_interpreter.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import sys 4 | 5 | from widget_module import Widget 6 | 7 | 8 | class DerivedWidget(Widget): 9 | def __init__(self, message): 10 | super().__init__(message) 11 | 12 | def the_answer(self): 13 | return 42 14 | 15 | def argv0(self): 16 | return sys.argv[0] 17 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_embed/test_trampoline.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import trampoline_module 4 | 5 | 6 | def func(): 7 | class Test(trampoline_module.test_override_cache_helper): 8 | def func(self): 9 | return 42 10 | 11 | return Test() 12 | 13 | 14 | def func2(): 15 | class Test(trampoline_module.test_override_cache_helper): 16 | pass 17 | 18 | return Test() 19 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_eval_call.py: -------------------------------------------------------------------------------- 1 | # This file is called from 'test_eval.py' 2 | from __future__ import annotations 3 | 4 | if "call_test2" in locals(): 5 | call_test2(y) # noqa: F821 undefined name 6 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_exceptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "pybind11_tests.h" 3 | 4 | #include 5 | 6 | // shared exceptions for cross_module_tests 7 | 8 | class PYBIND11_EXPORT_EXCEPTION shared_exception : public pybind11::builtin_exception { 9 | public: 10 | using builtin_exception::builtin_exception; 11 | explicit shared_exception() : shared_exception("") {} 12 | void set_error() const override { py::set_error(PyExc_RuntimeError, what()); } 13 | }; 14 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_tagbased_polymorphic.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import tagbased_polymorphic as m 4 | 5 | 6 | def test_downcast(): 7 | zoo = m.create_zoo() 8 | assert [type(animal) for animal in zoo] == [ 9 | m.Labrador, 10 | m.Dog, 11 | m.Chihuahua, 12 | m.Cat, 13 | m.Panther, 14 | ] 15 | assert [animal.name for animal in zoo] == [ 16 | "Fido", 17 | "Ginger", 18 | "Hertzl", 19 | "Tiger", 20 | "Leo", 21 | ] 22 | zoo[1].sound = "woooooo" 23 | assert [dog.bark() for dog in zoo[:3]] == [ 24 | "Labrador Fido goes WOOF!", 25 | "Dog Ginger goes woooooo", 26 | "Chihuahua Hertzl goes iyiyiyiyiyi and runs in circles", 27 | ] 28 | assert [cat.purr() for cat in zoo[3:]] == ["mrowr", "mrrrRRRRRR"] 29 | zoo[0].excitement -= 1000 30 | assert zoo[0].excitement == 14000 31 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_type_caster_std_function_specializations.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import type_caster_std_function_specializations as m 4 | 5 | 6 | def test_callback_with_special_return(): 7 | def return_special(): 8 | return m.SpecialReturn() 9 | 10 | def raise_exception(): 11 | raise ValueError("called raise_exception.") 12 | 13 | assert return_special().value == 99 14 | assert m.call_callback_with_special_return(return_special).value == 199 15 | assert m.call_callback_with_special_return(raise_exception).value == 200 16 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_union.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | tests/test_class.cpp -- test py::class_ definitions and basic functionality 3 | 4 | Copyright (c) 2019 Roland Dreier 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #include "pybind11_tests.h" 11 | 12 | TEST_SUBMODULE(union_, m) { 13 | union TestUnion { 14 | int value_int; 15 | unsigned value_uint; 16 | }; 17 | 18 | py::class_(m, "TestUnion") 19 | .def(py::init<>()) 20 | .def_readonly("as_int", &TestUnion::value_int) 21 | .def_readwrite("as_uint", &TestUnion::value_uint); 22 | } 23 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_union.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import union_ as m 4 | 5 | 6 | def test_union(): 7 | instance = m.TestUnion() 8 | 9 | instance.as_uint = 10 10 | assert instance.as_int == 10 11 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_unnamed_namespace_b.cpp: -------------------------------------------------------------------------------- 1 | #include "pybind11_tests.h" 2 | 3 | namespace { 4 | struct any_struct {}; 5 | } // namespace 6 | 7 | TEST_SUBMODULE(unnamed_namespace_b, m) { 8 | if (py::detail::get_type_info(typeid(any_struct)) == nullptr) { 9 | py::class_(m, "unnamed_namespace_b_any_struct"); 10 | } else { 11 | m.attr("unnamed_namespace_b_any_struct") = py::none(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_unnamed_namespace_b.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pybind11_tests import unnamed_namespace_b as m 4 | 5 | 6 | def test_have_attr_any_struct(): 7 | assert hasattr(m, "unnamed_namespace_b_any_struct") 8 | -------------------------------------------------------------------------------- /3rd/pybind11/tests/test_vector_unique_ptr_member.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import pytest 4 | 5 | from pybind11_tests import vector_unique_ptr_member as m 6 | 7 | 8 | @pytest.mark.parametrize("num_elems", range(3)) 9 | def test_create(num_elems): 10 | vo = m.VectorOwner.Create(num_elems) 11 | assert vo.data_size() == num_elems 12 | 13 | 14 | def test_cast(): 15 | vo = m.VectorOwner.Create(0) 16 | assert m.py_cast_VectorOwner_ptr(vo) is vo 17 | -------------------------------------------------------------------------------- /3rd/pybind11/tools/JoinPaths.cmake: -------------------------------------------------------------------------------- 1 | # This module provides function for joining paths 2 | # known from most languages 3 | # 4 | # SPDX-License-Identifier: (MIT OR CC0-1.0) 5 | # Copyright 2020 Jan Tojnar 6 | # https://github.com/jtojnar/cmake-snips 7 | # 8 | # Modelled after Python’s os.path.join 9 | # https://docs.python.org/3.7/library/os.path.html#os.path.join 10 | # Windows not supported 11 | function(join_paths joined_path first_path_segment) 12 | set(temp_path "${first_path_segment}") 13 | foreach(current_segment IN LISTS ARGN) 14 | if(NOT ("${current_segment}" STREQUAL "")) 15 | if(IS_ABSOLUTE "${current_segment}") 16 | set(temp_path "${current_segment}") 17 | else() 18 | set(temp_path "${temp_path}/${current_segment}") 19 | endif() 20 | endif() 21 | endforeach() 22 | set(${joined_path} "${temp_path}" PARENT_SCOPE) 23 | endfunction() 24 | -------------------------------------------------------------------------------- /3rd/pybind11/tools/pybind11.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix_for_pc_file@ 2 | includedir=@includedir_for_pc_file@ 3 | 4 | Name: @PROJECT_NAME@ 5 | Description: Seamless operability between C++11 and Python 6 | Version: @PROJECT_VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /3rd/pybind11/tools/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools>=42", "wheel"] 3 | build-backend = "setuptools.build_meta" 4 | -------------------------------------------------------------------------------- /cmake_modules/FindSphinx.cmake: -------------------------------------------------------------------------------- 1 | find_program(SPHINX_EXECUTABLE NAMES sphinx-build 2 | HINTS 3 | $ENV{SPHINX_DIR} 4 | PATH_SUFFIXES bin 5 | DOC "Sphinx documentation generator" 6 | ) 7 | 8 | include(FindPackageHandleStandardArgs) 9 | 10 | find_package_handle_standard_args(Sphinx DEFAULT_MSG 11 | SPHINX_EXECUTABLE 12 | ) 13 | 14 | mark_as_advanced(SPHINX_EXECUTABLE) 15 | -------------------------------------------------------------------------------- /cmake_modules/Matlabdef.def: -------------------------------------------------------------------------------- 1 | EXPORTS mexFunction -------------------------------------------------------------------------------- /cmake_modules/change_dependency_installname.sh: -------------------------------------------------------------------------------- 1 | #fix install names in a 2nd level dependency. 2 | 3 | loadlibname=$(otool -l $2 | grep -F "$1." | awk -F"name " '{print $2}' | awk -F\( '{print $1}') 4 | install_name_tool -change $loadlibname @rpath/$1.dylib $2 -------------------------------------------------------------------------------- /cmake_modules/package_resources/VISR-launchagent.plist.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | my.startup 7 | ProgramArguments 8 | 9 | sh 10 | -c 11 | 12 | launchctl setenv OPENBLAS_NUM_THREADS 1 13 | launchctl setenv PYTHONPATH @CMAKE_INSTALL_PREFIX@/python 14 | launchctl setenv PYTHONHOME PYTHONHOME_PLACEHOLDER 15 | 16 | 17 | RunAtLoad 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /cmake_modules/package_resources/welcome.txt.in: -------------------------------------------------------------------------------- 1 | Welcome to the installation of the VISR framework version @VISR_VERSION_STRING@. 2 | 3 | This installer will guide you through the setup process. 4 | 5 | The files will be installed to @CMAKE_INSTALL_PREFIX@. 6 | -------------------------------------------------------------------------------- /cmake_modules/resources/s3a_logo.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/cmake_modules/resources/s3a_logo.icns -------------------------------------------------------------------------------- /cmake_modules/resources/s3a_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/cmake_modules/resources/s3a_logo.jpg -------------------------------------------------------------------------------- /cmake_modules/resources/s3a_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/cmake_modules/resources/s3a_logo.png -------------------------------------------------------------------------------- /cmake_modules/s3a_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/cmake_modules/s3a_logo.png -------------------------------------------------------------------------------- /config/bbc/bs2051-0+2+0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /config/bbc/bs2051-2+5+0-speakers-s3a.txt: -------------------------------------------------------------------------------- 1 | % Positions 2 | % id = identity for triangularisation 3 | % chan = output audio channel 4 | % 5 | % cartesians 6 | % (0,0,0) is at the centre of the Audio Lab: 1.95m and 2.35m from the inside bounding surfaces of the frame, and 1.22m from the floor. 7 | % id chan x(m) y(m) z(m) 8 | 9 | c 1 7 -0.00000000 1.99400000 0.00000000 10 | c 2 8 1.18600500 2.05422092 0.00000000 11 | c 3 6 -1.18600500 2.05422092 0.00000000 12 | c 4 12 2.31110822 -0.84117460 0.00000000 13 | c 5 16 -2.31110822 -0.84117460 0.00000000 14 | c 6 22 0.73168352 1.26731303 1.22791074 15 | c 7 20 -0.73168352 1.26731303 1.22791074 16 | 17 | t 1 1 2 6 18 | t 2 1 3 7 19 | t 3 1 6 7 20 | t 4 2 4 6 21 | t 5 3 5 7 22 | t 6 4 5 7 23 | t 7 4 6 7 24 | -------------------------------------------------------------------------------- /config/bbc/bs2051-3+7+0-speakers-s3a.txt: -------------------------------------------------------------------------------- 1 | % Positions 2 | % id = identity for triangularisation 3 | % chan = output audio channel 4 | % 5 | % cartesians 6 | % (0,0,0) is at the centre of the Audio Lab: 1.95m and 2.35m from the inside bounding surfaces of the frame, and 1.22m from the floor. 7 | % id chan x(m) y(m) z(m) 8 | 9 | c 1 7 -0.00000000 1.99400000 0.00000000 10 | c 2 8 1.18600500 2.05422092 0.00000000 11 | c 3 6 -1.18600500 2.05422092 0.00000000 12 | c 4 11 2.28400000 0.00000000 0.00000000 13 | c 5 17 -2.28400000 0.00000000 0.00000000 14 | c 6 13 2.12565491 -2.12565491 0.00000000 15 | c 7 15 -2.12565491 -2.12565491 0.00000000 16 | c 8 23 1.03475676 1.03475676 1.22791074 17 | c 9 19 -1.03475676 1.03475676 1.22791074 18 | c 10 27 0.00000000 -1.46336704 1.22791074 19 | 20 | t 1 1 2 8 21 | t 2 1 3 9 22 | t 3 1 8 9 23 | t 4 2 4 8 24 | t 5 3 5 9 25 | t 6 4 6 8 26 | t 7 4 8 9 27 | t 8 5 7 9 28 | t 9 6 7 10 29 | t 10 6 8 10 30 | t 11 7 9 10 31 | t 12 8 9 10 32 | -------------------------------------------------------------------------------- /config/bbc/bs2051-4+5+0-speakers-s3a.txt: -------------------------------------------------------------------------------- 1 | % Positions 2 | % id = identity for triangularisation 3 | % chan = output audio channel 4 | % 5 | % cartesians 6 | % (0,0,0) is at the centre of the Audio Lab: 1.95m and 2.35m from the inside bounding surfaces of the frame, and 1.22m from the floor. 7 | % id chan x(m) y(m) z(m) 8 | 9 | c 1 7 -0.00000000 1.99400000 0.00000000 10 | c 2 8 1.18600500 2.05422092 0.00000000 11 | c 3 6 -1.18600500 2.05422092 0.00000000 12 | c 4 12 2.31110822 -0.84117460 0.00000000 13 | c 5 16 -2.31110822 -0.84117460 0.00000000 14 | c 6 22 0.73168352 1.26731303 1.22791074 15 | c 7 20 -0.73168352 1.26731303 1.22791074 16 | c 8 25 1.37511521 -0.50050100 1.22791074 17 | c 9 29 -1.37511521 -0.50050100 1.22791074 18 | 19 | t 1 1 2 6 20 | t 2 1 3 7 21 | t 3 1 6 7 22 | t 4 2 4 6 23 | t 5 3 5 7 24 | t 6 4 5 8 25 | t 7 4 6 8 26 | t 8 5 7 9 27 | t 9 5 8 9 28 | t 10 6 7 8 29 | t 11 7 8 9 30 | -------------------------------------------------------------------------------- /config/bbc/bs2051-4+5+1-speakers-s3a.txt: -------------------------------------------------------------------------------- 1 | % Positions 2 | % id = identity for triangularisation 3 | % chan = output audio channel 4 | % 5 | % cartesians 6 | % (0,0,0) is at the centre of the Audio Lab: 1.95m and 2.35m from the inside bounding surfaces of the frame, and 1.22m from the floor. 7 | % id chan x(m) y(m) z(m) 8 | 9 | c 1 7 -0.00000000 1.99400000 0.00000000 10 | c 2 8 1.18600500 2.05422092 0.00000000 11 | c 3 6 -1.18600500 2.05422092 0.00000000 12 | c 4 12 2.31110822 -0.84117460 0.00000000 13 | c 5 16 -2.31110822 -0.84117460 0.00000000 14 | c 6 22 0.73168352 1.26731303 1.22791074 15 | c 7 20 -0.73168352 1.26731303 1.22791074 16 | c 8 25 1.37511521 -0.50050100 1.22791074 17 | c 9 29 -1.37511521 -0.50050100 1.22791074 18 | 19 | t 1 1 2 6 20 | t 2 1 3 7 21 | t 3 1 6 7 22 | t 4 2 4 6 23 | t 5 3 5 7 24 | t 6 4 5 8 25 | t 7 4 6 8 26 | t 8 5 7 9 27 | t 9 5 8 9 28 | t 10 6 7 8 29 | t 11 7 8 9 30 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-0+2+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 7 -30, 0, 2.37201 ; M-030 14 | 5 30, 0, 2.37201 ; M+030 15 | ; dummy God speaker 16 | -1 0, 90, 1.500 ; T+000 17 | ; dummy Devil speaker 18 | -1 0, -90, 1.500 ; D+000 19 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-0+5+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 11 -110, 0, 2.45943 ; M-110 17 | 15 110, 0, 2.45943 ; M+110 18 | ; dummy God speaker 19 | -1 0, 90, 1.500 ; T+000 20 | ; dummy Devil speaker 21 | -1 0, -90, 1.500 ; D+000 22 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-2+5+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 11 -110, 0, 2.45943 ; M-110 17 | 15 110, 0, 2.45943 ; M+110 18 | 21 -30, 40, 1.91029 ; U-030 19 | 19 30, 40, 1.91029 ; U+030 20 | ; dummy God speaker 21 | -1 0, 90, 1.500 ; T+000 22 | ; dummy Devil speaker 23 | -1 0, -90, 1.500 ; D+000 24 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-3+7+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 10 -90, 0, 2.284 ; M-090 17 | 16 90, 0, 2.284 ; M+090 18 | 12 -135, 0, 3.00613 ; M-135 19 | 14 135, 0, 3.00613 ; M+135 20 | 22 -45, 40, 1.91029 ; U-045 21 | 18 45, 40, 1.91029 ; U+045 22 | 26 -180, 40, 1.91029 ; U-180 U+180 23 | ; dummy God speaker 24 | -1 0, 90, 1.500 ; T+000 25 | ; dummy Devil speaker 26 | -1 0, -90, 1.500 ; D+000 27 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-4+5+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 11 -110, 0, 2.45943 ; M-110 17 | 15 110, 0, 2.45943 ; M+110 18 | 21 -30, 40, 1.91029 ; U-030 19 | 19 30, 40, 1.91029 ; U+030 20 | 24 -110, 40, 1.91029 ; U-110 21 | 28 110, 40, 1.91029 ; U+110 22 | ; dummy God speaker 23 | -1 0, 90, 1.500 ; T+000 24 | ; dummy Devil speaker 25 | -1 0, -90, 1.500 ; D+000 26 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-4+5+1-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 11 -110, 0, 2.45943 ; M-110 17 | 15 110, 0, 2.45943 ; M+110 18 | 21 -30, 40, 1.91029 ; U-030 19 | 19 30, 40, 1.91029 ; U+030 20 | 24 -110, 40, 1.91029 ; U-110 21 | 28 110, 40, 1.91029 ; U+110 22 | ; dummy God speaker 23 | -1 0, 90, 1.500 ; T+000 24 | ; dummy Devil speaker 25 | -1 0, -90, 1.500 ; D+000 26 | -------------------------------------------------------------------------------- /config/bbc/speaker_config_original/bs2051-4+9+0-speakers.txt: -------------------------------------------------------------------------------- 1 | # speaker location definitions 2 | # 3 | # speakers [] 4 | # 5 | # Where is one of: 6 | # 'cart' : channel x,y,z [gain-db] 7 | # 'azimuth' : channel azimuth,radius,height [gain-db] 8 | # 'polar' : channel azimuth,elevation,distance [gain-db] 9 | # 10 | # All angles degrees, radius is distance on 0 elevation plane 11 | 12 | speakers polar 13 | 6 0, 0, 1.994 ; M+000 14 | 7 -30, 0, 2.37201 ; M-030 15 | 5 30, 0, 2.37201 ; M+030 16 | 10 -90, 0, 2.284 ; M-090 17 | 16 90, 0, 2.284 ; M+090 18 | 12 -135, 0, 3.00613 ; M-135 19 | 14 135, 0, 3.00613 ; M+135 20 | 22 -45, 40, 1.91029 ; U-045 21 | 18 45, 40, 1.91029 ; U+045 22 | 24 -110, 40, 1.91029 ; U-110 23 | 28 110, 40, 1.91029 ; U+110 24 | ; dummy God speaker 25 | -1 0, 90, 1.500 ; T+000 26 | ; dummy Devil speaker 27 | -1 0, -90, 1.500 ; D+000 28 | -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_1024taps.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_1024taps.wav -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_128taps.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_128taps.wav -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_256taps.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_256taps.wav -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_512taps.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_512taps.wav -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_512taps_16bit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_512taps_16bit.wav -------------------------------------------------------------------------------- /config/filters/random_phase_allpass_64ch_512taps_32bit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/filters/random_phase_allpass_64ch_512taps_32bit.wav -------------------------------------------------------------------------------- /config/generic/bs2051-0+2+0-no-subwoofer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /config/generic/bs2051-0+2+0-rear-fading.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /config/generic/bs2051-0+2+0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /config/generic/bs2051-0+5+0-no-subwoofer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /config/generic/downmix_matrices/22_2_to_2_0.dat: -------------------------------------------------------------------------------- 1 | 1.0000000e+00 0.0000000e+00 7.0794578e-01 0.0000000e+00 1.0000000e+00 0.0000000e+00 8.9125094e-01 4.4668359e-01 7.0794578e-01 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 7.0794578e-01 7.0794578e-01 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 7.0794578e-01 7.0794578e-01 1.0000000e+00 0.0000000e+00 2 | 0.0000000e+00 1.0000000e+00 7.0794578e-01 0.0000000e+00 0.0000000e+00 1.0000000e+00 4.4668359e-01 8.9125094e-01 7.0794578e-01 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 7.0794578e-01 7.0794578e-01 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 7.0794578e-01 7.0794578e-01 0.0000000e+00 1.0000000e+00 3 | -------------------------------------------------------------------------------- /config/generic/downmix_matrices/downmix_coefs.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/generic/downmix_matrices/downmix_coefs.mat -------------------------------------------------------------------------------- /config/generic/stereo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /config/isvr/audioIfc/jackPortConf.json: -------------------------------------------------------------------------------- 1 | { "ports":[ 2 | { 3 | "captbasename": "Baseinput_", 4 | “captindexes": "0:1" 5 | "inputbasename": "system:capture_" 6 | "inputindexes": "0:1" 7 | }, 8 | { 9 | "playbasename": "Baseoutput_", 10 | “playindexes": "0:1" 11 | “outputbasename": "system:playback_", 12 | "outputindexes": "0:1" 13 | } 14 | ] 15 | }"; -------------------------------------------------------------------------------- /config/isvr/audioIfc/jackSimpleConf.json: -------------------------------------------------------------------------------- 1 | { 2 | "clientname": "BaseRenderer", 3 | "autoconnect" : "true", 4 | "portconfig": 5 | { 6 | "capture": 7 | { 8 | "port": 9 | [{ "externalport" : {"indices": "1:2"} }] 10 | }, 11 | "playback": 12 | { 13 | "port": 14 | [{ "externalport" : {"indices": "1:3"} }] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /config/isvr/audioIfc/portAudioDefConf.json: -------------------------------------------------------------------------------- 1 | { 2 | "sampleformat": "float32Bit", 3 | "interleaved": "false", 4 | "hostapi" : "default" 5 | } 6 | -------------------------------------------------------------------------------- /config/isvr/data/audiolab_gain_delay.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/isvr/data/audiolab_gain_delay.xls -------------------------------------------------------------------------------- /config/isvr/data/gains_distances.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/config/isvr/data/gains_distances.mat -------------------------------------------------------------------------------- /config/isvr/scripts/sparSpeakerPos.m: -------------------------------------------------------------------------------- 1 | % Copyright ISVR 2015 - All rights reserved 2 | % Author: Andreas Franck a.franck@soton.ac.uk 3 | % Calculate the position of the 'spar speakers' in the small ISVR sphere. 4 | function [pos] = sparSpeakerPos( hubSpeakerMtx, idx1, idx2, sparRadius ) 5 | 6 | posUnNorm = 0.5*hubSpeakerMtx(:,idx1) + 0.5*hubSpeakerMtx(:,idx2); 7 | 8 | pos = sparRadius/norm(posUnNorm) * posUnNorm; 9 | 10 | end -------------------------------------------------------------------------------- /config/surrey/2.0_surrey.txt: -------------------------------------------------------------------------------- 1 | 2 | % 5.1 loudspeaker array 3 | % For the University of Surrey array 4 | % Adapted from ITU-R Rec. BS.2051-0 5 | % http://www.itu.int/rec/R-REC-BS.2051-0-201402-I 6 | 7 | % Orientation 8 | % x - forward, y - left, z - up. 9 | % azimuth (theta) - left from front, elevation (phi) - up from horizontal. 10 | 11 | 12 | 13 | 2 % 2D mode for a horizontal array 14 | 15 | 16 | % positions 17 | % id = identity for triangularisation 18 | % chan = output audio channel 19 | 20 | % id chan azim elev distance (m) 21 | p 1 3 30 0 1.68 % Left 22 | p 2 9 -30 0 1.68 % Right 23 | 24 | % triangularisation for VBAP etc 25 | 26 | % 2-tuplets (2D mode) 27 | % id1 id2 28 | 29 | t 1 1 2 30 | 31 | 32 | -------------------------------------------------------------------------------- /config/surrey/5.0_surrey.txt: -------------------------------------------------------------------------------- 1 | 2 | % 5.1 loudspeaker array 3 | % For the University of Surrey array 4 | % Adapted from ITU-R Rec. BS.2051-0 5 | % http://www.itu.int/rec/R-REC-BS.2051-0-201402-I 6 | 7 | % Orientation 8 | % x - forward, y - left, z - up. 9 | % azimuth (theta) - left from front, elevation (phi) - up from horizontal. 10 | 11 | 12 | 13 | 2 % 2D mode for a horizontal array 14 | 15 | 16 | % positions 17 | % id = identity for triangularisation 18 | % chan = output audio channel 19 | 20 | % id chan azim elev distance (m) 21 | p 1 3 30 0 1.68 % Left 22 | p 2 4 0 0 1.68 % Centre 23 | p 3 9 -30 0 1.68 % Right 24 | p 4 12 -110 0 1.68 % Surround right 25 | p 5 5 110 0 1.68 % Surround left 26 | 27 | 28 | 29 | 30 | % triangularisation for VBAP etc 31 | 32 | % 2-tuplets (2D mode) 33 | % id1 id2 34 | 35 | t 1 1 2 36 | t 2 2 3 37 | t 3 3 4 38 | t 4 4 5 39 | t 5 5 1 40 | 41 | 42 | -------------------------------------------------------------------------------- /config/surrey/obsolete_configurations/5.1_surrey.txt: -------------------------------------------------------------------------------- 1 | 2 | % 5.1 loudspeaker array 3 | % For the University of Surrey array 4 | % Adapted from ITU-R Rec. BS.2051-0 5 | % http://www.itu.int/rec/R-REC-BS.2051-0-201402-I 6 | 7 | % Orientation 8 | % x - forward, y - left, z - up. 9 | % azimuth (theta) - left from front, elevation (phi) - up from horizontal. 10 | 11 | 12 | 13 | 2 % 2D mode for a horizontal array 14 | 15 | 16 | % positions 17 | % id = identity for triangularisation 18 | % chan = output audio channel 19 | 20 | % id chan azim elev distance (m) 21 | 22 | p 1 19 30 0 1.8 % Left 23 | p 2 18 0 0 1.8 % Centre 24 | p 3 26 -30 0 1.8 % Right 25 | p 4 21 -110 0 1.8 % Surround right 26 | p 5 25 110 0 1.8 % Surround left 27 | 28 | 29 | 30 | 31 | % triangularisation for VBAP etc 32 | 33 | % 2-tuplets (2D mode) 34 | % id1 id2 35 | 36 | t 1 1 2 37 | t 2 2 3 38 | t 3 3 4 39 | t 4 4 5 40 | t 5 5 1 41 | 42 | 43 | -------------------------------------------------------------------------------- /doc/apidoc/about.rst: -------------------------------------------------------------------------------- 1 | About 2 | =========================== 3 | 4 | About VISR 5 | ---------- 6 | 7 | About this document 8 | ------------------- 9 | 10 | This is the code reference document for the VISR (Versatile Interactive Scene Renderer) software framework. 11 | It describes the software architecture and modules, and provides the API documentation for the C++ and Python interfaces. 12 | In addition, it details the software development process, including obtaining and compiling the source code. 13 | -------------------------------------------------------------------------------- /doc/apidoc/builtin_component_library.rst: -------------------------------------------------------------------------------- 1 | Builtin component library (rcl) 2 | ------------------------------- 3 | 4 | .. .. doxygennamespace:: visr::rcl 5 | .. :members: 6 | -------------------------------------------------------------------------------- /doc/apidoc/css/custom.css: -------------------------------------------------------------------------------- 1 | code { 2 | background-color: #263238; 3 | color: #eceff1; 4 | font-family: monospace; 5 | padding: 0 1px 0 1px; 6 | font-size: 1.0em; 7 | } 8 | 9 | div.document { 10 | background-color: #14482ec7; 11 | } 12 | -------------------------------------------------------------------------------- /doc/apidoc/elementary_functions_library.rst: -------------------------------------------------------------------------------- 1 | Elementary functions Library 2 | ============================ 3 | 4 | Purpose 5 | ------- 6 | 7 | The **efl** library provides a common interface for arithmetic functions commonly used in DSP. 8 | These are mainly vector and matrix arithmethic functions. 9 | These 10 | 11 | 12 | Numeric container classes 13 | ------------------------- 14 | 15 | Arithmetic functions 16 | -------------------- 17 | 18 | .. doxygenfunction:: visr::efl::vectorCopy 19 | :project: visr 20 | -------------------------------------------------------------------------------- /doc/apidoc/index.rst: -------------------------------------------------------------------------------- 1 | .. visr documentation master file, created by 2 | sphinx-quickstart on Wed Jul 18 14:06:39 2018. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Front matter 7 | ============ 8 | 9 | .. toctree:: 10 | :maxdepth: 1 11 | 12 | about 13 | 14 | 15 | Development and Contribution 16 | ============================ 17 | 18 | .. toctree:: 19 | :maxdepth: 2 20 | 21 | git-workflow 22 | 23 | create-build-environment 24 | 25 | Libraries 26 | ========= 27 | 28 | .. toctree:: 29 | :maxdepth: 2 30 | 31 | visr-apidoc 32 | builtin_component_library 33 | runtime_library 34 | objectmodel_library 35 | elementary_functions_library 36 | 37 | -------------------------------------------------------------------------------- /doc/apidoc/objectmodel_library.rst: -------------------------------------------------------------------------------- 1 | Object model library 2 | ==================== 3 | 4 | Purpose 5 | ------- 6 | 7 | API reference 8 | ------------- 9 | 10 | .. doxygennamespace:: visr::objectmodel 11 | :project: visr 12 | -------------------------------------------------------------------------------- /doc/apidoc/runtime_library.rst: -------------------------------------------------------------------------------- 1 | Runtime library 2 | =============== 3 | 4 | Purpose 5 | ------- 6 | 7 | Main classes 8 | ------------ 9 | 10 | .. doxygenclass:: visr::rrl::AudioSignalFlow 11 | :project: visr 12 | 13 | 14 | Checking functions 15 | ------------------ 16 | 17 | Internal classes and functions 18 | ------------------------------ 19 | 20 | -------------------------------------------------------------------------------- /doc/contributing/VISR_corporate_contributor_licence_agreement_v1.1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/contributing/VISR_corporate_contributor_licence_agreement_v1.1.docx -------------------------------------------------------------------------------- /doc/contributing/VISR_corporate_contributor_licence_agreement_v1.1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/contributing/VISR_corporate_contributor_licence_agreement_v1.1.pdf -------------------------------------------------------------------------------- /doc/contributing/VISR_individual_contributor_licence_agreement_v1.1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/contributing/VISR_individual_contributor_licence_agreement_v1.1.docx -------------------------------------------------------------------------------- /doc/contributing/VISR_individual_contributor_licence_agreement_v1.1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/contributing/VISR_individual_contributor_licence_agreement_v1.1.pdf -------------------------------------------------------------------------------- /doc/doxygen/libobjectmodel.dox: -------------------------------------------------------------------------------- 1 | /** 2 | * @page libobjectmodel_mainpage Main documentation page for libobjectmodel 3 | * 4 | * @tableofcontents 5 | * 6 | * @section libobjectmodel_mainpage_overview Overview 7 | * 8 | * @section Source types 9 | * 10 | * @section libobjectmodel_mainpage_parsing Parsing of object metadata 11 | */ 12 | -------------------------------------------------------------------------------- /doc/doxygen/max_msp_externals.dox: -------------------------------------------------------------------------------- 1 | /** 2 | * @page build_instructions_max_msp_externals Building and Using Max/MSP externals 3 | * 4 | * @tableofcontents 5 | * 6 | * @section externals_usage Externals Usage 7 | * In order to use the externals first of all it’s necessary to run Max/Msp in 64-bit mode. To do so just go to the Max/Msp application icon, right-click on it and choose "Get Info" (or select the icon and hit command+I). Uncheck the "Open in 32-bit mode" option. 8 | */ 9 | -------------------------------------------------------------------------------- /doc/doxygen/namespaces.dox: -------------------------------------------------------------------------------- 1 | /** 2 | * @namespace visr 3 | * Global namespace for the VISR project. 4 | */ 5 | namespace visr 6 | { 7 | /** 8 | * @namespace visr::objectmodel 9 | * The documentation for the namespace objectmodel. 10 | * Detailed description follows here. 11 | */ 12 | namespace objectmodel 13 | { 14 | } 15 | } -------------------------------------------------------------------------------- /doc/images/git-model-gitflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/git-model-gitflow.png -------------------------------------------------------------------------------- /doc/images/jackexample.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/jackexample.jpeg -------------------------------------------------------------------------------- /doc/images/jacksimpleexample.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/jacksimpleexample.jpeg -------------------------------------------------------------------------------- /doc/images/s3a_logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/s3a_logo_small.png -------------------------------------------------------------------------------- /doc/images/visr_bst/dynamic_hrir_synthesis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/dynamic_hrir_synthesis.png -------------------------------------------------------------------------------- /doc/images/visr_bst/hoa_object_to_binaural_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/hoa_object_to_binaural_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/hoa_to_binaural_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/hoa_to_binaural_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/object_based_scene_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/object_based_scene_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/object_to_virtual_loudspeaker_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/object_to_virtual_loudspeaker_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/transaural_array_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/transaural_array_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/virtual_loudspeaker_renderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/virtual_loudspeaker_renderer.png -------------------------------------------------------------------------------- /doc/images/visr_bst/visr_atomic_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/visr_atomic_component.png -------------------------------------------------------------------------------- /doc/images/visr_bst/visr_component_schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/visr_component_schematic.png -------------------------------------------------------------------------------- /doc/images/visr_bst/visr_composite_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_bst/visr_composite_component.png -------------------------------------------------------------------------------- /doc/images/visr_macos_installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_macos_installer.png -------------------------------------------------------------------------------- /doc/images/visr_macos_installer_customize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_macos_installer_customize.png -------------------------------------------------------------------------------- /doc/images/visr_object_based_object_model_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_object_based_object_model_hierarchy.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/listening_test_gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/listening_test_gui.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/max_msp_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/max_msp_example.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/object_renderer_plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/object_renderer_plugin.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/object_renderer_signal_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/object_renderer_signal_flow.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/offline_simulation_audio_signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/offline_simulation_audio_signal.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/offline_simulation_energy_direction_difference.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/offline_simulation_energy_direction_difference.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/offline_simulation_gains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/offline_simulation_gains.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/panning_comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/panning_comparison.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/vbap_panner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/vbap_panner.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/vbap_panner_auralisation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/vbap_panner_auralisation.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/visr_atomic_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/visr_atomic_component.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/visr_component_schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/visr_component_schematic.png -------------------------------------------------------------------------------- /doc/images/visr_python_tutorial/visr_composite_component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/visr_python_tutorial/visr_composite_component.png -------------------------------------------------------------------------------- /doc/images/windows_environment_variables_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/windows_environment_variables_editor.png -------------------------------------------------------------------------------- /doc/images/windows_installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/doc/images/windows_installer.png -------------------------------------------------------------------------------- /doc/userdoc/about.rst: -------------------------------------------------------------------------------- 1 | About 2 | =========================== 3 | 4 | The VISR framework is a collection of software for audio processing that forms the backbone for most of the technology created in S3A. In this extensible software framework, complex audio algorithms can be formed by interconnecting existing building blocks, termed components. 5 | 6 | It can be used either interactively in the Python language, in custom applications (for instance in written C++, or integrated into other applications, for instance as DAW plugins or Max/MSP externals). While the VISR provides several renderers and building blocks for spatial and object-based audio, it is nonetheless a generic audio processing framework that can be used in other applications, for example array processing or hearing aid prototypes. The Python integration makes the system accessible, and enables easy algorithm development and prototyping. 7 | -------------------------------------------------------------------------------- /doc/userdoc/css/custom.css: -------------------------------------------------------------------------------- 1 | code { 2 | background-color: #263238; 3 | color: #eceff1; 4 | font-family: monospace; 5 | padding: 0 1px 0 1px; 6 | font-size: 1.0em; 7 | } 8 | 9 | div.document { 10 | background-color: #14482ec7; 11 | } 12 | -------------------------------------------------------------------------------- /doc/userdoc/download.rst: -------------------------------------------------------------------------------- 1 | Download 2 | =========================== 3 | 4 | The VISR framework can be obtained in diffeent forms. 5 | FOr most persons, however, downloading and installing an installer package is the most convenient way to use this framework. 6 | 7 | Installation packages can be downloaded from the `S3A software download page `_ . 8 | 9 | .. todo:: Insert correct S3A software page URL here. 10 | 11 | Installation packages are available for the following platforms: 12 | 13 | Windows (x86_64) 14 | Recent versions (Windows 8 and Windows 10) 64 Bit only 15 | 16 | Mac OS X 17 | Version 10.11 and above, 64 Bit only 18 | 19 | Linux 20 | Ubuntu 16.04 LTS and Ubuntu 18.04 LTS, 64 bit 21 | 22 | Rasspberry Pi (ARM) 23 | Raspbian Stretch, 32 Bit 24 | -------------------------------------------------------------------------------- /doc/userdoc/getting-visr.rst: -------------------------------------------------------------------------------- 1 | .. _getting_visr: 2 | 3 | Getting VISR 4 | ========================= 5 | 6 | .. toctree:: 7 | :maxdepth: 2 8 | 9 | download 10 | installation 11 | sourcecode 12 | support 13 | -------------------------------------------------------------------------------- /doc/userdoc/index.rst: -------------------------------------------------------------------------------- 1 | .. visr documentation master file, created by 2 | sphinx-quickstart on Wed Jul 18 14:06:39 2018. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | :tocdepth: 3 7 | 8 | ================ 9 | VISR User Manual 10 | ================ 11 | 12 | .. toctree:: 13 | :caption: Contents 14 | :name: mastertoc 15 | :maxdepth: 2 16 | 17 | about 18 | getting-started 19 | visr-python-tutorial 20 | getting-visr 21 | using-standalone-renderers 22 | object-based-audio-with-visr 23 | rcl_component_documentation 24 | binaural-synthesis-toolkit 25 | time-frequency-processing 26 | visr-component-api 27 | references 28 | -------------------------------------------------------------------------------- /doc/userdoc/references.rst: -------------------------------------------------------------------------------- 1 | References 2 | ========== 3 | 4 | .. toctree:: 5 | 6 | .. bibliography:: references_main.bib 7 | :style: alpha 8 | -------------------------------------------------------------------------------- /doc/userdoc/sourcecode.rst: -------------------------------------------------------------------------------- 1 | Source Code 2 | =========== 3 | 4 | Alternatively, the VISR framework can be installed and build from source code. 5 | It is hosted at the GitLab repository https://gitlab.eps.surrey.ac.uk:s3a/VISR.git 6 | 7 | To retrieve the source code, clone the repository with 8 | 9 | .. code-block:: bash 10 | 11 | git clone https://gitlab.eps.surrey.ac.uk:s3a/VISR.git 12 | 13 | Setting up a build environment, including the required software tools, and compiling the source code is detailed in the `VISR API documentation `_. 14 | 15 | .. todo:: 16 | Add link to web version of apidoc-html 17 | -------------------------------------------------------------------------------- /doc/userdoc/support.rst: -------------------------------------------------------------------------------- 1 | .. _support: 2 | 3 | Support and help 4 | ---------------- 5 | 6 | Sopport for installing and using the VISR is available through several ways. 7 | 8 | First, you should check the FAQ section of the website (TODO: Insert link here) 9 | 10 | Second, the mailing list (insert link to the registration page of the 3a-software list here). 11 | 12 | Third, problems and supected bugs can be reported on (insert link to issues page of GitLab repository / later GitHub repo). 13 | -------------------------------------------------------------------------------- /doc/userdoc/time-frequency-processing.rst: -------------------------------------------------------------------------------- 1 | .. Copyright Andreas Franck 2020 - All rights reserved. 2 | .. Copyright University of Southampton 2020 - All rights reserved. 3 | 4 | .. _visr_time_frequency_processing: 5 | 6 | Time-Frequency Processing Subsystem 7 | ----------------------------------- 8 | 9 | .. toctree:: 10 | 11 | The time-frequency subsystem is a set of classes (components and parameter types) 12 | implemented in the VISR framework to support modular time-frequency processing of multichannel 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/userdoc/visr-component-api.rst: -------------------------------------------------------------------------------- 1 | 2 | VISR Component API 3 | ================== 4 | 5 | This part describes the programming interface for extending VISR. 6 | 7 | Specifically, it describes the interfaces for implementing components. 8 | Currently, this part is written for C++, but the Python bindings are functionally 9 | identical. 10 | Specific reference documentation for the Python bindings will follow. 11 | 12 | .. toctree:: 13 | :caption: VISR component API 14 | :name: component_api_toc 15 | :maxdepth: 2 16 | 17 | parameter-subsystem 18 | time-api 19 | -------------------------------------------------------------------------------- /doc/userdoc_unused_files/examples.rst: -------------------------------------------------------------------------------- 1 | Examples 2 | =========================== 3 | -------------------------------------------------------------------------------- /doc/userdoc_unused_files/people.rst: -------------------------------------------------------------------------------- 1 | People 2 | =========================== 3 | -------------------------------------------------------------------------------- /doc/userdoc_unused_files/tutorials.rst: -------------------------------------------------------------------------------- 1 | Tutorials 2 | =========================== 3 | -------------------------------------------------------------------------------- /doc/userdoc_unused_files/visr-principles.rst: -------------------------------------------------------------------------------- 1 | VISR principles 2 | =============== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | 7 | Component-Based Audio processing 8 | -------------------------------- 9 | 10 | VISR as a Rendering Framework 11 | ----------------------------- 12 | 13 | Realtime and Offline Processing 14 | ------------------------------- 15 | 16 | Prototyping versus mature signal processing code 17 | ------------------------------------------------ 18 | -------------------------------------------------------------------------------- /resources/s3a_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/resources/s3a_logo.png -------------------------------------------------------------------------------- /src/apps/baseline_renderer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_definitions( -DCMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" ) 4 | 5 | add_executable( baseline_renderer main.cpp options.hpp options.cpp ) 6 | 7 | target_link_libraries(baseline_renderer PRIVATE apputilities_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 8 | target_link_libraries(baseline_renderer PRIVATE signalflows_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 9 | target_link_libraries(baseline_renderer PRIVATE audiointerfaces_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 10 | target_link_libraries(baseline_renderer PRIVATE rrl_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 11 | target_link_libraries(baseline_renderer PRIVATE Boost::filesystem ) 12 | 13 | set_target_properties( baseline_renderer PROPERTIES FOLDER applications ) 14 | 15 | install( TARGETS baseline_renderer DESTINATION bin COMPONENT standalone_applications ) 16 | -------------------------------------------------------------------------------- /src/apps/baseline_renderer/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 4 | #define VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace apps 11 | { 12 | namespace baseline_renderer 13 | { 14 | 15 | class Options: public apputilities::Options 16 | { 17 | public: 18 | Options(); 19 | 20 | ~Options(); 21 | }; 22 | 23 | } // namespace baseline_renderer 24 | } // namespace apps 25 | } // namespace visr 26 | 27 | #endif // #ifndef VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/apps/feedthrough/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_executable( feedthrough_app 4 | main.cpp 5 | options.hpp 6 | options.cpp 7 | signal_flow.cpp ) 8 | 9 | target_link_libraries(feedthrough_app PRIVATE visr_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 10 | target_link_libraries(feedthrough_app PRIVATE rrl_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 11 | target_link_libraries(feedthrough_app PRIVATE apputilities_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 12 | target_link_libraries(feedthrough_app PRIVATE audiointerfaces_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 13 | target_link_libraries(feedthrough_app PRIVATE Boost::filesystem ) 14 | 15 | set_target_properties( feedthrough_app PROPERTIES OUTPUT_NAME feedthrough ) 16 | set_target_properties( feedthrough_app PROPERTIES FOLDER applications ) 17 | 18 | install( TARGETS feedthrough_app DESTINATION bin COMPONENT standalone_applications ) -------------------------------------------------------------------------------- /src/apps/feedthrough/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_APPS_FEEDTHROUGH_OPTIONS_HPP_INCLUDED 4 | #define VISR_APPS_FEEDTHROUGH_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace apps 11 | { 12 | namespace feedthrough 13 | { 14 | 15 | class Options: public apputilities::Options 16 | { 17 | public: 18 | Options(); 19 | 20 | ~Options(); 21 | }; 22 | 23 | } // namespace feedthrough 24 | } // namespace apps 25 | } // namespace visr 26 | 27 | #endif // #ifndef VISR_APPS_FEEDTHROUGH_OPTIONS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/apps/matrix_convolver/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_APPS_MATRIX_CONVOLVER_OPTIONS_HPP_INCLUDED 4 | #define VISR_APPS_MATRIX_CONVOLVER_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace apps 11 | { 12 | namespace matrix_convolver 13 | { 14 | 15 | class Options: public apputilities::Options 16 | { 17 | public: 18 | Options(); 19 | 20 | ~Options(); 21 | }; 22 | 23 | } // namespace matrix_convolver 24 | } // namespace apps 25 | } // namespace visr 26 | 27 | #endif // #ifndef VISR_APPS_MATRIX_CONVOLVER_OPTIONS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/apps/python_runner/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_APPS_PYTHON_FLOW_RUNNER_OPTIONS_HPP_INCLUDED 4 | #define VISR_APPS_PYTHON_FLOW_RUNNER_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | namespace visr 12 | { 13 | namespace apps 14 | { 15 | namespace pythonflowrunner 16 | { 17 | 18 | class Options: public apputilities::Options 19 | { 20 | public: 21 | Options(); 22 | 23 | ~Options(); 24 | }; 25 | 26 | } // namespace pythonflowrunner 27 | } // namespace apps 28 | } // namespace visr 29 | 30 | #endif // #ifndef VISR_APPS_PYTHON_FLOW_RUNNER_OPTIONS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/apps/time_frequency_feedthrough/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_executable( time_frequency_feedthrough main.cpp ) 4 | 5 | target_link_libraries(time_frequency_feedthrough PRIVATE signalflows_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 6 | target_link_libraries(time_frequency_feedthrough PRIVATE rrl_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 7 | target_link_libraries(time_frequency_feedthrough PRIVATE audiointerfaces_${BUILD_LIBRARY_TYPE_FOR_APPS} ) 8 | 9 | set_target_properties( time_frequency_feedthrough PROPERTIES FOLDER applications ) 10 | 11 | install( TARGETS time_frequency_feedthrough DESTINATION bin COMPONENT standalone_applications ) 12 | 13 | -------------------------------------------------------------------------------- /src/apps/visr_renderer/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 4 | #define VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace apps 11 | { 12 | namespace baseline_renderer 13 | { 14 | 15 | class Options: public apputilities::Options 16 | { 17 | public: 18 | Options(); 19 | 20 | ~Options(); 21 | }; 22 | 23 | } // namespace baseline_renderer 24 | } // namespace apps 25 | } // namespace visr 26 | 27 | #endif // #ifndef VISR_APPS_BASELINE_RENDERER_OPTIONS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/libefl/armv7l_neon_32bit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | set( HEADERS 4 | ${CMAKE_CURRENT_SOURCE_DIR}/initialise_library.hpp 5 | ${CMAKE_CURRENT_SOURCE_DIR}/vector_functions.hpp 6 | ) 7 | 8 | set( SOURCES 9 | ${CMAKE_CURRENT_SOURCE_DIR}/initialise_library.cpp 10 | ${CMAKE_CURRENT_SOURCE_DIR}/vector_add.cpp 11 | ${CMAKE_CURRENT_SOURCE_DIR}/vector_multiply.cpp 12 | ${CMAKE_CURRENT_SOURCE_DIR}/vector_multiply_add.cpp 13 | ) 14 | 15 | # Add the architecture-specific files to the efl libraries. 16 | foreach(TARGET_TYPE ${VISR_BUILD_LIBRARY_TYPES} ) 17 | target_sources(efl_${TARGET_TYPE} PRIVATE ${HEADERS} ${SOURCES} ) 18 | endforeach() 19 | -------------------------------------------------------------------------------- /src/libefl/armv7l_neon_32bit/initialise_library.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_LIBEFL_ARMV7L_NEON_32BIT_INITIALISE_LIBRARY_HPP_INCLUDED 4 | #define VISR_LIBEFL_ARMV7L_NEON_32BIT_INITIALISE_LIBRARY_HPP_INCLUDED 5 | 6 | #include "../export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace efl 11 | { 12 | namespace armv7l_neon_32bit 13 | { 14 | 15 | VISR_EFL_LIBRARY_SYMBOL bool initialiseLibrary( char const * processor = "" ); 16 | 17 | VISR_EFL_LIBRARY_SYMBOL bool uninitialiseLibrary(); 18 | 19 | } // namespace armv7l_neon_32bit 20 | } // namespace efl 21 | } // namespace visr 22 | 23 | #endif // #ifndef VISR_LIBEFL_ARMV7L_NEON_32BIT_INITIALISE_LIBRARY_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/libefl/basic_matrix.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "basic_matrix.hpp" 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | namespace efl 10 | { 11 | 12 | template class BasicMatrix; 13 | template class BasicMatrix; 14 | template class BasicMatrix >; 15 | template class BasicMatrix >; 16 | 17 | } // namespace efl 18 | } // namespace visr 19 | -------------------------------------------------------------------------------- /src/libefl/basic_vector.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "basic_vector.hpp" 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | namespace efl 10 | { 11 | 12 | template class BasicVector; 13 | template class BasicVector; 14 | template class BasicVector >; 15 | template class BasicVector >; 16 | 17 | } // namespace efl 18 | } // namespace visr 19 | -------------------------------------------------------------------------------- /src/libefl/db_linear_conversion.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | /** 4 | * @file db_linear_conversion.hpp 5 | * Provide linear scale<->dB conversion without imposing particular data types. 6 | * @author Andreas Franck a.franck@soton.ac.uk 7 | */ 8 | 9 | #ifndef VISR_LIBEFL_DB_LINEAR_CONVERSION_HPP_INCLUDED 10 | #define VISR_LIBEFL_DB_LINEAR_CONVERSION_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace visr 15 | { 16 | namespace efl 17 | { 18 | 19 | template< typename T > 20 | T linear2dB( T lin ) 21 | { 22 | return static_cast(20.0)*std::log10( lin ); 23 | } 24 | 25 | template< typename T > 26 | T dB2linear( T dB ) 27 | { 28 | return std::pow( static_cast(10.0), static_cast(0.05)*dB ); 29 | } 30 | 31 | } // namespace efl 32 | } // namespace visr 33 | 34 | #endif // #ifndef VISR_LIBEFL_DB_LINEAR_CONVERSION_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /src/libefl/error_codes.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "error_codes.hpp" 4 | 5 | namespace visr 6 | { 7 | namespace efl 8 | { 9 | 10 | char const * errorMessage( const ErrorCode& error ) 11 | { 12 | switch( error ) 13 | { 14 | case noError: 15 | return "No error"; 16 | case alignmentError: 17 | return "Alignment error"; 18 | case arithmeticError: 19 | return "Arithmetic error"; 20 | // to be continued 21 | default: 22 | return "Unknown error code"; 23 | } 24 | } 25 | 26 | } // namespace efl 27 | } // namespace visr 28 | -------------------------------------------------------------------------------- /src/libefl/error_codes.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_LIBEFL_ERROR_CODES_HPP_INCLUDED 4 | #define VISR_LIBEFL_ERROR_CODES_HPP_INCLUDED 5 | 6 | #include "export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace efl 11 | { 12 | 13 | enum ErrorCode 14 | { 15 | noError = 0, 16 | alignmentError = 1, 17 | arithmeticError = 2, 18 | logicError = 3 19 | // to be continued 20 | }; 21 | 22 | /** 23 | * Return a textual description of the error state. 24 | */ 25 | VISR_EFL_LIBRARY_SYMBOL char const * errorMessage( const ErrorCode& error ); 26 | 27 | } // namespace efl 28 | } // namespace visr 29 | 30 | #endif // #ifndef VISR_LIBEFL_ERROR_CODES_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/libefl/initialise_library.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_LIBEFL_INITIALISE_LIBRARY_HPP_INCLUDED 4 | #define VISR_LIBEFL_INITIALISE_LIBRARY_HPP_INCLUDED 5 | 6 | #include "export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace efl 11 | { 12 | 13 | VISR_EFL_LIBRARY_SYMBOL bool initialiseLibrary( char const * processor = "" ); 14 | 15 | VISR_EFL_LIBRARY_SYMBOL bool uninitialiseLibrary(); 16 | 17 | 18 | } // namespace efl 19 | } // namespace visr 20 | 21 | #endif // #ifndef VISR_LIBEFL_INITIALISE_LIBRARY_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/libefl/intel_x86_64/initialise_library.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_LIBEFL_INTEL_X86_64_INITIALISE_LIBRARY_HPP_INCLUDED 4 | #define VISR_LIBEFL_INTEL_X86_64_INITIALISE_LIBRARY_HPP_INCLUDED 5 | 6 | #include "../export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace efl 11 | { 12 | namespace intel_x86_64 13 | { 14 | 15 | VISR_EFL_LIBRARY_SYMBOL bool initialiseLibrary( char const * processor = "" ); 16 | 17 | VISR_EFL_LIBRARY_SYMBOL bool uninitialiseLibrary(); 18 | 19 | } // namespace intel_x86_64 20 | } // namespace efl 21 | } // namespace visr 22 | 23 | #endif // #ifndef VISR_LIBEFL_INTEL_X86_64_INITIALISE_LIBRARY_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/libefl/test/python/lagrange.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Sun May 28 09:02:02 2017 4 | 5 | @author: andi 6 | """ 7 | 8 | def storageRequirements( N ): 9 | if N < 2: 10 | return N 11 | else: 12 | return N + storageRequirements( (N+1)//2 ) -------------------------------------------------------------------------------- /src/libefl/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libefl/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Elementary Function Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/libmexsupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | INCLUDE_DIRECTORIES(${MATLAB_INCLUDE_DIR}) 4 | 5 | SET( SOURCES mex_wrapper.cpp ) 6 | 7 | # Basically, this makes the files show up in the Visual studio project. 8 | SET( HEADERS export_symbol.hpp mex_wrapper.hpp ) 9 | 10 | add_library( mexsupport STATIC ${SOURCES} ${HEADERS} ) 11 | # Transitive link dependencies 12 | target_link_libraries( mexsupport PRIVATE visr_shared ) 13 | target_link_libraries( mexsupport PRIVATE ${MATLAB_MEX_LIBRARY} ) 14 | target_link_libraries( mexsupport PRIVATE ${MATLAB_MX_LIBRARY} ) 15 | set_target_properties( mexsupport PROPERTIES FOLDER static_libraries ) 16 | 17 | set_target_properties( mexsupport PROPERTIES FOLDER matlab_externals ) 18 | -------------------------------------------------------------------------------- /src/libobjectmodel/channel_object_parser.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_CHANNEL_OBJECT_PARSER_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_CHANNEL_OBJECT_PARSER_HPP_INCLUDED 5 | 6 | #include "object_parser.hpp" 7 | 8 | #include "export_symbols.hpp" 9 | #include "object.hpp" 10 | 11 | namespace visr 12 | { 13 | namespace objectmodel 14 | { 15 | 16 | /** 17 | * 18 | */ 19 | class VISR_OBJECTMODEL_LIBRARY_SYMBOL ChannelObjectParser: public ObjectParser 20 | { 21 | public: 22 | virtual void parse( boost::property_tree::ptree const & tree, Object & src ) const; 23 | 24 | virtual void write( Object const & obj, boost::property_tree::ptree & tree ) const; 25 | }; 26 | 27 | } // namespace objectmodel 28 | } // namespace visr 29 | 30 | #endif // VISR_OBJECTMODEL_CHANNEL_OBJECT_PARSER_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/libobjectmodel/diffuse_source.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "diffuse_source.hpp" 4 | 5 | namespace visr 6 | { 7 | namespace objectmodel 8 | { 9 | 10 | DiffuseSource::DiffuseSource( ObjectId id ) 11 | : Object( id ) 12 | { 13 | } 14 | 15 | /*virtual*/ DiffuseSource::~DiffuseSource() = default; 16 | 17 | /*virtual*/ ObjectTypeId 18 | DiffuseSource::type() const 19 | { 20 | return ObjectTypeId::DiffuseSource; 21 | } 22 | 23 | /*virtual*/ std::unique_ptr 24 | DiffuseSource::clone() const 25 | { 26 | return std::unique_ptr( new DiffuseSource( *this ) ); 27 | } 28 | 29 | } // namespace objectmodel 30 | } // namespace visr 31 | -------------------------------------------------------------------------------- /src/libobjectmodel/diffuse_source.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_DIFFUSE_SOURCE_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_DIFFUSE_SOURCE_HPP_INCLUDED 5 | 6 | #include "object.hpp" 7 | 8 | #include "export_symbols.hpp" 9 | 10 | namespace visr 11 | { 12 | namespace objectmodel 13 | { 14 | 15 | /** 16 | * 17 | */ 18 | class VISR_OBJECTMODEL_LIBRARY_SYMBOL DiffuseSource: public Object 19 | { 20 | public: 21 | 22 | DiffuseSource( ) = delete; 23 | 24 | explicit DiffuseSource( ObjectId id ); 25 | 26 | virtual ~DiffuseSource(); 27 | 28 | /*virtual*/ ObjectTypeId type() const; 29 | 30 | /*virtual*/ std::unique_ptr clone() const; 31 | 32 | protected: 33 | 34 | private: 35 | }; 36 | 37 | } // namespace objectmodel 38 | } // namespace visr 39 | 40 | #endif // VISR_OBJECTMODEL_DIFFUSE_SOURCE_HPP_INCLUDED 41 | -------------------------------------------------------------------------------- /src/libobjectmodel/diffuse_source_parser.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_DIFFUSE_SOURCE_PARSER_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_DIFFUSE_SOURCE_PARSER_HPP_INCLUDED 5 | 6 | #include "object_parser.hpp" 7 | 8 | #include "object.hpp" 9 | 10 | namespace visr 11 | { 12 | namespace objectmodel 13 | { 14 | 15 | /** 16 | * 17 | */ 18 | class DiffuseSourceParser: public ObjectParser 19 | { 20 | public: 21 | virtual void parse( boost::property_tree::ptree const & tree, Object & src ) const; 22 | 23 | virtual void write( Object const & obj, boost::property_tree::ptree & tree ) const; 24 | }; 25 | 26 | } // namespace objectmodel 27 | } // namespace visr 28 | 29 | #endif // VISR_OBJECTMODEL_DIFFUSE_SOURCE_PARSER_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /src/libobjectmodel/hoa_source.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "hoa_source.hpp" 4 | 5 | namespace visr 6 | { 7 | namespace objectmodel 8 | { 9 | 10 | HoaSource::HoaSource( ObjectId id ) 11 | : Object( id ) 12 | , mOrder( 0 ) 13 | { 14 | } 15 | 16 | /*virtual*/ HoaSource::~HoaSource() = default; 17 | 18 | /*virtual*/ ObjectTypeId 19 | HoaSource::type() const 20 | { 21 | return ObjectTypeId::HoaSource; 22 | } 23 | 24 | /*virtual*/ std::unique_ptr 25 | HoaSource::clone() const 26 | { 27 | return std::unique_ptr( new HoaSource( *this ) ); 28 | } 29 | 30 | void HoaSource::setOrder( HoaSource::Order newOrder ) 31 | { 32 | mOrder = newOrder; 33 | } 34 | 35 | } // namespace objectmodel 36 | } // namespace visr 37 | -------------------------------------------------------------------------------- /src/libobjectmodel/hoa_source_parser.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_HOA_SOURCE_PARSER_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_HOA_SOURCE_PARSER_HPP_INCLUDED 5 | 6 | #include "object_parser.hpp" 7 | 8 | #include "object.hpp" 9 | 10 | namespace visr 11 | { 12 | namespace objectmodel 13 | { 14 | 15 | /** 16 | * 17 | */ 18 | class HoaSourceParser: public ObjectParser 19 | { 20 | public: 21 | virtual void parse( boost::property_tree::ptree const & tree, Object & src ) const; 22 | 23 | virtual void write( Object const & obj, boost::property_tree::ptree & tree ) const; 24 | }; 25 | 26 | } // namespace objectmodel 27 | } // namespace visr 28 | 29 | #endif // VISR_OBJECTMODEL_HOA_SOURCE_PARSER_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /src/libobjectmodel/plane_wave_parser.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_PLANE_WAVE_PARSER_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_PLANE_WAVE_PARSER_HPP_INCLUDED 5 | 6 | #include "object_parser.hpp" 7 | 8 | #include "export_symbols.hpp" 9 | #include "object.hpp" 10 | 11 | namespace visr 12 | { 13 | namespace objectmodel 14 | { 15 | 16 | /** 17 | * 18 | */ 19 | class VISR_OBJECTMODEL_LIBRARY_SYMBOL PlaneWaveParser: public ObjectParser 20 | { 21 | public: 22 | virtual void parse( boost::property_tree::ptree const & tree, Object & src ) const; 23 | 24 | virtual void write( Object const & obj, boost::property_tree::ptree & tree ) const; 25 | }; 26 | 27 | } // namespace objectmodel 28 | } // namespace visr 29 | 30 | #endif // VISR_OBJECTMODEL_PLANE_WAVE_PARSER_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/libobjectmodel/point_source_extent_parser.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_OBJECTMODEL_POINT_SOURCE_EXTENT_PARSER_HPP_INCLUDED 4 | #define VISR_OBJECTMODEL_POINT_SOURCE_EXTENT_PARSER_HPP_INCLUDED 5 | 6 | #include "point_source_with_diffuseness_parser.hpp" 7 | 8 | #include "export_symbols.hpp" 9 | #include "object.hpp" 10 | 11 | namespace visr 12 | { 13 | namespace objectmodel 14 | { 15 | 16 | /** 17 | * 18 | */ 19 | class VISR_OBJECTMODEL_LIBRARY_SYMBOL PointSourceExtentParser: public PointSourceWithDiffusenessParser 20 | { 21 | public: 22 | virtual void parse( boost::property_tree::ptree const & tree, Object & src ) const; 23 | 24 | virtual void write( Object const & obj, boost::property_tree::ptree & tree ) const; 25 | }; 26 | 27 | } // namespace objectmodel 28 | } // namespace visr 29 | 30 | #endif // VISR_OBJECTMODEL_POINT_SOURCE_EXTENT_PARSER_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/libobjectmodel/test/reverb_object_parser.h: -------------------------------------------------------------------------------- 1 | // 2 | // reverb_object_parser.h 3 | // VISR 4 | // 5 | // Created by Philip Coleman on 23/06/2015. 6 | // 7 | // 8 | 9 | #ifndef __VISR__reverb_object_parser__ 10 | #define __VISR__reverb_object_parser__ 11 | 12 | #include 13 | 14 | #endif /* defined(__VISR__reverb_object_parser__) */ 15 | -------------------------------------------------------------------------------- /src/libobjectmodel/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libobjectmodel/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | #define BOOST_TEST_MODULE "Object Model Library Unit Test Suite" 10 | 11 | #include 12 | -------------------------------------------------------------------------------- /src/libpanning/XYZ.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // XYZ.cpp 3 | // 4 | // Created by Dylan Menzies on 09/12/2014. 5 | // Copyright (c) ISVR, University of Southampton. All rights reserved. 6 | // 7 | 8 | #include "XYZ.h" 9 | 10 | namespace visr 11 | { 12 | namespace panning 13 | { 14 | XYZ::XYZ(): x( 0.0f ) 15 | , y( 0.0f ) 16 | , z( 0.0f ) 17 | , isInfinite( false ) 18 | {} 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/libpanning/defs.h: -------------------------------------------------------------------------------- 1 | // 2 | // defs.h 3 | // 4 | // Created by Dylan Menzies on 10/11/2014. 5 | // Copyright (c) 2014 ISVR, University of Southampton. All rights reserved. 6 | // 7 | 8 | #ifndef S3A_renderer_dsp_defs_h 9 | #define S3A_renderer_dsp_defs_h 10 | 11 | 12 | 13 | 14 | 15 | typedef float Afloat; 16 | 17 | //typedef Afloat Xyz[3]; // cartesian vector 18 | 19 | 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/libpanning/test/matlab/arrays/decodeB2VBAP.txt: -------------------------------------------------------------------------------- 1 | 2.827100 2.827100 2.827099 2.827100 2.827100 2.827100 2 | -0.000000 3.257351 0.000000 -3.257351 0.000000 0.000000 3 | 0.000000 -0.000000 0.000000 -0.000000 3.257351 -3.257351 4 | 3.257351 0.000000 -3.257351 0.000000 -0.000000 0.000000 5 | 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000001 6 | -0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000000 7 | -0.762226 -0.808244 -0.762226 -0.808244 1.570467 1.570466 8 | 0.000000 -0.000001 0.000000 0.000001 0.000000 0.000000 9 | 1.373347 -1.346782 1.373347 -1.346782 -0.026571 -0.026571 10 | -------------------------------------------------------------------------------- /src/libpanning/test/matlab/arrays/octahedron.txt: -------------------------------------------------------------------------------- 1 | 2 | % Octahedron loudspeaker array 3 | 4 | % Orientation 5 | % x - forward, y - left, z - up. 6 | % azimuth (theta) - left from front, elevation (phi) - up from horizontal. 7 | 8 | 9 | % positions 10 | 11 | % cartesians 12 | % id channel x y z 13 | 14 | c 1 1 1.0 0.0 0.0 % Front 15 | c 2 2 0.0 1.0 0.0 % Left 16 | c 3 3 -1.0 0.0 0.0 % Back 17 | c 4 4 0.0 -1.0 0.0 % Right 18 | c 5 5 0.0 0.0 1.0 % Up 19 | c 6 6 0.0 0.0 -1.0 % Down 20 | 21 | % polars 22 | % n azim. elev. distance 23 | % p 1 45 45 1.0 24 | 25 | 26 | 27 | % 3-tuplets 28 | % id1 id2 id3 29 | 30 | t 1 1 4 5 31 | t 2 1 2 5 32 | t 3 2 3 5 33 | t 4 3 4 5 34 | t 5 4 3 6 35 | t 6 3 2 6 36 | t 7 2 1 6 37 | t 8 1 4 6 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/libpanning/test/matlab/d_factorial.m: -------------------------------------------------------------------------------- 1 | function value = d_factorial ( n ) 2 | 3 | %% D_FACTORIAL computes the factorial N! 4 | % 5 | % Formula: 6 | % 7 | % FACTORIAL( N ) = PRODUCT ( 1 <= I <= N ) I 8 | % 9 | % Modified: 10 | % 11 | % 25 July 2004 12 | % 13 | % Author: 14 | % 15 | % John Burkardt 16 | % 17 | % Parameters: 18 | % 19 | % Input, integer N, the argument of the factorial function. 20 | % If N is less than 1, the value is returned as 1. 21 | % 22 | % Output, real VALUE, the factorial of N. 23 | % 24 | value = 1.0; 25 | 26 | for i = 1 : n 27 | value = value * i; 28 | end 29 | -------------------------------------------------------------------------------- /src/libpanning/test/referencedata/decodeB2VBAP.txt: -------------------------------------------------------------------------------- 1 | 2.827100 2.827100 2.827099 2.827100 2.827100 2.827100 2 | -0.000000 3.257351 0.000000 -3.257351 0.000000 0.000000 3 | 0.000000 -0.000000 0.000000 -0.000000 3.257351 -3.257351 4 | 3.257351 0.000000 -3.257351 0.000000 -0.000000 0.000000 5 | 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000001 6 | -0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000000 7 | -0.762226 -0.808244 -0.762226 -0.808244 1.570467 1.570466 8 | 0.000000 -0.000001 0.000000 0.000001 0.000000 0.000000 9 | 1.373347 -1.346782 1.373347 -1.346782 -0.026571 -0.026571 10 | -------------------------------------------------------------------------------- /src/libpanning/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libpanning/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | * Used to trigger instantiation of the main() function. 8 | */ 9 | 10 | 11 | #define BOOST_TEST_MODULE "libpanning unit test suite" 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/libpanning/test/testoutput/.gitignore: -------------------------------------------------------------------------------- 1 | # This directory shall contain output files generated by the test binaries. 2 | # Any contents is ignored by git. 3 | * 4 | # But not this file itself 5 | !.gitignore -------------------------------------------------------------------------------- /src/libpanningdsp/initialise_parameter_library.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "initialise_parameter_library.hpp" 4 | 5 | #include "panning_matrix_parameter.hpp" 6 | 7 | #include 8 | 9 | namespace visr 10 | { 11 | namespace panningdsp 12 | { 13 | 14 | void initialiseParameterLibrary() 15 | { 16 | static ParameterRegistrar< 17 | PanningMatrixParameter 18 | > 19 | sParameterRegistrar; 20 | } 21 | 22 | } // namespace panningdsp 23 | } // namespace visr 24 | -------------------------------------------------------------------------------- /src/libpanningdsp/initialise_parameter_library.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PANNINGDSP_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 4 | #define VISR_PANNINGDSP_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 5 | 6 | #include "export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace panningdsp 11 | { 12 | 13 | /** 14 | * Register all contained parameter types and communication protocols in the respective factories. 15 | */ 16 | VISR_PANNINGDSP_LIBRARY_SYMBOL void initialiseParameterLibrary(); 17 | 18 | } // namespace panningdsp 19 | } // namespace visr 20 | 21 | #endif // VISR_PANNINGDSP_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/libpml/initialise_parameter_library.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PML_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 4 | #define VISR_PML_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 5 | 6 | #include "export_symbols.hpp" 7 | 8 | namespace visr 9 | { 10 | namespace pml 11 | { 12 | 13 | /** 14 | * Register all contained parameter types and communication protocols in the respective factories. 15 | */ 16 | VISR_PML_LIBRARY_SYMBOL void initialiseParameterLibrary(); 17 | 18 | } // namespace pml 19 | } // namespace visr 20 | 21 | 22 | #endif // VISR_PML_INITIALISE_PARAMETER_LIBRARY_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /src/libpml/test/data/vector_data_float32_16elements.dat: -------------------------------------------------------------------------------- 1 | 1.000000000000000000e+00 9.497657418251037598e-01 8.041098713874816895e-01 5.776661634445190430e-01 2.931852936744689941e-01 -2.075158059597015381e-02 -3.326035737991333008e-01 -6.110393404960632324e-01 -8.280847668647766113e-01 -9.619338512420654297e-01 -9.991387724876403809e-01 -9.359615445137023926e-01 -7.787497639656066895e-01 -5.432978868484497070e-01 -2.532618641853332520e-01 6.221899390220642090e-02 2 | -------------------------------------------------------------------------------- /src/libpml/test/data/vector_data_float32_16elements.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/libpml/test/data/vector_data_float32_16elements.wav -------------------------------------------------------------------------------- /src/libpml/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libpml/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Parameter Message Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/initpml/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 ISVR, University of Southampton 5 | 6 | from .pml_adder import PmlAdder 7 | 8 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/nestednamespacemodule/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | from . import level1 7 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/nestednamespacemodule/level1/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | from .nestedadder import NestedAdder 7 | 8 | from . import level2 9 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/nestednamespacemodule/level1/level2/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | from .level2adder import Level2Adder 7 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/subpackagemodule/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | # Sub-packages are not imported, i.e. importing has to be done as 7 | # "import subpackagemodule.level1.level2" 8 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/subpackagemodule/level1/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | # Sub-packages are not imported, i.e. importing has to be done as 7 | # "import subpackagemodule.level1.level2" 8 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/subpackagemodule/level1/level2/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | from .level2adder import Level2Adder 7 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/python/testmodule/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright (C) 2017-2018 Andreas Franck 4 | # Copyright (C) 2017-2018 University of Southampton 5 | 6 | from .adder import Adder 7 | -------------------------------------------------------------------------------- /src/libpythoncomponents/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file librcl/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Runtime Component Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/libpythonsupport/gil_ensure_guard.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "gil_ensure_guard.hpp" 4 | 5 | // Use the pybind11 header to include Python.h. This handles the quirky workarounds 6 | // needed to include the raw Python include. 7 | #include 8 | 9 | namespace visr 10 | { 11 | namespace pythonsupport 12 | { 13 | 14 | class GilEnsureGuard::Impl 15 | { 16 | public: 17 | Impl() 18 | { 19 | // This would create a fatal error (abortion?) on failure. 20 | mState = PyGILState_Ensure(); 21 | } 22 | 23 | ~Impl() 24 | { 25 | PyGILState_Release( mState ); 26 | } 27 | private: 28 | PyGILState_STATE mState; 29 | }; 30 | 31 | GilEnsureGuard::GilEnsureGuard() 32 | : mImpl( new Impl() ) 33 | {} 34 | 35 | GilEnsureGuard::~GilEnsureGuard() = default; 36 | 37 | } // namespace pythonsupport 38 | } // namespace visr 39 | -------------------------------------------------------------------------------- /src/librbbl/fractional_delay_base.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "fractional_delay_base.hpp" 4 | 5 | namespace visr 6 | { 7 | namespace rbbl 8 | { 9 | 10 | //template 11 | //FractionalDelayBase::~FractionalDelayBase() = default; 12 | 13 | 14 | // Explicit instantiations 15 | template class FractionalDelayBase; 16 | template class FractionalDelayBase; 17 | 18 | 19 | } // namespace rbbl 20 | } // namespace visr 21 | -------------------------------------------------------------------------------- /src/librbbl/test/fir/quasiAllpassFIR_f32_n63.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/librbbl/test/fir/quasiAllpassFIR_f32_n63.wav -------------------------------------------------------------------------------- /src/librbbl/test/fir/test_f2_n3.txt: -------------------------------------------------------------------------------- 1 | 1.0 0.0 0.0 2 | 1.0 0.0 -1.0 3 | -------------------------------------------------------------------------------- /src/librbbl/test/matlab/generateConvolverSignals.m: -------------------------------------------------------------------------------- 1 | 2 | signalLength = 131072; 3 | 4 | filterLength = 1024; 5 | 6 | numSignals = 4; 7 | 8 | filters = 2*(rand(numSignals, filterLength )-0.5)/sqrt(filterLength); 9 | 10 | input = 2*(rand(numSignals, signalLength )-0.5); 11 | 12 | output = zeros( numSignals, signalLength ); 13 | 14 | channelGains = [ 1 1 0 0 ]; 15 | 16 | for chIdx = 1:numSignals 17 | y = conv( filters( chIdx, : ), input(chIdx,:), 'full' ); 18 | output( chIdx, : ) = channelGains(chIdx) * y(1:signalLength); 19 | end 20 | 21 | audiowrite( '../signals/filters_4ch.wav', filters.', 48e3, 'BitsPerSample', 32 ); 22 | audiowrite( '../signals/input_4ch.wav', input.', 48e3, 'BitsPerSample', 32 ); 23 | audiowrite( '../signals/output_4ch.wav', output.', 48e3, 'BitsPerSample', 32 ); 24 | -------------------------------------------------------------------------------- /src/librbbl/test/signals/filter_4ch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/librbbl/test/signals/filter_4ch.wav -------------------------------------------------------------------------------- /src/librbbl/test/signals/filters_4ch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/librbbl/test/signals/filters_4ch.wav -------------------------------------------------------------------------------- /src/librbbl/test/signals/input_4ch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/librbbl/test/signals/input_4ch.wav -------------------------------------------------------------------------------- /src/librbbl/test/signals/output_4ch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/librbbl/test/signals/output_4ch.wav -------------------------------------------------------------------------------- /src/librbbl/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file librbbl/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Renderer Building Blocks Library Unit Test Suite" 11 | #include 12 | -------------------------------------------------------------------------------- /src/librcl/test/scene_decoder.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | namespace visr 14 | { 15 | namespace rcl 16 | { 17 | namespace test 18 | { 19 | 20 | using namespace objectmodel; 21 | 22 | BOOST_AUTO_TEST_CASE( SceneDecoderInstantiation ) 23 | { 24 | // TODO: Implement me! 25 | } 26 | 27 | } // namespace test 28 | } // namespace rcl 29 | } // namespce visr 30 | -------------------------------------------------------------------------------- /src/librcl/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file librcl/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Runtime Component Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/librrl/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libpml/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Parameter Message Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/libsignalflows/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libobjectmodel/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | #define BOOST_TEST_MODULE "Signal Flow Library Unit Test Suite" 10 | 11 | #include 12 | -------------------------------------------------------------------------------- /src/libvisr/atomic_component.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "atomic_component.hpp" 4 | 5 | namespace visr 6 | { 7 | 8 | AtomicComponent::AtomicComponent( SignalFlowContext const & context, 9 | char const * name, 10 | CompositeComponent * parent /*= nullptr */ ) 11 | : Component( context, name, parent ) 12 | { 13 | } 14 | 15 | AtomicComponent::~AtomicComponent() = default; 16 | 17 | } // namespace visr 18 | -------------------------------------------------------------------------------- /src/libvisr/audio_input.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "audio_input.hpp" 4 | 5 | namespace visr 6 | { 7 | 8 | AudioInputBase::AudioInputBase( char const * name, Component & container, AudioSampleType::Id typeId, std::size_t width ) 9 | : AudioPortBase( name, container, typeId, PortBase::Direction::Input, width ) 10 | { 11 | } 12 | 13 | AudioInputBase::~AudioInputBase() = default; 14 | 15 | } // namespace visr 16 | -------------------------------------------------------------------------------- /src/libvisr/audio_output.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "audio_output.hpp" 4 | 5 | namespace visr 6 | { 7 | 8 | AudioOutputBase::AudioOutputBase( char const * name, Component & container, AudioSampleType::Id typeId, std::size_t width ) 9 | : AudioPortBase( name, container, typeId, PortBase::Direction::Output, width ) 10 | { 11 | } 12 | 13 | AudioOutputBase::~AudioOutputBase() = default; 14 | 15 | } // namespace visr 16 | -------------------------------------------------------------------------------- /src/libvisr/parameter_base.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "parameter_base.hpp" 4 | 5 | namespace visr 6 | { 7 | 8 | ParameterBase::ParameterBase() = default; 9 | 10 | ParameterBase::~ParameterBase() = default; 11 | 12 | ParameterBase::ParameterBase( const ParameterBase & ) = default; 13 | 14 | ParameterBase& ParameterBase::operator=( const ParameterBase & ) = default; 15 | 16 | 17 | } // namespace visr 18 | -------------------------------------------------------------------------------- /src/libvisr/parameter_config_base.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | namespace visr 6 | { 7 | 8 | ParameterConfigBase::~ParameterConfigBase() = default; 9 | 10 | ParameterConfigBase::ParameterConfigBase() = default; 11 | 12 | ParameterConfigBase::ParameterConfigBase( ParameterConfigBase const & ) = default; 13 | 14 | } // namespace visr 15 | -------------------------------------------------------------------------------- /src/libvisr/port_base.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "port_base.hpp" 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | 10 | PortBase::Direction operator|( PortBase::Direction lhs, PortBase::Direction rhs ) 11 | { 12 | using T = std::underlying_type::type; 13 | return static_cast(static_cast(lhs) | static_cast(rhs)); 14 | } 15 | 16 | PortBase::Direction operator&( PortBase::Direction lhs, PortBase::Direction rhs ) 17 | { 18 | using T = std::underlying_type::type; 19 | return static_cast(static_cast(lhs) & static_cast(rhs)); 20 | } 21 | 22 | } // namespace visr 23 | -------------------------------------------------------------------------------- /src/libvisr/signal_flow_context.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "signal_flow_context.hpp" 4 | 5 | namespace visr 6 | { 7 | 8 | SignalFlowContext::SignalFlowContext( std::size_t period, SamplingFrequencyType samplingFrequency ) 9 | : mPeriod( period ) 10 | , mSamplingFrequency( samplingFrequency ) 11 | { 12 | } 13 | 14 | SignalFlowContext::~SignalFlowContext() = default; 15 | 16 | SignalFlowContext::SignalFlowContext( SignalFlowContext const & rhs ) = default; 17 | 18 | SignalFlowContext::SignalFlowContext( SignalFlowContext && rhs ) = default; 19 | 20 | } // namespace visr 21 | -------------------------------------------------------------------------------- /src/libvisr/test/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | /** 5 | * @file libpml/test/test_main.cpp 6 | * File to place global statements for the unit test suite. 7 | */ 8 | 9 | 10 | #define BOOST_TEST_MODULE "Parameter Message Library Unit Test Suite" 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/libvisr/time.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "time.hpp" 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | 10 | Time::Time( std::shared_ptr impl ) 11 | : mImpl( impl ) 12 | {} 13 | 14 | Time::~Time() = default; 15 | 16 | Time::IntegerTimeType Time::sampleCount() const 17 | { 18 | return mImpl->sampleCount(); 19 | } 20 | 21 | Time::IntegerTimeType Time::blockCount() const 22 | { 23 | return mImpl->blockCount(); 24 | } 25 | 26 | Time::ContinuousTimeType 27 | Time::renderingTime() const 28 | { 29 | return mImpl->renderingTime(); 30 | } 31 | 32 | impl::TimeImplementation const & 33 | Time::implementation() const 34 | { 35 | return *mImpl; 36 | } 37 | 38 | impl::TimeImplementation & 39 | Time::implementation() 40 | { 41 | return *mImpl; 42 | } 43 | 44 | } // namespace visr 45 | -------------------------------------------------------------------------------- /src/maxmspexternals/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | # This is not possible because the static boost libraries are normally not 4 | # compiled as position-independent code, which means they cannot used in shared 5 | # objects as Max externals. 6 | # This definitely leads to link errors on Linux and MacOS, but it should 7 | # conceptually be the same problem on Windows. 8 | if( Boost_USE_STATIC_LIBS ) 9 | message( SEND_ERROR 10 | "Cannot build Max/MSP externals when using static boost libraries" ) 11 | endif( Boost_USE_STATIC_LIBS ) 12 | 13 | # Generic C++ classes to ease the implementation of Max/MSP external objects. 14 | ADD_SUBDIRECTORY( libmaxsupport ) 15 | 16 | ADD_SUBDIRECTORY( gain_matrix ) 17 | ADD_SUBDIRECTORY( delay_vector ) 18 | ADD_SUBDIRECTORY( matrix_convolver ) 19 | ADD_SUBDIRECTORY( visr_renderer ) 20 | -------------------------------------------------------------------------------- /src/maxmspexternals/libmaxsupport/external_base.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include "external_base.hpp" 4 | 5 | namespace visr 6 | { 7 | namespace maxmsp 8 | { 9 | 10 | ExternalBase::ExternalBase( t_pxobject & maxProxy ) 11 | : mMaxProxy( maxProxy ) 12 | { 13 | } 14 | 15 | ExternalBase::~ExternalBase( ) 16 | { 17 | } 18 | 19 | } // namespace visr 20 | } // namespace maxmsp 21 | -------------------------------------------------------------------------------- /src/maxmspexternals/visr_renderer/options.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_MAXMSP_VISR_RENDERER_OPTIONS_HPP_INCLUDED 4 | #define VISR_MAXMSP_VISR_RENDERER_OPTIONS_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace maxmsp 11 | { 12 | namespace visr_renderer 13 | { 14 | 15 | class Options: public apputilities::Options 16 | { 17 | public: 18 | Options(); 19 | 20 | ~Options(); 21 | }; 22 | 23 | } // namespace visr_renderer 24 | } // namespace maxmsp 25 | } // namespace visr 26 | 27 | #endif // #ifndef VISR_MAXMSP_VISR_RENDERER_OPTIONS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/python/efl/check_error.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PYTHON_EFL_CHECK_ERROR_HPP_INCLUDED 4 | #define VISR_PYTHON_EFL_CHECK_ERROR_HPP_INCLUDED 5 | 6 | #include 7 | 8 | #include 9 | 10 | namespace visr 11 | { 12 | namespace efl 13 | { 14 | namespace python 15 | { 16 | namespace detail 17 | { 18 | 19 | /** 20 | * Helper function to transoform efl error codes to exceptions 21 | */ 22 | inline void checkError( efl::ErrorCode res ) 23 | { 24 | if( res != efl::noError ) 25 | { 26 | throw std::runtime_error( visr::detail::composeMessageString("Vector function failed with error: ", 27 | errorMessage( res ) ) ); 28 | } 29 | } 30 | 31 | } // namespace detail 32 | } // namespace python 33 | } // namespace efl 34 | } // namespace visr 35 | 36 | #endif // VISR_PYTHON_EFL_CHECK_ERROR_HPP_INCLUDED -------------------------------------------------------------------------------- /src/python/efl/error_codes.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | namespace efl 10 | { 11 | namespace python 12 | { 13 | 14 | namespace py = pybind11; 15 | 16 | void exportErrorCode( py::module & m ) 17 | { 18 | py::enum_( m, "ErrorCode" ) 19 | .value( "noError", visr::efl::ErrorCode::noError ) 20 | .value( "alignmentError", visr::efl::ErrorCode::alignmentError ) 21 | .value( "arithmeticError", visr::efl::ErrorCode::arithmeticError ) 22 | .value( "logicError", visr::efl::ErrorCode::logicError ) 23 | // to be continued 24 | ; 25 | } 26 | 27 | } // namespace python 28 | } // namespace efl 29 | } // namespace visr 30 | -------------------------------------------------------------------------------- /src/python/efl/initialise_library.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | 7 | namespace visr 8 | { 9 | namespace efl 10 | { 11 | namespace python 12 | { 13 | 14 | namespace py = pybind11; 15 | 16 | void exportInitialiseLibrary( py::module & m ) 17 | { 18 | m 19 | .def( "initialiseLibrary", &visr::efl::initialiseLibrary, 20 | py::arg( "processorType" ) = "" ) 21 | .def( "uninitialiseLibrary", &visr::efl::uninitialiseLibrary ) 22 | ; 23 | } 24 | 25 | } // namespace python 26 | } // namespace efl 27 | } // namespace visr 28 | -------------------------------------------------------------------------------- /src/python/efl/test/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .cache -------------------------------------------------------------------------------- /src/python/efl/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME eflpython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( eflpython_test eflpython ) -------------------------------------------------------------------------------- /src/python/libpythonbindinghelpers/ndarray_from_basic_vector.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | 8 | namespace visr 9 | { 10 | 11 | namespace python 12 | { 13 | namespace bindinghelpers 14 | { 15 | 16 | namespace py = pybind11; 17 | 18 | /** 19 | * Create a 1-D numpy.ndarray from an efl::BasicVector. 20 | * @tparam DataType The element data type. 21 | * @param vec A BasicVector data structure.. 22 | * @return A numpy array containing a copy of the vector data. 23 | */ 24 | template 25 | py::array_t ndArrayFromBasicVector( efl::BasicVector const & vec ) 26 | { 27 | py::array_t res( vec.size(), vec.data() ); 28 | return res; 29 | } 30 | 31 | } // namepace bindinghelpers 32 | } // namespace python 33 | } // namespace visr 34 | -------------------------------------------------------------------------------- /src/python/objectmodel/diffuse_source.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | namespace py = pybind11; 14 | 15 | namespace visr 16 | { 17 | namespace objectmodel 18 | { 19 | namespace python 20 | { 21 | 22 | void exportDiffuseSource( pybind11::module & m ) 23 | { 24 | py::class_( m, "DiffuseSource" ) 25 | .def( py::init(), py::arg("objectId") ) 26 | ; 27 | } 28 | 29 | } // namespace python 30 | } // namepace objectmodel 31 | } // namespace visr 32 | -------------------------------------------------------------------------------- /src/python/objectmodel/hoa_source.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | namespace py = pybind11; 9 | 10 | namespace visr 11 | { 12 | namespace objectmodel 13 | { 14 | namespace python 15 | { 16 | 17 | void exportHoaSource( pybind11::module & m ) 18 | { 19 | py::class_( m, "HoaSource" ) 20 | .def( py::init(), py::arg("objectId"), "Constructor" ) 21 | .def_property( "order", &HoaSource::order, &HoaSource::setOrder ) 22 | ; 23 | ; 24 | } 25 | 26 | } // namespace python 27 | } // namepace objectmodel 28 | } // namespace visr 29 | -------------------------------------------------------------------------------- /src/python/objectmodel/plane_wave.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | 7 | namespace py = pybind11; 8 | 9 | namespace visr 10 | { 11 | namespace objectmodel 12 | { 13 | namespace python 14 | { 15 | 16 | void exportPlaneWave( pybind11::module & m ) 17 | { 18 | py::class_( m, "PlaneWave" ) 19 | .def( py::init(), py::arg("objectId") ) 20 | .def_property( "azimuth", &PlaneWave::incidenceAzimuth, &PlaneWave::setIncidenceAzimuth ) 21 | .def_property( "elevation", &PlaneWave::incidenceElevation, &PlaneWave::setIncidenceElevation ) 22 | .def_property( "referenceDistance", &PlaneWave::referenceDistance, &PlaneWave::setReferenceDistance ) 23 | ; 24 | } 25 | 26 | } // namespace python 27 | } // namepace objectmodel 28 | } // namespace visr 29 | 30 | -------------------------------------------------------------------------------- /src/python/packages/loudspeakerconfig/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Nov 1 10:31:18 2018 4 | 5 | @author: af5u13 6 | """ 7 | 8 | from .createArrayConfigFile import createArrayConfigFile 9 | from .createArrayConfigFromSofa import createArrayConfigFromSofa 10 | from .geometry_functions import cart2sph, sph2cart, deg2rad, rad2deg 11 | -------------------------------------------------------------------------------- /src/python/packages/loudspeakerconfig/geometry_functions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Nov 1 10:59:01 2018 4 | 5 | @author: af5u13 6 | """ 7 | 8 | import numpy as np 9 | 10 | def deg2rad( phi ): 11 | return (np.pi/180.0) * phi 12 | 13 | def rad2deg( phi ): 14 | return (180.0/np.pi) * phi 15 | 16 | def cart2sph( X ): 17 | x = X[...,0] 18 | y = X[...,1] 19 | z = X[...,2] 20 | radius = np.sqrt( x*x + y*y + z*z ); 21 | az = np.arctan2( y, x ); 22 | el = np.arcsin( z / radius ); 23 | return az, el, radius 24 | 25 | def sph2cart( az, el, r ): 26 | (azBC, elBC, rBC ) = np.broadcast_arrays( az, el, r ) 27 | elFactor = np.cos( elBC ) 28 | x = np.cos( azBC ) * elFactor * rBC 29 | y = np.sin( azBC ) * elFactor * rBC 30 | z = np.sin( elBC ) * rBC 31 | cart = np.stack( (x,y,z), -1 ) 32 | return cart 33 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | *.DS_Store -------------------------------------------------------------------------------- /src/python/packages/metadapter/Changelog.txt: -------------------------------------------------------------------------------- 1 | # Copyright Andreas Franck - All rights reserved 2 | # Copyright Institute of Sound and Vibration Research - All rights reserved 3 | 4 | Release 0.9.0 5 | ============= 6 | 7 | * First numbered release 8 | * Source code management: Adoption of GitFlow workflow and semantic numbering scheme 9 | * FEATURE: Incorporated "modularisation", allowing the use of the metadapter as VISR component. 10 | * FEATURE: Support JSON control messages. 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/condition_processors/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 28 10:08:15 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | # File to ensure that the containing directory is treated as a Python module directory. 9 | 10 | # Additional, use it to initialize the contents of the directory: 11 | # Register the contained container classes. 12 | 13 | from condition_processors.condition_processor_factory import ConditionProcessorFactory 14 | 15 | from condition_processors.select_group_condition import SelectGroupConditionProcessor 16 | 17 | print( 'condition_processors/__init__.py: Initialization called.' ) 18 | ConditionProcessorFactory.registerProcessorClass( 'SelectGroup', SelectGroupConditionProcessor ) 19 | print( 'condition_processors/__init__.py: Initialization finished.' ) 20 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/C4_demo1_init.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/TMMExperiment2config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/channel_object.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/diffuse_source_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/envelopment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/example_processing_chain_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/example_processing_chain_1_quot.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/mdo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/mdoAzimuth.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/mdoPhones.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/mdo_production.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/narrative_importance.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/nested_sequences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/processing_chain_no_sequence_layer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/radio_drama_adaptation_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/reverb_config_notes.txt: -------------------------------------------------------------------------------- 1 | AddReverb processor 2 | libFile: json file with "reverblibrary" array 3 | initRoomName: name of room reverb to initialize, or "none" for no reverb 4 | initObjs can take arguments: "all", "none", or "list" 5 | and dictates which objects reverb is added to 6 | initObjectList (optional unless initObjs="list") describes a comma-separated 7 | list "0,1,10" -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/semantic_stereo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/simple_mdo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/static_point_source_extent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/test_add_advanced_metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/test_add_mdo_metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/test_add_reverb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/config/test_add_reverb_hoa.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/core/base_processor_interface.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 21 15:46:50 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | import abc 9 | 10 | 11 | 12 | class BaseProcessorInterface: 13 | """ Abstract base class for objects that adapt the object metadata vector """ 14 | __metaclass__ = abc.ABCMeta 15 | def __init__(self, arguments ): 16 | # Common constructor code goes here. (nothing needs to be done at the time being) 17 | return 18 | 19 | # Do we need that in the base class? 20 | @abc.abstractmethod 21 | def setParameter( self, key, valueList ): 22 | """ Set the parameter to a given value.""" 23 | raise KeyError( "Abstract interface does SequenceProcessorInterface does not accept any parameters." ) 24 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/core/metadata_processor_factory.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 21 17:10:05 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | class MetadataProcessorFactory: 9 | processorTypeMap = {} 10 | 11 | """ An abstract factory to create MetadataProcessor objects based on their name """ 12 | @classmethod 13 | def registerProcessorClass( self, processorName, ProcessorClass): 14 | self.processorTypeMap[processorName] = ProcessorClass; 15 | 16 | @classmethod 17 | def createProcessor( self, processorType, config ): 18 | if not processorType in self.processorTypeMap: 19 | raise KeyError( "Metadata processor type \"%s\" not known." % processorType ) 20 | processorClass = self.processorTypeMap[processorType] 21 | newObj = processorClass( config ) 22 | return newObj 23 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/merge_processors/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 28 10:08:15 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | # File to ensure that the containing directory is treated as a Python module directory. 9 | 10 | # Additional, use it to initialize the contents of the directory: 11 | # Register the contained container classes. 12 | 13 | from merge_processors.merge_processor_factory import MergeProcessorFactory 14 | 15 | from merge_processors.branch_order_merge_processor import BranchOrderMergeProcessor 16 | 17 | print( 'merge_processors/__init__.py: Initialization called.' ) 18 | MergeProcessorFactory.registerProcessorClass( 'BranchOrderMerge', BranchOrderMergeProcessor ) 19 | print( 'merge_processors/__init__.py: Initialization finished.' ) 20 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/networked/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Tue Apr 02 10:08:15 2019 4 | 5 | @author: af5u13 6 | """ 7 | 8 | from .engine import MetadataAdaptationEngine 9 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/processors/room/ArrayConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/python_examples/README.txt: -------------------------------------------------------------------------------- 1 | Directory python_examples - Containing snippets to exemplify and test several features (mainly networking/asynchronous progrmming) 2 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/sink_processors/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 28 10:08:15 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | print( 'sink_processors/__init__.py: Initialization called.' ) 9 | 10 | # File to ensure that the containing directory is treated as a Python module directory. 11 | 12 | # Additional, use it to initialize the contents of the directory: 13 | # Register the contained container classes. 14 | 15 | from sink_processors.sink_processor_factory import SinkProcessorFactory 16 | 17 | from sink_processors.print_scene_processor import PrintSceneProcessor 18 | 19 | SinkProcessorFactory.registerProcessorClass( 'PrintSceneProcessor', PrintSceneProcessor ) 20 | print( 'sink_processors/__init__.py: Initialization finished.' ) 21 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/source_processors/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Thu Jan 28 10:08:15 2016 4 | 5 | @author: af5u13 6 | """ 7 | 8 | print( 'source_processors/__init__.py: Initialization called.' ) 9 | 10 | # File to ensure that the containing directory is treated as a Python module directory. 11 | 12 | # Additional, use it to initialize the contents of the directory: 13 | # Register the contained container classes. 14 | 15 | from source_processors.source_processor_factory import SourceProcessorFactory 16 | 17 | from source_processors.static_scene_source import StaticSceneSource 18 | 19 | SourceProcessorFactory.registerProcessorClass( 'StaticSceneSource', StaticSceneSource ) 20 | print( 'source_processors/__init__.py: Initialization finished.' ) 21 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/thirdparty/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/thirdparty/thirdparty/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/python/packages/metadapter/visrintegration/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Andreas Franck 2016-2019 - All rights reserved 2 | # Copyright Institute of Sound and Vibration Research - All rights reserved 3 | 4 | from .component import Component 5 | -------------------------------------------------------------------------------- /src/python/packages/visr_bst/Changelog: -------------------------------------------------------------------------------- 1 | Copyright (C) 2017-2018 Andreas Franck and Giacomo Costantini 2 | Copyright (C) 2017-2018 University of Southampton 3 | 4 | VISR Binaural Synthesis Toolkit (BST) 5 | Authors: Andreas Franck and Giacomo Costantini 6 | Project page: http://cvssp.org/data/s3a/public/BinauralSynthesisToolkit/ 7 | 8 | Changelog 9 | 10 | Version 1.0.0 2017/05/21 11 | ======================== 12 | * Initial release -------------------------------------------------------------------------------- /src/python/packages/visr_bst/data/loudspeaker_configs/bbcrdlr_systemA.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/python/packages/visr_bst/data/loudspeaker_configs/bbcrdlr_systemB.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/python/packages/visr_bst/data/sofa/brir/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all downloaded SOFA files (regardless of case) 2 | **.[sS][oO][fF][aA] -------------------------------------------------------------------------------- /src/python/packages/visr_bst/data/sofa/hoa2binaural/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all downloaded SOFA files (regardless of case) 2 | **.[sS][oO][fF][aA] -------------------------------------------------------------------------------- /src/python/packages/visr_bst/data/sofa/hrir/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all downloaded SOFA files (regardless of case) 2 | **.[sS][oO][fF][aA] -------------------------------------------------------------------------------- /src/python/packages/visr_bst/examples/.gitignore: -------------------------------------------------------------------------------- 1 | data/ -------------------------------------------------------------------------------- /src/python/packages/visr_bst/util/__init__.py: -------------------------------------------------------------------------------- 1 | # %BST_LICENCE_TEXT% 2 | 3 | from .read_sofa_file import readSofaFile 4 | from .sofa_extract_delay import sofaExtractDelay 5 | 6 | 7 | from .rotation_functions import rad2deg 8 | from .rotation_functions import deg2rad 9 | from .rotation_functions import cart2sph 10 | from .rotation_functions import sph2cart 11 | from .rotation_functions import calcRotationMatrix 12 | from .rotation_functions import rotationMatrixReorderingACN 13 | 14 | # Vectorised rotation matrix calculation. 15 | from .spherical_harmonics_rotation import sphericalHarmonicsRotationMatrix 16 | from .spherical_harmonics_rotation import allSphericalHarmonicsRotationMatrices 17 | 18 | from .real_spherical_harmonics import sphHarmReal, allSphHarmRealACN 19 | -------------------------------------------------------------------------------- /src/python/panning/panning.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | // Function declarations 6 | namespace visr 7 | { 8 | namespace python 9 | { 10 | namespace panning 11 | { 12 | void exportLoudspeakerArray( pybind11::module & m ); 13 | void exportXYZ(pybind11::module & m); 14 | void exportVBAP(pybind11::module & m); 15 | } 16 | } 17 | } 18 | 19 | PYBIND11_MODULE( panning, m ) 20 | { 21 | using namespace visr::python::panning; 22 | 23 | // Export the communication protocols 24 | exportLoudspeakerArray( m ); 25 | exportXYZ(m); 26 | exportVBAP(m); 27 | } 28 | -------------------------------------------------------------------------------- /src/python/panningdsp/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME panningdsppython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( panningdsppython_test panningdsppython ) 8 | -------------------------------------------------------------------------------- /src/python/pml/test/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .cache -------------------------------------------------------------------------------- /src/python/pml/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME pmlpython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( pmlpython_test pmlpython ) 8 | -------------------------------------------------------------------------------- /src/python/rbbl/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME rbblpython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( rbblpython_test rbblpython ) 8 | -------------------------------------------------------------------------------- /src/python/rcl/scene_decoder.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | 11 | namespace visr 12 | { 13 | namespace python 14 | { 15 | namespace rcl 16 | { 17 | 18 | void exportSceneDecoder( pybind11::module & m ) 19 | { 20 | pybind11::class_( m, "SceneDecoder" ) 21 | .def( pybind11::init(), 22 | pybind11::arg( "context" ), pybind11::arg( "name" ), 23 | pybind11::arg("parent") = static_cast(nullptr) ) 24 | ; 25 | } 26 | 27 | } // namepace rcl 28 | } // namespace python 29 | } // namespace visr 30 | -------------------------------------------------------------------------------- /src/python/rcl/scene_encoder.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | 11 | namespace visr 12 | { 13 | namespace python 14 | { 15 | namespace rcl 16 | { 17 | 18 | void exportSceneEncoder( pybind11::module & m ) 19 | { 20 | pybind11::class_( m, "SceneEncoder" ) 21 | .def( pybind11::init(), 22 | pybind11::arg( "context" ), pybind11::arg( "name" ), 23 | pybind11::arg("parent") = static_cast(nullptr) ) 24 | ; 25 | } 26 | 27 | } // namepace rcl 28 | } // namespace python 29 | } // namespace visr 30 | -------------------------------------------------------------------------------- /src/python/rcl/test/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .cache -------------------------------------------------------------------------------- /src/python/rcl/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME rclpython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( rclpython_test rclpython ) 8 | -------------------------------------------------------------------------------- /src/python/rrl/integrity_checking.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | namespace visr 15 | { 16 | 17 | namespace python 18 | { 19 | namespace rrl 20 | { 21 | 22 | void exportIntegrityChecking( pybind11::module & m ) 23 | { 24 | m.def( "checkConnectionIntegrity", []( Component const & component, bool hierarchical ) 25 | { std::stringstream msg; bool res = visr::rrl::checkConnectionIntegrity( component, hierarchical, msg ); return std::make_tuple(res, msg.str()); }, 26 | pybind11::arg("component"), pybind11::arg("hierarchical") = true ); 27 | } 28 | 29 | } // namespace rrl 30 | } // namespace python 31 | } // namespace visr 32 | -------------------------------------------------------------------------------- /src/python/rrl/rrl.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | // Forward declarations 6 | namespace visr 7 | { 8 | namespace python 9 | { 10 | namespace rrl 11 | { 12 | void exportAudioSignalFlow( pybind11::module & m ); 13 | void exportIntegrityChecking( pybind11::module & m ); 14 | #ifdef VISR_RRL_RUNTIME_SYSTEM_PROFILING 15 | void exportRuntimeProfiler( pybind11::module & m ); 16 | #endif 17 | void exportFlexibleBufferWrapper( pybind11::module & m ); 18 | } // namespace rrl 19 | } // namespace python 20 | } // namespace visr 21 | 22 | PYBIND11_MODULE( rrl, m ) 23 | { 24 | using namespace visr::python::rrl; 25 | exportAudioSignalFlow( m ); 26 | exportIntegrityChecking( m ); 27 | #ifdef VISR_RRL_RUNTIME_SYSTEM_PROFILING 28 | exportRuntimeProfiler( m ); 29 | #endif 30 | exportFlexibleBufferWrapper( m ); 31 | } 32 | -------------------------------------------------------------------------------- /src/python/rrl/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Institute of Sound and Vibration Research - All rights reserved 2 | 3 | add_test(NAME rrlpython_test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 4 | COMMAND ${PYTHON_EXECUTABLE} -m pytest ) 5 | 6 | include( adjust_test_environment ) 7 | adjustPythonTestEnvironment( rrlpython_test rrlpython ) 8 | -------------------------------------------------------------------------------- /src/python/scripts/binaural/data/.gitignore: -------------------------------------------------------------------------------- 1 | *.sofa -------------------------------------------------------------------------------- /src/python/scripts/binaural/option_files/virtual_4+5.cfg: -------------------------------------------------------------------------------- 1 | -m "/home/andi/dev/visr/src/python/scripts/binaural/virtual_loudspeaker_renderer_serial.py" 2 | -c VirtualLoudspeakerRendererSerial 3 | -k "{ \"numLoudspeakers\": 9, \"port\": \"/dev/ttyUSB0\", 4 | \"baud\": 57600, 5 | \"sofaFile\": \"/home/andi/BBC/SOFA/bbcrdlr_systemD.sofa\", 6 | \"enableSerial\": True, 7 | \"dynITD\": False, 8 | \"hrirInterp\": True, 9 | \"irTruncationLength\": 4096, 10 | \"headTrackingCalibrationPort\":8889 }" 11 | -f 48000 12 | -p 1024 13 | --audio-backend=Jack 14 | --audio-ifc-options="{ \"clientname\": \"VirtualLoudspeakerRenderer\" }" 15 | -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/EnglishGBF_Hannah_comp.wav.reapeaks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/EnglishGBF_Hannah_comp.wav.reapeaks -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/calibration.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830 2 | {\fonttbl\f0\fnil\fcharset0 AndaleMono;} 3 | {\colortbl;\red255\green255\blue255;\red47\green255\blue18;\red0\green0\blue0;} 4 | {\*\expandedcolortbl;;\cssrgb\c15686\c99608\c7843;\csgray\c0\c90000;} 5 | \paperw11900\paperh16840\margl1440\margr1440\vieww28300\viewh16500\viewkind0 6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 7 | 8 | \f0\fs24 \cf2 \cb3 \CocoaLigature0 echo -n \'93foo\'94 | nc -4u -w1 127.0.0.1 8889} -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/cello.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/cello.wav -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/cello.wav.reapeaks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/cello.wav.reapeaks -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/fly me to the moon [chan 1].wav.reapeaks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/fly me to the moon [chan 1].wav.reapeaks -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/kill process using port.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \paperw11900\paperh16840\margl1440\margr1440\vieww28300\viewh16500\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 7 | 8 | \f0\fs24 \cf0 kill process using a port\ 9 | \ 10 | 11 | \i lsof -i 12 | \i0 \ 13 | \ 14 | trova il PID\ 15 | \ 16 | 17 | \i kill 18 | \i0 \ 19 | } -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/sinusoide_440_44100.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/sinusoide_440_44100.wav -------------------------------------------------------------------------------- /src/python/scripts/binaural/testing/sinusoide_440_44100.wav.reapeaks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/binaural/testing/sinusoide_440_44100.wav.reapeaks -------------------------------------------------------------------------------- /src/python/scripts/rsao/BBC_BRIR.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/rsao/BBC_BRIR.mat -------------------------------------------------------------------------------- /src/python/scripts/rsao/bbcrdlr9ch_brirs.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/s3a-spatialaudio/VISR/ac48082f47109c766992a039787d3102075852ea/src/python/scripts/rsao/bbcrdlr9ch_brirs.wav -------------------------------------------------------------------------------- /src/python/signalflows/baseline_renderer.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PYTHON_SIGNALFLOWS_BASELINE_RENDERER_HPP_INCLUDED 4 | #define VISR_PYTHON_SIGNALFLOWS_BASELINE_RENDERER_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace python 11 | { 12 | namespace signalflows 13 | { 14 | 15 | void exportBaselineRenderer( pybind11::module& m ); 16 | 17 | } // namepace signalflows 18 | } // namespace python 19 | } // namespace visr 20 | 21 | #endif // #ifndef VISR_PYTHON_SIGNALFLOWS_BASELINE_RENDERER_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/python/signalflows/core_renderer.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 4 | #define VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace python 11 | { 12 | namespace signalflows 13 | { 14 | 15 | void exportCoreRenderer( pybind11::module& m ); 16 | 17 | } // namepace signalflows 18 | } // namespace python 19 | } // namespace visr 20 | 21 | #endif // #ifndef VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/python/signalflows/delay_matrix.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 4 | #define VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace python 11 | { 12 | namespace signalflows 13 | { 14 | 15 | void exportCoreRenderer( pybind11::module& m ); 16 | 17 | } // namepace signalflows 18 | } // namespace python 19 | } // namespace visr 20 | 21 | #endif // #ifndef VISR_PYTHON_SIGNALFLOWS_CORE_RENDERER_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/python/signalflows/delay_vector.hpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #ifndef VISR_PYTHON_SIGNALFLOWS_DELAY_VECTOR_HPP_INCLUDED 4 | #define VISR_PYTHON_SIGNALFLOWS_DELAY_VECTOR_HPP_INCLUDED 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace python 11 | { 12 | namespace signalflows 13 | { 14 | 15 | void exportDelayVector( pybind11::module& m ); 16 | 17 | } // namepace signalflows 18 | } // namespace python 19 | } // namespace visr 20 | 21 | #endif // #ifndef VISR_PYTHON_SIGNALFLOWS_DELAY_VECTOR_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/python/visr/signal_flow_context.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | 4 | #include 5 | 6 | #include 7 | 8 | namespace visr 9 | { 10 | namespace python 11 | { 12 | namespace visr 13 | { 14 | 15 | void exportSignalFlowContext( pybind11::module & m ) 16 | { 17 | pybind11::class_( m, "SignalFlowContext" ) 18 | .def( pybind11::init() 19 | , pybind11::arg("period"), pybind11::arg("samplingFrequency") ) 20 | .def_property_readonly( "samplingFrequency", &SignalFlowContext::samplingFrequency ) 21 | .def_property_readonly( "period", &SignalFlowContext::period ) 22 | ; 23 | } 24 | 25 | } // namepace visr 26 | } // namespace python 27 | } // namespace visr 28 | 29 | -------------------------------------------------------------------------------- /src/python/visr/time.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright Institute of Sound and Vibration Research - All rights reserved */ 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include 8 | 9 | namespace visr 10 | { 11 | namespace python 12 | { 13 | namespace visr 14 | { 15 | 16 | 17 | void exportTime( pybind11::module & m ) 18 | { 19 | pybind11::class_ >( m, "Time" ) 20 | .def_property_readonly( "sampleCount", &Time::sampleCount ) 21 | .def_property_readonly( "blockCount", &Time::blockCount ) 22 | .def_property_readonly( "renderingTime", &Time::renderingTime ) 23 | ; 24 | } 25 | 26 | } // namepace visr 27 | } // namespace python 28 | } // namespace visr 29 | --------------------------------------------------------------------------------