mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 03:54:06 +09:00
turntable wow and flutter sim wip
This commit is contained in:
@@ -2,7 +2,6 @@ package net.torvald.terrarum.modulebasegame.gameactors
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.Texture
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import com.jme3.math.FastMath
|
||||
import net.torvald.gdx.graphics.Cvec
|
||||
@@ -13,8 +12,6 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.AudioMixer.Companion.DEFAULT_FADEOUT_LEN
|
||||
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
|
||||
import net.torvald.terrarum.audio.dsp.Convolv
|
||||
import net.torvald.terrarum.audio.dsp.LoFi
|
||||
import net.torvald.terrarum.audio.dsp.NullFilter
|
||||
import net.torvald.terrarum.audio.dsp.Phono
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
@@ -93,7 +90,7 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
|
||||
|
||||
App.audioMixerReloadHooks[this] = {
|
||||
loadConvolver(musicTracks[musicNowPlaying])
|
||||
loadEffector(musicTracks[musicNowPlaying])
|
||||
}
|
||||
|
||||
despawnHook = {
|
||||
@@ -131,7 +128,7 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
printdbg(this, "Title: $title, artist: $artist")
|
||||
|
||||
musicNowPlaying = MusicContainer(title, musicFile.file(), Gdx.audio.newMusic(musicFile)) {
|
||||
unloadConvolver(musicNowPlaying)
|
||||
unloadEffector(musicNowPlaying)
|
||||
discCurrentlyPlaying = null
|
||||
musicNowPlaying?.gdxMusic?.tryDispose()
|
||||
musicNowPlaying = null
|
||||
@@ -149,7 +146,7 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
discCurrentlyPlaying = index
|
||||
|
||||
App.audioMixer.requestFadeOut(App.audioMixer.musicTrack, DEFAULT_FADEOUT_LEN / 2f) {
|
||||
startAudio(musicNowPlaying!!) { loadConvolver(it) }
|
||||
startAudio(musicNowPlaying!!) { loadEffector(it) }
|
||||
}
|
||||
|
||||
|
||||
@@ -210,19 +207,21 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
private fun stopDiscPlayback() {
|
||||
musicNowPlaying?.let {
|
||||
stopAudio(it)
|
||||
unloadConvolver(it)
|
||||
unloadEffector(it)
|
||||
}
|
||||
|
||||
backLamp.currentFrame = 0
|
||||
playMech.currentFrame = 0
|
||||
}
|
||||
|
||||
private fun loadConvolver(it: TerrarumAudioMixerTrack?) {
|
||||
Companion.loadConvolver(filterIndex, it, "basegame", "audio/convolution/Soundwoofer - large_speaker_Marshall JVM 205C SM57 A 0 0 1.bin")
|
||||
private fun loadEffector(it: TerrarumAudioMixerTrack?) {
|
||||
loadConvolver(filterIndex, it, "basegame", "audio/convolution/Soundwoofer - large_speaker_Marshall JVM 205C SM57 A 0 0 1.bin")
|
||||
setJitter(it, 1, 0.005f)
|
||||
}
|
||||
|
||||
private fun unloadConvolver(music: MusicContainer?) {
|
||||
Companion.unloadConvolver(this, filterIndex, music)
|
||||
private fun unloadEffector(music: MusicContainer?) {
|
||||
unloadConvolver(this, filterIndex, music)
|
||||
unsetJitter(this, music)
|
||||
}
|
||||
|
||||
override fun reload() {
|
||||
@@ -248,6 +247,13 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
))
|
||||
}
|
||||
|
||||
fun setJitter(it: TerrarumAudioMixerTrack?, mode: Int, intensity: Float) {
|
||||
it?.let {
|
||||
it.processor.jitterMode = mode
|
||||
it.processor.jitterIntensity = intensity
|
||||
}
|
||||
}
|
||||
|
||||
fun unloadConvolver(actor: Actor, filterIndex: Int, music: MusicContainer?) {
|
||||
if (music != null) {
|
||||
actor.musicTracks[music]?.let {
|
||||
@@ -255,5 +261,12 @@ class FixtureJukebox : Electric, PlaysMusic {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun unsetJitter(actor: Actor, music: MusicContainer?) {
|
||||
actor.musicTracks[music]?.let {
|
||||
it.processor.jitterMode = 0
|
||||
it.processor.jitterIntensity = 0f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
|
||||
|
||||
|
||||
App.audioMixerReloadHooks[this] = {
|
||||
loadConvolver(musicTracks[musicNowPlaying])
|
||||
loadEffector(musicTracks[musicNowPlaying])
|
||||
}
|
||||
|
||||
despawnHook = {
|
||||
@@ -120,7 +120,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
|
||||
App.printdbg(this, "Title: $title, artist: $artist")
|
||||
|
||||
musicNowPlaying = MusicContainer(title, musicFile.file(), Gdx.audio.newMusic(musicFile)) {
|
||||
unloadConvolver(musicNowPlaying)
|
||||
unloadEffector(musicNowPlaying)
|
||||
musicNowPlaying?.gdxMusic?.tryDispose()
|
||||
musicNowPlaying = null
|
||||
|
||||
@@ -132,7 +132,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
|
||||
}
|
||||
|
||||
App.audioMixer.requestFadeOut(App.audioMixer.musicTrack, AudioMixer.DEFAULT_FADEOUT_LEN / 2f) {
|
||||
startAudio(musicNowPlaying!!) { loadConvolver(it) }
|
||||
startAudio(musicNowPlaying!!) { loadEffector(it) }
|
||||
}
|
||||
|
||||
(sprite as SheetSpriteAnimation).currentRow = 0
|
||||
@@ -152,18 +152,20 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
|
||||
private fun stopDiscPlayback() {
|
||||
musicNowPlaying?.let {
|
||||
stopAudio(it)
|
||||
unloadConvolver(it)
|
||||
unloadEffector(it)
|
||||
}
|
||||
|
||||
(sprite as SheetSpriteAnimation).currentRow = 1
|
||||
}
|
||||
|
||||
private fun loadConvolver(it: TerrarumAudioMixerTrack?) {
|
||||
private fun loadEffector(it: TerrarumAudioMixerTrack?) {
|
||||
FixtureJukebox.loadConvolver(filterIndex, it, "basegame", "audio/convolution/Soundwoofer - small_speaker_Gallien Krueger GK 250ML B5 Left A 230 200 320.bin", 3.5f / 16f, 0.8f)
|
||||
FixtureJukebox.setJitter(it, 1, 0.01f)
|
||||
}
|
||||
|
||||
private fun unloadConvolver(music: MusicContainer?) {
|
||||
private fun unloadEffector(music: MusicContainer?) {
|
||||
FixtureJukebox.unloadConvolver(this, filterIndex, music)
|
||||
FixtureJukebox.unsetJitter(this, music)
|
||||
}
|
||||
|
||||
override fun reload() {
|
||||
|
||||
Reference in New Issue
Block a user