You can do this in Audacity - in situations like you describe, that is what I usually do. When you select amplify, there is a check box at the bottom that says "allow clipping" or something like that. Check that and you can amplify it as much as you want above zero. If I don't care about the spikes (they are clapping or some other foreign sound like the fireworks in your case), then I just apply a hard limiter (usually -.1 or -.2 dB) to chop them off.
What I would do is find the loudest part of the music that you want to keep and select just that part of the file and hit amplify and see how much you need to amplify to get that to near zero (then just cancel), then select the entire file and amplify by that much (if the spikes are louder, then you'll have to check that allow clipping box), then apply the hard limiter.
An alternative is to determine how much above the max of the music the spikes are and select them one at a time and bring them down with amplify. If there are a lot of them, this can be very tedious.