I registered an account JUST to come on this post and tell you what the problem was for me. I tried EVERY solution on the web. I tried switching to HDMI audio and using an external device (hardware) I own that pulls the audio off the HDMI and gives me a 3.5 audio jack. I STILL HAD CRACKLES!!!
A couple of times while I was trying some of the solutions I was listening to the audio all cracked up and static-y and it suddenly went clear. It drove me nuts. I couldn't figure out what random shit was going on that suddenly cleared it up.
Finally through some stupid luck I found the problem, and confirmed it several times over.
I think it's a buffer issue.
1. FIRST BEFORE CONNECTING over bluetooth with your other device (for me I was using my Android phone), START PLAYING SOME MUSIC.
2. WHILE the music is already playing on your phone (or other device), NOW CONNECT to your raspberry pi via bluetooth. The audio on your phone will likely pause immediately - that's okay.
3. Now that you're actively connected to your pi via bluetooth, start playing the music again - this time it will be crystal clear.
Without this specific order of playing music, the audio would be not only static-y and crackly, but slowed down as well (dragged out). It's for this reason I believe this to be some type of a buffer and/or memory issue. If you just connect bluetooth first between your phone (or other device) and the pi, then suddenly start throwing audio at it, it results in snap, crackle, pop, and slowmo audio.
To confirm, I rebooted the pi several times and played audio in the same order:
1. play audio on phone first
2. while audio is playing on my phone, go into bluetooth settings and tell the phone to connect to the pi.
3. audio will have stopped, but now that your bluetooth is connected to the pi, go back and play the audio again.
When trying to just connect bluetooth first, then play audio, it consistently reproduced the snap, crackle, & pop crap.
Really hope this helps someone. Also, if anyone knows how to dedicate more memory/cpu cycles to the audio part of the pi, I bet this might fix this stupid order of operations to get it to connect.
Let me know if you have success like I did!