Jump to content

Recommended Posts

Hello guys,

 

inspired by the great MarkXIII and with a new audio engine around the corner here we go with

 

~ ArmA 3 Sound Modding 101 ~

What?
A place to ask questions (no matter how stupid you think they are) related to the creation and implementation of audio into Arma 3. Be precise, if you have RPT problems, post the RPTs into code boxes so they don't take away half of the site space.
Creation -> audio engeneering, sound waves. Implementation -> configs & tools, programming.
Valid questions:

  • I have a sound X, how do I put it into the game?
  • how does the whole wav <-> wss/ogg system work?
  • I want the pitch of my engine sound to change, how do I do that?
  • my audio sounds like Y but I want it to sound like X, how do I do that?

Not valid questions:

  • when will bohemia release X?
  • is mod X compatible with mod Y?
  • sound-system related questions (my headphones don't work in 5.1 mode)

Why?
There is no central ArmA 3 sound modding thread. We are all spread around Skype, Discord and PMs, this should serve a central meeting point.  Game audio is very closely connected to technical stuff so this should be good for people who can create audio but have problems with implementing it into the game. Good for newcomers:

  • open PBOs and edit current sounds
  • add their own sounds to the game
  • create certain sounds for the game
  • create their own workflow

Who?
Anyone who wants to help out should help. We already have experienced Arma-Audio advanced users here such as AudiocustomsTheMaster303MyselfLaxeman and LordJarhead (probably more that I forget, please PM me their names) all being active community members and having their own areas of expertiese who can surely help.
 
 
Content
I will start producing educational content.
Also YOU guys are the content. Ask away.

 

Text

Bohemia Wiki - Sound Page, learn about audio configuration

Custom script to make the AI fire in full auto, full weapon speed at player position

View sound controllers (For the first time in ArmA!)

 
Videos
What tools do I need to access BI content in order to learn from it?
P: drive & how do I package my audio into a mod that works?
Advanced tool usage to speed up workflow
 

 

Current to-do list for me:

  • What tools do I need to access BI content in order to learn from it?
  • P: drive & how do I package my audio into a mod that works?
  • Basic sound replacement (will probably wait with this until the new engine is out).
  • Advanced tool usage to speed up workflow.
  • Understanding config files & tree structure
  • More detailed explanation of parameters in configuration.

 

Additional

 

Quote

Info by our dear friend @laxemann!

 

Our prayers have been heard. @reyhard informed me that we got a new feature in Dev Branch: Custom Sound Controllers!

 

Not much time at hand right now, but I'll try to give a quick overview. Just tested around a bit, things might change or simply not be correct.

 

Overview:

Each vehicle gets 5 Custom Sound Controllers that can be dynamically changed via scripts.

The controllers are called CustomSoundController1, CustomSoundController2... etc.

Uppercase and lowercase is important: It's gotta be CustomSoundContoller, each of the three words starting with a capital letter.

The controllers are given into calculation each frame and are !!LOCAL!!

 

 

 

Three new script commands:

getCustomSoundController - returns currently set value to the controller

  • getCustomSoundController [Vehicle, NameOfSoundControllerAsString]
  • getCustomSoundController [(vehicle player), "CustomSoundController1"]

 
setCustomSoundController - sets value to controller

  • setCustomSoundController [Vehicle, NameOfSoundControllerAsString, Value]
  • setCustomSoundController [(vehicle player), "CustomSoundController1", 0.5]

 
getCustomSoundControllerCount - returns number of available custom controllers (Always 5 at the moment)

 

 

 

Will definitely use this to get full-feature Stuka siren sounds in Iron Front. :D

Other possible applications I can think of are damaged engine sounds, using the controllers to trigger soundSets etc.

 

Linking people that might be interested:

@tpM

@bigpickle

@LordJarhead

@audiocustoms

 

Some info about the current state of the "interior" controller used for weapon tails.

 

 

Quote
"interior" is tricky and useful only for player. Value is deduced from surface texture under player position interior texture should start with "int_"
 
  • Like 15
  • Thanks 2

Share this post


Link to post
Share on other sites

More than happy to see this thread pop up....

I'm currently trying to put together a Post-Apocalyptic soundscape for Arma 3 and it has been quite a struggle to garner some up to date information on sound modding/implementation.  

 

Many thanks for putting this out there.

Share this post


Link to post
Share on other sites

Awesome. Hopefully this will garner in a dynamic range of audio modders... ;)

