Godot Version
v4.7.stable.official [5b4e0cb0f] - Linux x86_64
Question
We are experiencing a half second pause before OGG sound effects are played?
Happens both on Web HTML5 version and Linux x86_64 desktop version.
Full audio core GDScript is below.
Are we doing something wrong?
Would be great to fix the above before official release in 2027.
Let us know, thank you!
SS
“AudioCore.gd”
extends Node2D
var MusicVolume
var EffectsVolume
var MusicPlayer
var MusicTotal = 17
var MusicCurrentlyPlaying = -1
var EffectPlayer =
var EffectsTotal = 12
var MusicSelection = 0
var MusicJukebox = false
#----------------------------------------------------------------------------------------
func ConvertLinearToDB(volume):
var returnValue = log(volume) * 8.6858896380650365530225783783321
return(returnValue)
#----------------------------------------------------------------------------------------
func _ready():
MusicVolume = 1.0
EffectsVolume = 0.5
MusicPlayer = AudioStreamPlayer.new()
add_child(MusicPlayer)
var _warnErase = EffectPlayer.resize(6)
for plr in range(6):
EffectPlayer[plr] = []
EffectPlayer[plr].resize(EffectsTotal)
for index in range(0, EffectsTotal):
EffectPlayer[plr][index] = []
for plr in range(6):
for index in range(0, EffectsTotal):
EffectPlayer[plr][index] = AudioStreamPlayer.new()
if index == 0: EffectPlayer[plr][index].stream = load("res://media/sound/MenuMove.ogg")
elif index == 1: EffectPlayer[plr][index].stream = load("res://media/sound/MenuClick.ogg")
elif index == 2: EffectPlayer[plr][index].stream = load("res://media/sound/PieceRotate.ogg")
elif index == 3: EffectPlayer[plr][index].stream = load("res://media/sound/PieceDrop.ogg")
elif index == 4: EffectPlayer[plr][index].stream = load("res://media/sound/PieceCollision.ogg")
elif index == 5: EffectPlayer[plr][index].stream = load("res://media/sound/LineCleared.ogg")
elif index == 6: EffectPlayer[plr][index].stream = load("res://media/sound/4LinesCleared.ogg")
elif index == 7: EffectPlayer[plr][index].stream = load("res://media/sound/IncomingLine.ogg")
elif index == 8: EffectPlayer[plr][index].stream = load("res://media/sound/GameOver.ogg")
elif index == 9: EffectPlayer[plr][index].stream = load("res://media/sound/LogoSay.ogg")
elif index == 10: EffectPlayer[plr][index].stream = load("res://media/sound/CrisisModeSay.ogg")
elif index == 11: EffectPlayer[plr][index].stream = load("res://media/sound/PieceMove.ogg")
add_child(EffectPlayer[plr][index])
EffectPlayer[plr][index].set_volume_db(ConvertLinearToDB(EffectsVolume))
EffectPlayer[plr][index].stream.set_loop(false)
pass
pass
#----------------------------------------------------------------------------------------
func SetMusicAndEffectsVolume(musicVolume, effectsVolume):
MusicPlayer.set_volume_db(ConvertLinearToDB(musicVolume))
for plr in range(3):
for index in range(0, EffectsTotal):
EffectPlayer[plr][index].set_volume_db(ConvertLinearToDB(effectsVolume))
pass
pass
#----------------------------------------------------------------------------------------
func PlayMusic(index, loop):
if index < 0 || index > (MusicTotal-1): return
if MusicCurrentlyPlaying > -1:
MusicPlayer.stop()
MusicCurrentlyPlaying = index
if index == 0: MusicPlayer.stream = load("res://media/music/BGM_Title.ogg")
elif index == 1: MusicPlayer.stream = load("res://media/music/BGM_Playing01.ogg")
elif index == 2: MusicPlayer.stream = load("res://media/music/BGM_Playing02.ogg")
elif index == 3: MusicPlayer.stream = load("res://media/music/BGM_Playing03.ogg")
elif index == 4: MusicPlayer.stream = load("res://media/music/BGM_Playing04.ogg")
elif index == 5: MusicPlayer.stream = load("res://media/music/BGM_Playing05.ogg")
elif index == 6: MusicPlayer.stream = load("res://media/music/BGM_Playing06.ogg")
elif index == 7: MusicPlayer.stream = load("res://media/music/BGM_Playing07.ogg")
elif index == 8: MusicPlayer.stream = load("res://media/music/BGM_Playing08.ogg")
elif index == 9: MusicPlayer.stream = load("res://media/music/BGM_Playing09.ogg")
elif index == 10: MusicPlayer.stream = load("res://media/music/BGM_Playing10.ogg")
elif index == 11: MusicPlayer.stream = load("res://media/music/BGM_Playing11.ogg")
elif index == 12: MusicPlayer.stream = load("res://media/music/BGM_Playing12.ogg")
elif index == 13: MusicPlayer.stream = load("res://media/music/BGM_Playing13.ogg")
elif index == 14: MusicPlayer.stream = load("res://media/music/BGM_Playing14.ogg")
elif index == 15: MusicPlayer.stream = load("res://media/music/BGM_Playing15.ogg")
elif index == 16: MusicPlayer.stream = load("res://media/music/BGM_Playing16.ogg")
MusicPlayer.set_volume_db(ConvertLinearToDB(MusicVolume))
MusicPlayer.stream.set_loop(loop)
MusicPlayer.play(0.0)
pass
#----------------------------------------------------------------------------------------
func PlayEffect(plr, index):
if index < 0 || index > (EffectsTotal-1): return
EffectPlayer[plr][index].set_volume_db(ConvertLinearToDB(EffectsVolume))
EffectPlayer[plr][index].stream.set_loop(false)
EffectPlayer[plr][index].play(0.0)
pass
#----------------------------------------------------------------------------------------
func _process(_delta):
pass
Fully playable “Alpha # 1” coming soon!
