The new system sounds are played in the "Speedy" thread with high regular priority. Check fntSpeedyThread and fnwpSpeedyObject for details about how this is implemented using MMOS/2.

Unfortunately, nowhere is documented how to access and modify the system sounds that appear in the "Sound" object. I have accidently discovered that this is actually fairly easy: these are stored in MMPM.INI in the MMOS/2 directory. Each sound has an index in that file, which I have declared in common.h (those MMSOUND_* #define's). These should be the same on every system. The INI data then contains a "<soundfile>#<description>#<volume>" string.

Sound data manipulation has been moved into a separate file with V0.9.0: check /helpers/syssound.c for details. This now also supports sound scheme manipulation.

To make sure that the actual sound playing (which requires MMPM/2) also works on systems where MMPM/2 is not installed, XWorkplace dynamically imports the functions from the MMPM/2 DLLs. See src\media\* for details.