Thanks to some discussion with HackMew and giradialkia, I've come to the conclusion that the "beeps" is caused by repointing things to what actually isn't free space. That's why all Emerald hacks suffer from the sound problem, is because all of us let AdvanceMap do automatic repointing.
Here's a solution that works 100%: Disable automatic repointing in AdvanceMap, and when you repoint something in AdvanceMap or unLZ or whatever, make sure the offset you repoint it to is higher than 0xE3CF64. This does not work with a rom that already has corrupted sound.
If you look at this offset (0xE3CF64) in a hex editor, you'll notice that from here on until the end of the rom is FF bytes. Because of this, I believe that Emerald actually uses FF as free space, not 00. I don't know why, but somebody thought that Emerald uses 00, which led common rom-hacking programs to repoint things to offsets that aren't free space.
Unfortunately, if your hack already has messed up sound, then you're screwed. Unless if you want to restart, which is what I'm doing.