Share this post


Link to post
Share on other sites

[...]I'm currently trying to put together a Post-Apocalyptic soundscape for Arma 3 and it has been quite a struggle to garner some up to date information on sound modding/implementation.  [...]

Sounds complicated. Do you have a specific problem?

Share this post


Link to post
Share on other sites

Sounds complicated. Do you have a specific problem?

I almost have a working version which will add new day,night,wind and rain sounds, my problems are trying to write the configs without getting errors when launching Arma.

 

I am close.....but no cigar yet. 

 

Enthusiasm high, knowledge limited 

Share this post


Link to post
Share on other sites

I almost have a working version which will add new day,night,wind and rain sounds, my problems are trying to write the configs without getting errors when launching Arma.

 

I am close.....but no cigar yet. 

 

Enthusiasm high, knowledge limited

Do you have a basic understanding of the classes system in Arma?

Post your RPT into a code box here mate.

Share this post


Link to post
Share on other sites

 

Do you have a basic understanding of the classes system in Arma?

Post your RPT into a code box here mate.

 

I have already had some help on this via PM's from some very patient forum members.....but it's clear I still have a lot to learn.......

 

  Current to-do list for me:

  • Understanding config files & tree structure

 

I am happy to wait for this....... ;)

Share this post


Link to post
Share on other sites

I have already had some help on this via PM's from some very patient forum members.....but it's clear I still have a lot to learn.......

 

 

I am happy to wait for this....... ;)

I feel like this is the most complicated topic to try and explain in an easy to understand way. Gonna take a while. Still, why not post your RPT?

Share this post


Link to post
Share on other sites

Holy strewth finally a place I can get info on how to sound mod! Been wanting to get into aircraft sound modding for ages now but have no idea what I'm doing. 

 

Pretty much what I've been trying to do make the current vanilla jet sounds actually sound like the fighter jets you hear in Youtube videos. I've currently got heaps of Mp3s of these sounds... but that's as far as I get.  

 

Expect lots and lots of questions from me soonish :P 

Share this post


Link to post
Share on other sites

I have already had some help on this via PM's from some very patient forum members.....but it's clear I still have a lot to learn.......

 

 

I am happy to wait for this....... ;)

Might wanna send over the config plus samples and I tweak the config so it's working and later show you what you did wrong? Just an offer tho ;)

LJ

  • Like 2

Share this post


Link to post
Share on other sites

Hey how about I proivde a set of basic empty configs for every sound in the game so people can look at them how the Classes, Sub- and superclasses to each effects needs to look like?

 

LJ

 

EDIT;

 

This for example is a clear list of configs used by JSRS DragonFyre.

 

It contains all configs and informations about paths and how I split vehicle sounds. Maybe its interesting for some. Also there are all kinds of environmental effects. Like nature sounds, soniccracks, bullethits, explosions.

 

The basic structure is simple:

 

PROJECTNAME_E_     -> Environmental sounds

PROJECTNAME_V_A_ -> Vehicle -> Air

PROJECTNAME_V_B_ -> Vehicle -> Boat

PROJECTNAME_V_T_ -> Vehicle -> Tracked

PROJECTNAME_V_W_ -> Vehicle -> Wheeled

PROJECTNAME_W_H_ -> Weapon -> Heavy (vehicle weapons)

PROJECTNAME_W_S_ -> Weapon -> Small (Handheld)

 

All the configs contain the informations and values the way I used them. So they are not standard anymore. Maybe we can switch them back over time to a solid, standard and simple to use modular structure for newcomers.

 

LJ

  • Like 3

Share this post


Link to post
Share on other sites

Hey how about I proivde a set of basic empty configs for every sound in the game so people can look at them how the Classes, Sub- and superclasses to each effects needs to look like?

 

LJ

 

EDIT;

 

This for example is a clear list of configs used by JSRS DragonFyre.

 

