Just thought I would add to the sound info above... I am using a LOT of sounds in my Scuds Galore! mission, and here is an extract of some of the stuff from my description.ext.
You will see that:
1. Some files are in the sound sub-directory and although (as you have found) you do not have to use a path for a sound file when it is in there, if you do anyway, as I have done, it will still work OK.
2. Most of my sounds are actually in sub-sub-directories, in fact some are not really my sounds at all for example I am using Vektorboson's execellent satellite script package. as modified by Blanco (V2.21).
3. Some sounds are wss and others ogg format. I have experimented with both, and they both have their place.
class CfgSounds
{
   sounds[] =
{shhh,ggv01,ggv02,ggv03,36v01,36v02,36v03,beepstat,burp,mortar1,ruch,cannon1,click,
render,satmove,no,satdeactiv,satactiv,bip,coords,inpos,activate,rendering,stopt,tr_human,tr_f_tank,
tr_f_car,tr_f_ship,tr_f_plane,tr_f_heli,tr_f_car,tr_h_tank,tr_h_ship,tr_h_heli,tr_h_plane,tr_h_car,satab,
tr_e_car,tr_e_plane,tr_e_heli,tr_e_tank,tr_e_ship,keybutton,codefound,wrongcode,close_end,gatemoan,
open_end,s1click,s2coords,s3plnch,s4lnch,s5onwy,s6hits,s7dir,s8abort,s9tooclose,s10toofar};
class say_shhh
{
   name = "shhh";
   sound[] = {"\sound\shhh.ogg", db+0,1};
   titles[] = { };
};
.
. <- dots are not there, just showing stuff skipped from this example extract!
.
   class satactiv
   {
      name = "satactiv";
      sound[] = {"\satellite\SATsound\satactiv.wss", db-0, 1.0};
      titles[] = { };
   };
.
. <- dots are not there, just showing stuff skipped from this example extract!
.
class s9tooclose
{
   name = "s9tooclose";
   sound[] = {"\userscud\SCUDsound\s9tooclose.ogg",db+20,1.0};
   titles[] = {};
};
There are some other things that I have found, mostly by "trial and error". I had a problem where I had wave file that played perfectly, and it played perfectly as an ogg file - after converting it in Audacity (an excellenct freeware audio package); the problem was, I could not get OFP to play it, although others of the same type, converted at the same time, played perfectly (and there were no error messages - just no sound!).
I eventually realized what the problem was, OFP does not seem to like ogg sound files with too short a filename (!)
I had been trying to abbreviate the filenames, as I had so many in the sounds[] = definition, that I was concerned that the string length might cause problems, but my good intentions had actually introduced another problem!
Although I have not tested this thoroughly, and it is a little while since I was working on the sound files, I think that the problem occurred when I used a filename less that 4 characters (dot ogg), although this did not seem to be a problem with a wss file ... (like the ones that you can see above like "no" and "bib" which are both wss files!).
I also play the sounds in a variety of ways, including:
Example1
------------
_scudLauncher say "s7dir"
...object saying something
Example2
------------
;play radio stuff
["beepstat", 4] exec "sound_loop.sqs"
...calling a sound loop script that I wrote. to repeat the sound name passed in the number of times passed in, where there sound is actually played with:
playSound _sound
... as well as normal people saying stuff
I hope that this might help somone...