working convolver but slower that realtime

This commit is contained in:
minjaesong
2023-11-25 18:54:56 +09:00
parent b1811a4013
commit faf5e367be
55 changed files with 417 additions and 62 deletions

View File

@@ -13,84 +13,110 @@
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetCpuName.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jxinput-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/prtree.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/Terrarum_Joise.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/TerrarumSansBitmap.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-jnigen-loader-2.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-math3-3.6.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-1.12.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-arm64-v8a.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-desktop.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-backend-lwjgl3-1.12.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-x86_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/kotlinx-coroutines-core-1.7.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-glfw-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-jemalloc-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-openal-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-opengl-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux-arm32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-linux-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-macos.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-macos-arm64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-windows.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/lwjgl-stb-3.3.2-natives-windows-x86.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-arm64-v8a.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-desktop.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.12.0-natives-x86_64.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/kotlinx-coroutines-core-jvm-1.7.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/annotations-23.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.21/kotlin-stdlib-jdk8-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/annotations-23.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.21/kotlin-stdlib-jdk7-1.8.21.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/kotlinx-coroutines-core-1.7.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jdsp-2.0.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/xchart-3.8.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/VectorGraphics2D-0.13.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graphics2d-0.32.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/pdfbox-2.0.24.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/fontbox-2.0.24.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-logging-1.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/animated-gif-lib-1.4.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/ssj-3.3.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jfreechart-1.0.12.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jcommon-1.0.15.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/colt-1.2.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/concurrent-1.3.4.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/optimization-1.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/iirj-1.5.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/wavfile-0.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-jupiter-engine-5.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/apiguardian-api-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-platform-engine-1.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-platform-commons-1.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/opentest4j-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-jupiter-api-5.0.3.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-platform-surefire-provider-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/junit-platform-launcher-1.0.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/surefire-api-2.19.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/common-java5-2.19.1.jar" path-in-jar="/" />
</root>
</artifact>
</component>

View File

@@ -0,0 +1,61 @@
<component name="libraryTable">
<library name="github.psambit9791.jdsp" type="repository">
<properties maven-id="com.github.psambit9791:jdsp:2.0.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/jdsp-2.0.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/xchart-3.8.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/VectorGraphics2D-0.13.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/graphics2d-0.32.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/pdfbox-2.0.24.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/fontbox-2.0.24.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/commons-logging-1.2.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/animated-gif-lib-1.4.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/ssj-3.3.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jfreechart-1.0.12.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/jcommon-1.0.15.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/colt-1.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/concurrent-1.3.4.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/optimization-1.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/commons-math3-3.6.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/iirj-1.5.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/wavfile-0.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-jupiter-engine-5.0.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/apiguardian-api-1.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-engine-1.0.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-commons-1.0.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/opentest4j-1.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-jupiter-api-5.0.3.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-surefire-provider-1.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-launcher-1.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/surefire-api-2.19.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/common-java5-2.19.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/jdsp-2.0.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/xchart-3.8.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/VectorGraphics2D-0.13-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/graphics2d-0.32-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/pdfbox-2.0.24-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/fontbox-2.0.24-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/commons-logging-1.2-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/animated-gif-lib-1.4-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/ssj-3.3.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/concurrent-1.3.4-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/optimization-1.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/commons-math3-3.6.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/iirj-1.5-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/wavfile-0.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-jupiter-engine-5.0.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/apiguardian-api-1.0.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-engine-1.0.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-commons-1.0.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/opentest4j-1.0.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-jupiter-api-5.0.3-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-surefire-provider-1.0.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/junit-platform-launcher-1.0.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/surefire-api-2.19.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/common-java5-2.19.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -27,5 +27,6 @@
<orderEntry type="library" name="io.github.classgraph" level="project" />
<orderEntry type="library" name="apache.commons.math3" level="project" />
<orderEntry type="library" name="jetbrains.kotlinx.coroutines.core" level="project" />
<orderEntry type="library" name="github.psambit9791.jdsp" level="project" />
</component>
</module>

Binary file not shown.

BIN
lib/VectorGraphics2D-0.13.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/animated-gif-lib-1.4.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/apiguardian-api-1.0.0.jar LFS Normal file

Binary file not shown.

BIN
lib/colt-1.2.0.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/common-java5-2.19.1.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/commons-logging-1.2.jar LFS Normal file

Binary file not shown.

BIN
lib/concurrent-1.3.4-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/concurrent-1.3.4.jar LFS Normal file