It contains all configs and informations about paths and how I split vehicle sounds. Maybe its interesting for some. Also there are all kinds of environmental effects. Like nature sounds, soniccracks, bullethits, explosions.

 

The basic structure is simple:

 

PROJECTNAME_E_     -> Environmental sounds

PROJECTNAME_V_A_ -> Vehicle -> Air

PROJECTNAME_V_B_ -> Vehicle -> Boat

PROJECTNAME_V_T_ -> Vehicle -> Tracked

PROJECTNAME_V_W_ -> Vehicle -> Wheeled

PROJECTNAME_W_H_ -> Weapon -> Heavy (vehicle weapons)

PROJECTNAME_W_S_ -> Weapon -> Small (Handheld)

 

All the configs contain the informations and values the way I used them. So there are not standard anymore. Maybe we can switch them back over time to a solid, standard and simple to use modular structure for newcomers.

 

LJ

This is awesome, thank you! This really eases access to editing the sounds.

This kind of info is really what I hoped to find in this thread.

And big thanks for megagoth too for starting it!

Share this post


Link to post
Share on other sites

Hey how about I proivde a set of basic empty configs for every sound in the game so people can look at them how the Classes, Sub- and superclasses to each effects needs to look like?

 

LJ

 

EDIT;

 

This for example is a clear list of configs used by JSRS DragonFyre.

 

It contains all configs and informations about paths and how I split vehicle sounds. Maybe its interesting for some. Also there are all kinds of environmental effects. Like nature sounds, soniccracks, bullethits, explosions.

 

The basic structure is simple:

 

PROJECTNAME_E_     -> Environmental sounds

PROJECTNAME_V_A_ -> Vehicle -> Air

PROJECTNAME_V_B_ -> Vehicle -> Boat

PROJECTNAME_V_T_ -> Vehicle -> Tracked

PROJECTNAME_V_W_ -> Vehicle -> Wheeled

PROJECTNAME_W_H_ -> Weapon -> Heavy (vehicle weapons)

PROJECTNAME_W_S_ -> Weapon -> Small (Handheld)

 

All the configs contain the informations and values the way I used them. So they are not standard anymore. Maybe we can switch them back over time to a solid, standard and simple to use modular structure for newcomers.

 

LJ

 

Quick question regarding the Project Folder. 

 

- With the "YOU PROJECT FOLDER" you have going in the Config files, is this the @Modname?

 

in other words

 

- Where should the Project Folder be placed and how should the folder structure be laid out. (To me it seems like I should lay it out like this > @mod/sounds/fighterplane3/.... however I'm not sure if that is even right).  

 

Cheers

Share this post


Link to post
Share on other sites

Well, the path starts with the folder that is going to be the PBO at the end. Like you make a P07 pistol sound, you have a my_p07 folder for example. In this folder there is the .cpp config plus the sound files (maybe even in subfolders like my_p07/sounds/p07_shot1.wss). So the YOU PROJECT FOLDER would start with "my_p07\sounds\p07_shot1.wss" 1,1,2500" for example :)

 

So if you want your mod running in the end, you have to make a new folder called like your mods like, for exampel @myMod in your ArmA directory, in there you make a folder called AddOns, and in this folder get all the pbo files of your mod.

 

So, you pack your "my_p07" folder, that contains the config plus the samples, to an pbo file and put it into the @myMod/Addons folder! Now, when you open the ArmA3 Launcher, you go under "mods" and choose "Local Folder" and select your @MyMod folder and activate your mod :)

 

LJ

  • Like 1

Share this post


Link to post
Share on other sites

Well, the path starts with the folder that is going to be the PBO at the end. Like you make a P07 pistol sound, you have a my_p07 folder for example. In this folder there is the .cpp config plus the sound files (maybe even in subfolders like my_p07/sounds/p07_shot1.wss). So the YOU PROJECT FOLDER would start with "my_p07\sounds\p07_shot1.wss" 1,1,2500" for example :)

 

So if you want your mod running in the end, you have to make a new folder called like your mods like, for exampel @myMod in your ArmA directory, in there you make a folder called AddOns, and in this folder get all the pbo files of your mod.

 

