diff --git a/.idea/artifacts/TerrarumBuild.xml b/.idea/artifacts/TerrarumBuild.xml index dfed15033..a83413779 100644 --- a/.idea/artifacts/TerrarumBuild.xml +++ b/.idea/artifacts/TerrarumBuild.xml @@ -13,80 +13,84 @@ - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModuleComputers/ModuleComputers.iml b/ModuleComputers/ModuleComputers.iml index b6f9df865..bf956ac44 100644 --- a/ModuleComputers/ModuleComputers.iml +++ b/ModuleComputers/ModuleComputers.iml @@ -17,5 +17,6 @@ + \ No newline at end of file diff --git a/TerrarumBuild.iml b/TerrarumBuild.iml index 1e2b58a3f..7dc4c4a4e 100644 --- a/TerrarumBuild.iml +++ b/TerrarumBuild.iml @@ -26,5 +26,6 @@ + \ No newline at end of file diff --git a/lib/annotations-23.0.0-javadoc.jar b/lib/annotations-23.0.0-javadoc.jar new file mode 100644 index 000000000..a6bbdedff --- /dev/null +++ b/lib/annotations-23.0.0-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631038d3c232e65f0f427885c397a9ea13a368b2e67a2748d6f874781cb884a2 +size 533632 diff --git a/lib/annotations-23.0.0.jar b/lib/annotations-23.0.0.jar new file mode 100644 index 000000000..45d92b051 --- /dev/null +++ b/lib/annotations-23.0.0.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0f19724082cbfcbc66e5abea2b9bc92cf08a1ea11e191933ed43801eb3cd05 +size 29371 diff --git a/lib/kotlin-stdlib-1.8.20-javadoc.jar b/lib/kotlin-stdlib-1.8.20-javadoc.jar new file mode 100644 index 000000000..7962e222d --- /dev/null +++ b/lib/kotlin-stdlib-1.8.20-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e1a62e5752ca3f43fb1607f161379bbe88b64af89c1a543c126160adf7cc53 +size 261 diff --git a/lib/kotlin-stdlib-1.8.20.jar b/lib/kotlin-stdlib-1.8.20.jar new file mode 100644 index 000000000..72355b4b4 --- /dev/null +++ b/lib/kotlin-stdlib-1.8.20.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4395647b1961d9fb730a34e8dbe56c293157bc0759004cca63d9b5ee6653e5c7 +size 1670469 diff --git a/lib/kotlin-stdlib-common-1.8.20-javadoc.jar b/lib/kotlin-stdlib-common-1.8.20-javadoc.jar new file mode 100644 index 000000000..7962e222d --- /dev/null +++ b/lib/kotlin-stdlib-common-1.8.20-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e1a62e5752ca3f43fb1607f161379bbe88b64af89c1a543c126160adf7cc53 +size 261 diff --git a/lib/kotlin-stdlib-common-1.8.20.jar b/lib/kotlin-stdlib-common-1.8.20.jar new file mode 100644 index 000000000..be95678a1 --- /dev/null +++ b/lib/kotlin-stdlib-common-1.8.20.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa20188abaa8ecf1d0035e93a969b071f10e45a1c8378c314521eade73f75fd5 +size 221491 diff --git a/lib/kotlin-stdlib-jdk7-1.8.20-javadoc.jar b/lib/kotlin-stdlib-jdk7-1.8.20-javadoc.jar new file mode 100644 index 000000000..7962e222d --- /dev/null +++ b/lib/kotlin-stdlib-jdk7-1.8.20-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e1a62e5752ca3f43fb1607f161379bbe88b64af89c1a543c126160adf7cc53 +size 261 diff --git a/lib/kotlin-stdlib-jdk7-1.8.20.jar b/lib/kotlin-stdlib-jdk7-1.8.20.jar new file mode 100644 index 000000000..605282774 --- /dev/null +++ b/lib/kotlin-stdlib-jdk7-1.8.20.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c +size 963 diff --git a/lib/kotlin-stdlib-jdk8-1.8.20-javadoc.jar b/lib/kotlin-stdlib-jdk8-1.8.20-javadoc.jar new file mode 100644 index 000000000..7962e222d --- /dev/null +++ b/lib/kotlin-stdlib-jdk8-1.8.20-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e1a62e5752ca3f43fb1607f161379bbe88b64af89c1a543c126160adf7cc53 +size 261 diff --git a/lib/kotlin-stdlib-jdk8-1.8.20.jar b/lib/kotlin-stdlib-jdk8-1.8.20.jar new file mode 100644 index 000000000..92844be07 --- /dev/null +++ b/lib/kotlin-stdlib-jdk8-1.8.20.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010 +size 969 diff --git a/lib/kotlinx-coroutines-core-1.7.3.jar b/lib/kotlinx-coroutines-core-1.7.3.jar new file mode 100644 index 000000000..374a3c387 --- /dev/null +++ b/lib/kotlinx-coroutines-core-1.7.3.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9522095aedcc2a6ab32c7484061ea698352c71be1390adb403b59aa48a38fdc +size 87702 diff --git a/lib/kotlinx-coroutines-core-jvm-1.7.3-javadoc.jar b/lib/kotlinx-coroutines-core-jvm-1.7.3-javadoc.jar new file mode 100644 index 000000000..25540b84c --- /dev/null +++ b/lib/kotlinx-coroutines-core-jvm-1.7.3-javadoc.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f4da9bdaa66e05b11baed1e3c49725756693e09c1b373f476c5262a45992b86 +size 261 diff --git a/lib/kotlinx-coroutines-core-jvm-1.7.3.jar b/lib/kotlinx-coroutines-core-jvm-1.7.3.jar new file mode 100644 index 000000000..d0262d920 --- /dev/null +++ b/lib/kotlinx-coroutines-core-jvm-1.7.3.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab3acc38f3e7355c4f9d1ec62107a46fa73c899f3070d055e5d4373dfe67e12 +size 1551152 diff --git a/src/net/torvald/terrarum/audio/TerrarumAudioMixerTracks.kt b/src/net/torvald/terrarum/audio/TerrarumAudioMixerTracks.kt index cfa507063..95608ce11 100644 --- a/src/net/torvald/terrarum/audio/TerrarumAudioMixerTracks.kt +++ b/src/net/torvald/terrarum/audio/TerrarumAudioMixerTracks.kt @@ -75,13 +75,17 @@ class TerrarumAudioMixerTracks(val isMaster: Boolean = false): Disposable { it.isAccessible = true it.get(Gdx.audio) as Int } - private val adev = OpenALBufferedAudioDevice( - Gdx.audio as OpenALLwjgl3Audio, - SAMPLING_RATE, - false, - deviceBufferSize, - deviceBufferCount - ) {} + private val adev: OpenALBufferedAudioDevice? = + if (isMaster) { + OpenALBufferedAudioDevice( + Gdx.audio as OpenALLwjgl3Audio, + SAMPLING_RATE, + false, + deviceBufferSize, + deviceBufferCount + ) {} + } + else null /** @@ -104,7 +108,7 @@ class TerrarumAudioMixerTracks(val isMaster: Boolean = false): Disposable { get() = currentTrack?.gdxMusic?.isPlaying override fun dispose() { - adev.dispose() + adev?.dispose() } override fun equals(other: Any?) = this.hash == (other as TerrarumAudioMixerTracks).hash @@ -158,12 +162,21 @@ class TerrarumAudioMixerTracks(val isMaster: Boolean = false): Disposable { } } else { + adev!!.writeSamples(interleave(samplesL1, samplesR1), 0, samplesL1.size * 2) + withContext(Dispatchers.IO) { + Thread.sleep(12) + } + getSidechains().forEach { it?.processContinuation?.resume(Unit) } } } } + + private fun interleave(f1: FloatArray, f2: FloatArray) = FloatArray(f1.size + f2.size) { + if (it % 2 == 0) f1[it / 2] else f2[it / 2] + } } fun fullscaleToDecibels(fs: Double) = 10.0 * log10(fs)