I have written a double buffered DMA sound player in STOS.
It uses DMA Sound so it is really only STE compatible, but Steem will play it just fine. It also uses gemdos fopen\fread\fseek\fclose (see my other post).
It is a prototype for such a routine which I might try to write in assembly (with STFM compatibility).
I know it clicks a little bit when the samples swap buffers but it is better than nothing.
It can play samples larger than physical memory e.g. an STE with 512k can play a 1.7Mb sample running off a hard disk or virtual hard disk in Steem.
You can download my prototype demo here (1.38Mb):http://www.lynn3686.com/download/stos/motd1.zip
This plays the old Match of the Day tune with some player statistics showing. The music is sampled at 12.5kHz, 8-bit, signed using Audicity.
I haven't tested this on a real STE yet. I have just developed it in STOS using Steem 3.2
Still got, still working: Atari 4Mb STe, 520STFM, 2.5Mb STF.
Hardware: Cumana CSA 354, Ultimate Ripper, Blitz Turbo, Synchro Express II (US and UK Versions).