So, you pack your "my_p07" folder, that contains the config plus the samples, to an pbo file and put it into the @myMod/Addons folder! Now, when you open the ArmA3 Launcher, you go under "mods" and choose "Local Folder" and select your @MyMod folder and activate your mod :)

 

LJ

 

Mate you're a legend! Cheers :D

 

Also one more quick question...

 

- Why do some of the sounds only have, for example, {0.3500000,1} while some have {0.75,1,300}. 

 

- Also what do these numbers mean

 

Thanks :)

Share this post


Link to post
Share on other sites

Mate you're a legend! Cheers :D

 

Also one more quick question...

 

- Why do some of the sounds only have, for example, {0.3500000,1} while some have {0.75,1,300}. 

 

- Also what do these numbers mean

 

Thanks :)

Well... These numbers are always sorted by Volume, pitch (how fast a sound is played, like speed up the frequency) and distance. So let's say your above mentioned p07 has a number set of 1,1,2500. It would mean that the sound will be played with 100% volume, at normal speed, and is audible over a distance of 2500 meters.

Then there are number sets like you mentioned 0.350000, 1. These, when only two numbers are set, have no distance So they are for interiors of vehicle. The sound in this case is played at 35% volume (don't be afraid of the 00000 after the 0.35, they mean nothing.) at normal speed/pitch.

Basically all the sets with just 2 numbers and no distance value are for When your camera is switched to internal view of vehicles. And only in vehicle sound config they should appear. If you see a 2 numbers set somewhere else, like in weapon configs, you know you are missing the distance this sound is audible in game and won't hear it.

Oh and in the environment config you have these values also with the basic ambient sounds (Meadow day and night, forest day and night, houses, ocean, trees and so on) because they don't need a distance. Of you are in an forest area the sound will switch. Besides ocean. There you can add a distance because you might still be in a village (so houses_day is played) that's close to the ocean so you hear that from the distance kinda.

LJ

  • Like 3

Share this post


Link to post
Share on other sites

I'd like to know more regarding the ambient sounds on a custom island. I have np's getting the sounds working i.e bird sounds what I'd like to know is what the numbers beside the samples do. I add random samples but the game only seems to use the first in the list. If you can explain how to tweak these settings it would be of benefit to island makers

 

class Forest
{
name = "forest";
sound[] = {"australia\data\sounds\kookabura",0.18511887,1};
volume = "forest*trees*(1-night)";
randSamp0[] = {"australia\data\sounds\magpie",0.1,12,100,0.1,10,25,40};
randSamp1[] = {"australia\data\sounds\magpie_lark",0.1,12,100,0.1,10,35,60};
randSamp2[] = {"australia\data\sounds\pied_currawong",0.1,12,100,0.1,10,25,40};
randSamp3[] = {"A3\sounds_f\ambient\single_sfx\meadow_single_04",0.1,12,100,0.1,10,25,40};
randSamp4[] = {"australia\data\sounds\kookabura",0.056234132,1,100,0.12,10,25,40};
randSamp5[] = {"australia\data\sounds\magpie_lark",0.056234132,1,80,0.1,10,25,40};
randSamp6[] = {"A3\sounds_f\ambient\single_sfx\fly_3",0.031622775,1,20,0.1,10,25,50};
randSamp7[] = {"A3\sounds_f\ambient\single_sfx\insect_3",0.056234132,1,40,0.1,10,25,40};
randSamp8[] = {"A3\sounds_f\ambient\single_sfx\insect_1",0.056234132,1,50,0.1,10,25,40};
random[] = {"randSamp0","randSamp1","randSamp2","randSamp3","randSamp4","randSamp5","randSamp6","randSamp7","randSamp8"};

Share this post


Link to post
Share on other sites

I am not at home right now and can't look at Bohemia's configs but I'll try to help out.

 

randSamp0[] = {"australia\data\sounds\magpie",0.1,12,100,0.1,10,25,40};

 

I'll try to figure out all of them later, I am confused about the 12 (seems rather high for a pitch value) and the 0.1 after the 100. Did you take these values from original Bohemia configs?

I'll comment on the last three values: 10,25,40

 

If you only use that sound for an environmental sound it will be repeated. The numbers are seconds and it means when the game wants to repeat the sound it picks a value between 10 and 40 second. Which value is chosen is random but the closer the values come to 25 the higher is their chance of being picked, 25 has the highest chance of being picked. So the sound will be repeated most probably after 25 seconds, maximum after 40 seconds, minimum after 10 seconds. So it's about probabilities. Does that make sense?

 

This is nice because the sound will be repeated, but not after X seconds every time, which can become annoying.

 

I am not sure why in your case it only picks the first sound. This one?

sound[] = {"australia\data\sounds\kookabura",0.18511887,1};

 
AFAIK as long as you stick closely to what Bohemia is doing you should be fine.

Share this post


Link to post
Share on other sites

Well,

 

the first one:

name = "forest";
sound[] = {"australia\data\sounds\kookabura",0.18511887,1};
volume = "forest*trees*(1-night)";

is the ambient sound that will be played when ever you are surrounded by forest/trees and on daytime (1-night).

 

The others, randSamp (Random Samples SFX)

randSamp0[] = {"australia\data\sounds\magpie",0.1,12,100,0.1,10,25,40};

will be played around the player if he's in the mentioned forest/trees area. So, as Mega said, the last three values are for the timecycle this sound will be replayed. I' quit fighting with this myself for some time now as there is mostly no logical sense just on sight. There are values for volume, pitch, distance and others. Those others are, or at least the one left would be the 0.1 after the 100. Which is in my opinion maybe the duration for how long this sample will be played?!

 

I have

randSamp0[] = {"DragonFyre_P_Environmensounds\Environment\SFX-rain\sfx (1)",0.5,1,100,0.15,15,30,60};

on mine. I hear the samples and they will be played in randomized cycles around 30 seconds withing 100 meters around the player/camera. What I think is, that the 0.15 after the 100 is a duration on how long this SFX will be played maybe? Probably doesn't make sense, but in my situation here the samples always came off short. So that might be the case.

 

So just plain simple how I understand this: Volume, Pitch, Distance, Duration, Minimum-, Middle-, Maximum Time before it gets repeated.

 

Why it only plays the first sample is not understandable actually. As everything seems to be ok there...

 

LJ

 

BTW: the 12 in the original config as pitch only appears in forests, on all other locations is a 1  as it makes sense for pitch.

  • Like 2

Share this post


Link to post
Share on other sites

Hey LJ, Mega,

 

I've been working on my own mod which is probably in it's alpha stage.  It's basically a replacement for the character movement, gear, clothing etc.  But with a larger pool of sound effects.  

 

Anyway my question is can either of you think of a reason why the footsteps/gear can't be stereo wav/wss audio files? My thinking behind this is.  I would like to add reflections/reverbs to artificially simulate the environment (dirt,stony, concrete...) based on intensity.  E.g. sprinting is the loudest therefore most heavily affected (or with more reverb/reflection) Similar to Star Wars Battlefront.  

 

My second question is it possible to produce a character specific audio identity?  Or a set of movement sound effects for a specific soldier class?  Ghillie suit (net cloth), Auto rifleman (link,belt), Rifleman (with/without gear)...civillian (no gear) at the moment all the civilians sound the same as my character. :(

 

Thanks

 

p.s. Your new DragonFyre movement sounds <3  LJ in your last video ;) 

  • Like 1

Share this post


Link to post
Share on other sites

Hello taumargin,

 

well why shouldn't this work? You can actually make stereo sounds work as movement/footstep sounds. They are just located to far away from the camera when you are in first person. The game plays the sounds at the feet of the model. That's why it mostly wont work to hear them really in stereo, played on both channels.

 

You could try to tweak the stereo emitters and panner like maybe:

class MultiChannelEmitter
	{
		multiChannelEmitterRadius = 10;
		multiChannelEmitterRange = 50;
	};
	class MultiChannelPanner
	{
		multiChannelPannerInnerRange = 10;
		multiChannelPannerRange = 50;
	};

problem is, this will have an effect on all stereo sounds in the game.

 

And yes, you can (or at least should be able to) give certain sound sets to certain unit classes. The problem is, that when ever this unit is spawned and drops the gear or suits (Ghillie for example) it will still have this soundset applied. Plus, with the Arsenal system now, what if a medi unit class wears a ghillie? It wont also have this sound but the medic unit ones.

 

Kinda tricky but surely possible. I did this back in ArmA2 and separated normal units, like AT soldier, Ghillie and SF soldiers.

 

LJ

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for Replying

 

So what your saying is in 3rd person they will appear to sound mono?  Which I guess wouldn't be to bad :/   Is it possible to have two separate volume/amplitude levels for 1st and 3rd person views or is this calculated based on camera distance as you mentioned?  At the moment my 3rd person sounds too loud.  I'll leave the Stereo Emitter alone (BI Wizardry :D) if it's going to screw everything else up.  I see your point regarding changing unit clothing types, didn't consider this but it's a pity it would have made a nice addition to the new sound engine ehem  :P .

 

Last question I promise ;) why sometimes on the older maps via CUP, All in Arma etc....are there footsteps sound effects occasionally missing for surfaces I thought I had equipped?  If this is specific to CUP,AIA I apologize.  But I get the feeling I'm missing a surface type.  What are the Arma 2 surface types names I am missing.   

 

Thanks for your help and time

Share this post


Link to post
Share on other sites

Thanks for Replying

 

So what your saying is in 3rd person they will appear to sound mono?  Which I guess wouldn't be to bad :/   Is it possible to have two separate volume/amplitude levels for 1st and 3rd person views or is this calculated based on camera distance as you mentioned?  At the moment my 3rd person sounds too loud.  I'll leave the Stereo Emitter alone (BI Wizardry :D) if it's going to screw everything else up.  I see your point regarding changing unit clothing types, didn't consider this but it's a pity it would have made a nice addition to the new sound engine ehem  :P .

 

Last question I promise ;) why sometimes on the older maps via CUP, All in Arma etc....are there footsteps sound effects occasionally missing for surfaces I thought I had equipped?  If this is specific to CUP,AIA I apologize.  But I get the feeling I'm missing a surface type.  What are the Arma 2 surface types names I am missing.   

 

