Thank you for the suggestion. I added this code shortly after calling "al_install_audio" (since I am using ALSA):
It had no discernible effect. I also tried "oss", "pulseaudio", and many many variations of buffer sizes (down to 32, up to 2048...) with no discernible effect as well.
...I've been studying the Allegro examples, namely "ex_acodec.c" (which can be seen by selecting it here), and had good results. By creating an ALLEGRO_VOICE, ALLEGRO_MIXER, and ALLEGRO_SAMPLE_INSTANCE I'm able to play my pre-loaded ALLEGRO_SAMPLE instantly.
Unfortunately, I haven't quite got the hang of all those parts yet. Does every instance of a sound effect need its own instance of an ALLEGRO_SAMPLE_INSTANCE? But can they all share the same ALLEGRO_VOICE and ALLEGRO_MIXER?
And why is this different from just using the default mixer and the default voice (with "al_play_sample")?
EDIT: If I create a mixer and set it as the default:
And THEN call "al_play_sample" the sound effect plays INSTANTLY! ...but only ONCE...? Any time I play a sound effect after that it's laggy again.