From 9c3b619be52df46aaf1b70f36d1ccea57d2d36f4 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 15 Apr 2025 14:57:53 -0400 Subject: [PATCH] audio work --- assets/Audio/movement/action/Whoosh A.wav | Bin 0 -> 49524 bytes assets/Audio/movement/action/Whoosh B.wav | Bin 0 -> 39192 bytes assets/Data/entity/creatures/human.json | 12 ++++++++++++ docs/src/progress/renderertodo.md | 2 ++ .../audio/VirtualAudioSourceManager.java | 5 ++++- 5 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 assets/Audio/movement/action/Whoosh A.wav create mode 100644 assets/Audio/movement/action/Whoosh B.wav diff --git a/assets/Audio/movement/action/Whoosh A.wav b/assets/Audio/movement/action/Whoosh A.wav new file mode 100644 index 0000000000000000000000000000000000000000..2fc28294f97bb8c9eeacb4de3aeedbd471401651 GIT binary patch literal 49524 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�}qd!dDm>ATB)N)UrLhOcpA8n z_JtUdaS@Y8n{{ka8l%_7<4xKL{?b&ErBA-{+6kpZ+{B(Nn^!_Op+kJaw_sNMtD}d} z<4fvzEobUFxsAe4e^0JSzVhG{M%GKIM_tjnu%tAkqNd7uR6n*>JL3mAu7tTFxDOfowu6d=f%27DDkQ+r)j?|@sOs?@LN_nD0$#twzT$RR= zd`+keA<2Q_JsF-?0 z%Xw)nvBiJ$PnN4zf?45bDSyelsM4t!fpQa?O9w zo(h)-t4c~!Q#5$=pjD~Dt&ScR?~HX`OO{_;=L)Al%ayd_d19?PS4Y9gf5Mffmk5=3 zF7S!GDT}L`iyad&T&Pd4g_8I}ZzhIhEXl1@OI1qP#InS;0^{+0u{vo>7=C%hpFmOq zsh596Gx4Y(rObmDEMB_{X?s{asQ<03G*mK1@-8LG<;n60eh-2;`4h<#HAxr+r=(K# zLP^yso)vv{&0}d8buCB!3-#pkL<|axU>|i;-)rp@P3wI5+of*H zOLOYh9yxaSxDlhq-rc3{pn*M`cc^=L*NoK8-3IqW6P%@V?snBp19^h8!98#9eqE2= z{jR>fSMUE*Y_;{a2}9xMJnTQ@2c+TNq?Lo@g2~vzMc}mSQ{=U*LIWHTGO7FZGd7{L zAuG`;?ajwNpTBeUag2lL-h_+L@+QtgpUbj5xm&3E#9QRFpcB0C_et?cKLM!+*WPEN z*oxc`yMb>CfY9&mx5`1}E?pni${QPEWU8{NU&zXZA`8@!LN64%UJbogjce`d7|4&0 zfI;-iz5^56ZdGgGCPEI1kZ&OtqvdC_F|6BW`mhDAJ=ZqpSGoc9 z`Ak8Yt!uUgp`p(%XU2^z&uv@L#Wh@&0h!d~6NFLl1zFg1XqG&WJ^CxjlcE}XWLG8S z*hveL0qLMrL*o!3Td;dD#wgl|9o3K&Aidh+Oszg(%C3KdqNPAXjHAtpl@J$4pq9mQ z1e_II#-<7+v8a7zrRPJIGPr+CX-x8MmN>M`NfoER6Cm-kMi1YI$V`h0NPN}o-on)y znFf%=g6{(9h4nlGwh8%}l&~yG@x((m+yqt)Lrmy+`&>M1DR*e7o62k$$zKBPC66hw zOS*MRk|(TEY2H`hCxajlWw((Zc=c1t-Y@n-bj5DRdHY@ZK(aV}DoC|2-`L`>Jro_T zcoDj-DDqf8BrpAVvh#R_HuyfVF- z$(q4(`H!_9mh_2rz0VrIhksXOp4uM16T{?Wmy7CdryG!7%|3u5Xnk!@M?!AKptJTZ{t@!rZ>%^EQeB@c;x$l= aPjQD8tbJ^EOYqy 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 T#j!=es)`E(tT&C2+1&pFav_pg literal 0 HcmV?d00001 diff --git a/assets/Data/entity/creatures/human.json b/assets/Data/entity/creatures/human.json index 0787eeb7..584d1b6c 100644 --- a/assets/Data/entity/creatures/human.json +++ b/assets/Data/entity/creatures/human.json @@ -416,6 +416,9 @@ "nameFirstPerson" : "AttackUnarmed1", "nameThirdPerson" : "AttackUnarmed1", "priorityCategory" : "MOVEMENT_MODIFIER" + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh A.wav" } }, "activeBones" : [ @@ -436,6 +439,9 @@ "nameFirstPerson" : "AttackUnarmed2", "nameThirdPerson" : "AttackUnarmed2", "priorityCategory" : "MOVEMENT_MODIFIER" + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh B.wav" } }, "activeBones" : [ @@ -464,6 +470,9 @@ "nameThirdPerson" : "SwordRHSlash1", "priorityCategory" : "MOVEMENT_MODIFIER", "boneGroups" : ["armRight", "handRight"] + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh A.wav" } } }, @@ -487,6 +496,9 @@ "nameThirdPerson" : "SwordRHSlash2", "priorityCategory" : "MOVEMENT_MODIFIER", "boneGroups" : ["armRight", "handRight"] + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh B.wav" } } }, diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index b05d64aa..e268c23e 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1484,6 +1484,8 @@ UI test data fixes (04/15/2025) Cull unused assets Update default texture +Sound effect on swinging fists/weapons +Queue loading audio file on creating virtual spatial source diff --git a/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java b/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java index b78fc0f9..735fbbc3 100644 --- a/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java +++ b/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java @@ -64,6 +64,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createVirtualAudioSource(String filePath, VirtualAudioSourceType type, boolean loops, Vector3d position){ VirtualAudioSource source = new VirtualAudioSource(filePath, type, loops, position); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -77,6 +78,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createVirtualAudioSource(String filePath, VirtualAudioSourceType type, boolean loops){ VirtualAudioSource source = new VirtualAudioSource(filePath, type, loops); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -88,6 +90,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createUI(String filePath){ VirtualAudioSource source = new VirtualAudioSource(filePath, VirtualAudioSourceType.UI, false); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -154,7 +157,6 @@ public class VirtualAudioSourceManager { //add virtual source if necessary if(category.activeVirtualSources.size() < category.capacity && !category.activeVirtualSources.contains(source)){ //activate source here - category.activeVirtualSources.add(source); AudioSource realSource = null; LoggerInterface.loggerAudio.DEBUG("[VirtualAudioSourceManager] MAP Audio to real source! "); if(source.position == null){ @@ -167,6 +169,7 @@ public class VirtualAudioSourceManager { realSource.setGain(source.gain); realSource.setOffset(source.totalTimePlayed); virtualActiveMap.put(source, realSource); + category.activeVirtualSources.add(source); } } }