Thanks for your help and time

Hey,

Yeah as said there is no controller for intereio and external view on units. There is a difference, even if the units are superclassed as vehicles hehe. So it's one sound for both view. If you play in stereo the sound is mostly the same volume intern as extern. While on 5.1 the internal sound is kinda played on the surround/back speakers for like 70 percent. While in extern it's located at the unit. So you directly look at the sound, it comes from the front speakers and therefore feels at least louder.

Trust me... Wasn't able to find a decent way to manage this myself

Regarding the maps I have the same problem. There are some classes missing or at least not defined by the vanilla arma3 config. So we need the old class names from arma2 for that. I will drop a list of classes later so you can compare what's missing. Tho I cannot promise it will help. As there are tons of maps out there that seems to not have sounds on surfaces like roads and such, and we surely are not the first to have this idea so there might be something else

LJ

 

--------------------------------

 

So I checked the ArmA2 files and I came up with some things:

class SoundEnvironExt
        {
            normalExt[] =
            normal[] =
            road[] =
            rock[] =
            water[] =
            gravel[] =
            gravel2[] =
            sand[] =
            drygrass[] =
            grass[] =
            forest[] =
            mud[] =
            wood[] =
            wood_int[] =
            parkety[] =
            hallway[] =
            carpet[] =
            concrete_int[] =
            concrete_ext[] =
            metal[] =
            steel[] =
            dirt[] =
            lepenka[] =
            wave_plate[] =
            salin[] =
            salout[] =
            
    };

The fat marked ones (did not work due to code, I mean Road, Gravel2 and Concrete_Ext) are the ones that are missing in ArmA3 but where in ArmA2. So maybe thats the problem. I did not check that until now, I do not have A2 ported maps I believe and will have to download one for a test.

 

BTW because you asked, this is how I did it with the Gear separation for units in ArmA2

 

CLICK

 

Looks like a mess the first time, I wasn't really clean with configs back then.

 

Thanks,

 

LJ

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×