Quick answer: pygame.mixer.pre_init(44100, -16, 2, 512). Match source files' rate. Init before pygame.init().
Sound effects sound chipmunky or muddy. Mixer initialized at 22050 default; sources are 44100. Resampling artifacts.
The Fix
import pygame
pygame.mixer.pre_init(44100, -16, 2, 512)
pygame.init()
# Match assets at 44100 Hz, 16-bit signed, stereo, 512-sample buffer
pre_init must run before pygame.init or mixer.init. Match frequency to dominant source files; pre-resample others if needed.
Verifying
Audio plays cleanly. Latency low (small buffer). Without match: distortion or pitch shift.
“Match freq. Pre-init. Clean audio.”
Related Issues
For mixer Channel reserved, see Channel. For music end event, see end event.
Match freq. Init early.