Binary file not shown.

BIN
lib/fontbox-2.0.24-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/fontbox-2.0.24.jar LFS Normal file

Binary file not shown.

BIN
lib/graphics2d-0.32-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/graphics2d-0.32.jar LFS Normal file

Binary file not shown.

BIN
lib/iirj-1.5-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/iirj-1.5.jar LFS Normal file

Binary file not shown.

BIN
lib/jcommon-1.0.15.jar LFS Normal file

Binary file not shown.

BIN
lib/jdsp-2.0.1-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/jdsp-2.0.1.jar LFS Normal file

Binary file not shown.

BIN
lib/jfreechart-1.0.12.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/junit-jupiter-api-5.0.3.jar LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/opentest4j-1.0.0-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/opentest4j-1.0.0.jar LFS Normal file

Binary file not shown.

BIN
lib/optimization-1.3-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/optimization-1.3.jar LFS Normal file

Binary file not shown.

BIN
lib/pdfbox-2.0.24-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/pdfbox-2.0.24.jar LFS Normal file

Binary file not shown.

BIN
lib/ssj-3.3.1-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/ssj-3.3.1.jar LFS Normal file

Binary file not shown.

Binary file not shown.

BIN
lib/surefire-api-2.19.1.jar LFS Normal file

Binary file not shown.

BIN
lib/wavfile-0.1-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/wavfile-0.1.jar LFS Normal file

Binary file not shown.

BIN
lib/xchart-3.8.1-sources.jar LFS Normal file

Binary file not shown.

BIN
lib/xchart-3.8.1.jar LFS Normal file

Binary file not shown.

View File

