It is certainly possible to have separate versions of your SFX that match the keys of the various background musics. That said, it's improbable your programmer would want to take the time or resources to support that.
As mentioned, you might get the programmers to be able to duck the music when you play sfx
But is it possible your music is just mixed too high?
Another thought-- re-orchestrate your music so it isn't quite so dense ("big" is the word you used). One of the challenges in music for media is making sure the music leaves enough room for the SFX. I recall a talk by the team who did Star Trek III-- at one point everybody is on the Genesis planet which is is full of volcanos and earthquakes.. The sound designer talked about he and the composer would frequently meet to discuss the overall audio for the film. For that particular scene, he knew he'd have lots of low frequency rumblings, boulders crashing, etc. So the composer didn't write much for the string basses or low brass for that scene, which left room for the low frequency sound effects...
My question, then, is...how do they do it? Is there any one language that is easier to work with to get these sort of audio analysis results? Or any one library, for that matter?
Generally, the first thing games do is change the music from "time domain" (i.e. a normal wave) to "frequency domain". Time domain is what a normal wave file is-- a mapping of changes in air pressure with time, which is what sound is. Frequency representation is an alternate way of describing sound in terms of its frequency components. Do some google searches on "frequency domain representation of sound", or "time domain vs frequency domain", etc.
There is a well-known technique for transforming a sound from time domain to frequency domain called the FFT, Fast Fourier Transform. once the sound is in frequency domain, you can do things like look for lots of bass, areas of high-frequency etc. You can find source code by searching online for FFT. Usually this is done in 'C'.
Another (time-domain) technique these games use is called auto-correlation. That's typically done for beat detection.
Getting much more into it would take a lot more than can be done in a forum posting, but searching those terms I highlighted should give you a bunch to chew on...
One other hugely important thing is what format they want you to deliver the sound in. Is it straight PCM, or does it need to be compressed? Getting smooth loops in a compressed sound is a whole 'nother ball of wax.
If straight PCM, does their system support loop points of the type Samith described? If not, they'll need to write some code to do it.
Yea, getting smooth loops, whether for music or ambiance is quite tricky, and one of the interesting challenges of game audio.
One other trick is to create two semi-long loops that aren't the same length and tell the programmer to start playing them at the same time. If (for example) one is 11 seconds and the other is 13 seconds, the resulting loop will be 143 seconds long (11x13)*. An advantage of that method is that the sounds cover up each other's loop points...
Regardless of what technique you use (IK-Sound or Samith), first check with the programmer to make sure that they are able to play back the sound as you intend
*If you remember your middle-school math, you want the lengths of your loops to be "relative primes" with each other.
When I read that I didn't actually have to do anything to ensure that my work was copyrighted, I was a little skeptical- is it really that simple?
It is and it isn't... It is that simple in that, by law, as soon as a creative work is put into tangible form, it is automatically copyrighted. I.e. the copyright of a creative work belongs to the creator as soon is it's no longer just in their head.
it's not simple if you ever need to prove that youcreated it and when you created it. Officially registering it can make proving that case easier should a dispute arise.
Also, if you every want to sue someone over it, then you must register it.
At that time, I spoke with them both and they both gladly agreed that they would relinquish their rights to the game (even the code that they’d both worked on) so that I could continue development with new partners in the future.
Do you have any of that in email? That would help refresh their memories ...