I have used FMOD on and off for various small hobby projects for years, and found it straight forwards and easy to use. It is very quick and easy to initialise and integrate into your game environment. It has a few caveats. Make sure that your listener up and forwards vectors are unit lengths and perpendicular to each other, or strange results will follow. Also the 3D sound example uses DISTANCEFACTOR in both the set3DSettings function and as a multiplier to the various set3DAttributes functions. You only need to set it in set3DSettings, after that you do not have to worry about trying to scale the positional data into the listener or channels.
This weekend I took the plunge and used the FMOD Designer and used the Event System API. The event system class replaces the normal FMOD System class(which can be retrieved). Therefore you still have access to the old style of doing things.
The power of the FMOD Designer is quite immense, I was quickly and easily making sound effects that would of taken about 30 mins of writing and testing in my game in just a few minutes. Such as our dyno fan sound effect. Which is basically a looping fan sound that I pitch shift and change the volume of. In the designer both of these effects can be linked to a float parameter.
You can then load this sound effect (known as an event) start it, and change the parameter value at run time to give the desired result. Nice and easy.
My only complaint about the Designer, is not being able to configure a build output directory.
I am sure it can do a lot more than I have figured out yet, but so far I am very impressed.