Crushed coral is calcium carbonate essentially the same as oyster shells. You can put a big bag in or whatever and it will act like a buffer keeping your ph stable. This is usually accomplished due to the ability of the calcium to raise the ph. When your ph drops, the coral or shells get "eaten" or used up by the waters lower ph level, when they get used up the release the calcium back into the water so it stay high.
I have a big bag of oyster shells and mine is pretty constant at 7.3 which is nice. Consistency is best for ph rather than the supposed perfect level. I would also suggest it over baking soda as it would be a slower increase than a direct shot of baking soda, but if your level is at 4 it would still be a big increase up to 7...
Also, how old is your setup? That low of a ph almost sounds like old tank syndrome, http://www.bestfish.com/oldtank.html ... Was your ph higher before and then just bottomed out and are you doing gravel vacs if you have any substrate?