Here's a more in-depth explanation of the situation by alt_turo from http://frozenbyte.com/board/viewtopic.php?f=23&t=3375&p=14085#p14376
Yeah that code is horrible and buggy. Mac doesn't have FMOD so I ported OpenAL code from Trine to Shadowgrounds. Worked fine except the music was sometimes choppy because sound update was not being called often enough. On Trine this had been fixed properly but it required things like background loading of files which was too invasive change for Shadowgrounds.
So I fixed it by moving sound decoding and playing to a separate thread. Most computers are at least dual core, OpenAL documentation says this is OK and it works fine on Linux. Problem solved, right?
Wrong. Mac threw a fit. No matter what we did the Mac version would always crash very shortly. And I couldn't find the bug on Linux no matter what. So in the end I moved the entire sound system to a separate thread. This at least made Mac stop crashing but unfortunately there's still a bug somewhere. For some reason OpenAL sound sources are not properly cleaned up which eventually makes sound stop working. At this point we'd spent several weeks on this, deadline was looming and frustration was high. So our options were 1) accept choppy music playback, 2) accept crashing on Mac or 3) accept occasional need to restart the game when the sounds bug out. Number three was chosen as the least bad option.
If someone can upload the Shadowgrounds sources to github we can branch a version with our first multi-threaded sound implementation that should work on Linux but not on Mac.
EDIT: just a reminder in case you haven't yet tried it: try increasing the values of "sound_max_hardware_channels" and "sound_software_channels" in options.txt (~/.frozenbyte/shadowgrounds/Config/) as suggested above in this thread. In the Mac version these are 512 by default.