@@ -6,6 +6,7 @@ import com.badlogic.gdx.backends.lwjgl3.audio.Lwjgl3Audio
import com.badlogic.gdx.utils.Disposable
import com.jme3.math.FastMath
import net.torvald.terrarum.App
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.SAMPLING_RATE
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.SAMPLING_RATED
import net.torvald.terrarum.modulebasegame.MusicContainer
@@ -102,7 +103,7 @@ object AudioMixer: Disposable {
init {
// musicTrack.filters[0] = BinoPan((Math.random() * 2.0 - 1.0).toFloat())
musicTrack.filters[1] = Reverb(36f, 0.92f, 1200f)
// musicTrack.filters[1] = Reverb(36f, 0.92f, 1200f)
masterTrack.filters[0] = SoftClp
masterTrack.filters[1] = Buffer
@@ -112,6 +113,7 @@ object AudioMixer: Disposable {
fadeBus.addSidechainInput(ambientTrack, 1.0)
fadeBus.addSidechainInput(sfxMixTrack, 1.0)
fadeBus.filters[0] = Lowpass(SAMPLING_RATE / 2f)
fadeBus.filters[1] = Convolv(ModMgr.getFile("basegame", "audio/convolution/EchoThief - TransitCenter.bin"))
masterTrack.addSidechainInput(fadeBus, 1.0)
masterTrack.addSidechainInput(guiTrack, 1.0)

View File

@@ -1,11 +1,16 @@
package net.torvald.terrarum.audio
import com.github.psambit9791.jdsp.transform.FastFourier
import com.github.psambit9791.jdsp.transform.InverseFastFourier
import com.jme3.math.FastMath
import com.jme3.math.FastMath.sin
import net.torvald.terrarum.audio.AudioMixer.SPEED_OF_SOUND
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.BUFFER_SIZE
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.SAMPLING_RATED
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.SAMPLING_RATEF
import net.torvald.terrarum.roundToFloat
import org.apache.commons.math3.complex.Complex
import java.io.File
import kotlin.math.absoluteValue
import kotlin.math.roundToInt
import kotlin.math.tanh
@@ -293,6 +298,119 @@ class Reverb(val delayMS: Float = 36f, var feedback: Float = 0.92f, var lowpass:
}
}
class Convolv(ir: File, val gain: Float = decibelsToFullscale(-12.0).toFloat()): TerrarumAudioFilter() {
private val fftLen: Int
private val convFFT: Array<Array<Complex>>
private val inbuf: Array<DoubleArray>
// private val outbuf: Array<DoubleArray>
private val BLOCKSIZE = BUFFER_SIZE / 4
init {
if (!ir.exists()) {
throw IllegalArgumentException("Impulse Response file '${ir.path}' does not exist.")
}
val sampleCount = ir.length().toInt() / 8
fftLen = FastMath.nextPowerOfTwo(sampleCount)
println("IR Sample Count = $sampleCount; FFT Length = $fftLen")
val conv = Array(2) { DoubleArray(fftLen) }
inbuf = Array(2) { DoubleArray(fftLen) }
// outbuf = Array(2) { DoubleArray(fftLen) }
ir.inputStream().let {
for (i in 0 until sampleCount) {
val f1 = Float.fromBits(it.read().and(255) or
it.read().and(255).shl(8) or
it.read().and(255).shl(16) or
it.read().and(255).shl(24))
val f2 = Float.fromBits(it.read().and(255) or
it.read().and(255).shl(8) or
it.read().and(255).shl(16) or
it.read().and(255).shl(24))
conv[0][i] = f1.toDouble()
conv[1][i] = f2.toDouble()
}
it.close()
}
// fourier-transform the 'conv'
convFFT = Array(2) {
FastFourier(conv[it]).let { it.transform(); it.getComplex(false) }
}
println("convFFT Length = ${convFFT[0].size}")
}
/**
* https://thewolfsound.com/fast-convolution-fft-based-overlap-add-overlap-save-partitioned/
*/
override fun thru(inbuf0: List<FloatArray>, inbuf1: List<FloatArray>, outbuf0: List<FloatArray>, outbuf1: List<FloatArray>) {
// println("Convolv thru")
val t1 = System.nanoTime()
for (ch in outbuf1.indices) {
push(inbuf1[ch].toDoubleArray(), inbuf[ch])
val inputFFT = FastFourier(inbuf[ch]).let { it.transform(); it.getComplex(false) }
val Ny = inputFFT.size// + convFFT[ch].size - 1
// println("inputFFT.size=${inputFFT.size} convFFT[ch].size=${convFFT[ch].size} Ny=$Ny")
val Y = multiply(inputFFT, convFFT[ch])
val y = real(ifft(Y))
val u = y.sliceArray(Ny - BLOCKSIZE until Ny).toFloatArray(gain)
System.arraycopy(u, 0, outbuf1[ch], 0, BLOCKSIZE)
}
val t2 = System.nanoTime()
val ptime = (t2 - t1).toDouble()
val realtime = BLOCKSIZE / SAMPLING_RATED * 1000000000L
if (realtime >= ptime) {
println("Processing speed: ${realtime / ptime}x FASTER than realtime")
}
else {
println("Processing speed: ${ptime / realtime}x SLOWER than realtime")
}
}
private fun real(cs: Array<Complex>): DoubleArray {
return cs.map { it.real }.toDoubleArray()
}
private fun ifft(y: Array<Complex>): Array<Complex> {
return InverseFastFourier(y, false).let { it.transform(); it.complex }
}
private fun multiply(X: Array<Complex>, H: Array<Complex>): Array<Complex> {
if (X.size != H.size) throw IllegalArgumentException()
return Array(X.size) {
X[it].multiply(H[it])
}
}
private fun push(sample: Double, buf: DoubleArray) {
System.arraycopy(buf, 1, buf, 0, buf.size - 1)
buf[buf.lastIndex] = sample
}
private fun push(samples: DoubleArray, buf: DoubleArray) {
System.arraycopy(buf, samples.size, buf, 0, buf.size - samples.size)
System.arraycopy(samples, 0, buf, buf.size - samples.size - 1, samples.size)
}
private fun FloatArray.toDoubleArray() = this.map { it.toDouble() }.toDoubleArray()
private fun DoubleArray.toFloatArray(gain: Float = 1f) = this.map { it.toFloat() * gain }.toFloatArray()
}
object XYtoMS: TerrarumAudioFilter() {
override fun thru(inbuf0: List<FloatArray>, inbuf1: List<FloatArray>, outbuf0: List<FloatArray>, outbuf1: List<FloatArray>) {
for (i in 0 until BUFFER_SIZE / 4) {

View File

@@ -404,7 +404,7 @@ class BasicDebugInfoWindow : UICanvas() {
private val meterTroughHeight = 16 * 11 + 5
private val meterHeight = meterTroughHeight - 4
private val trackCount = (AudioMixer.tracks + AudioMixer.masterTrack).size
private val trackCount = 64//(AudioMixer.tracks + AudioMixer.masterTrack).size
private val mixerLastTimeHadClipping = Array(trackCount) { arrayOf(0L, 0L) }
private val clippingHoldTime = 60000L * 3 // 3 mins