Amiga OS4FE sound.datatype and friends
Back in 2005, I wrote an experimental replacement for the stock sound.datatype provided with AmigaOS4. At the time, the system provided version was still only that which was provided with OS3.x back in the 1990s and was in dire need of enhancement. Unfortunately I lost my working source tree and its backups and was left with fragments of code here and there but it stopped working with OS4.1 a few years later anyway so I basically abandoned it.
In the autumn of 2015 I commenced work on a new version intended to replace the stock sound.datatype shipping with OS4.1FE which was still barely different from OS3. Sponsored by e-eon.co.uk and amigakit.co.uk, this replacement for the OS4 sound.datatype provides support for multichannel audio and better streaming capabilities. As an accompaniment, I authored a few examples of sound subclass datatypes: an enhanced wav.datatype replacement, mpega.datatype and tracker module datatype!
Like the older version(s), this new version comes with built-in support for ye olde Fibonacci delta data streams that was used in the 8SVX samples. The replacement now also supports a handful of formats or compression schemes natively, removing the need for third party decoders. The major addition was the support for streaming by use of a Hook rather than a task and signal combination - that is, the data is now pulled by the datatype instead of pushed by an external task, resulting in more consistent playback.
The class also supports a new BOOPSI method STM_FETCH which allows the resulting PCM sample data buffers to be retrieved in a particular PCM format. This is then used internally to adapt to the system configured AHI settings and provide an appropriate stream format for playback. Rudimentary downmixing is also supported for 5.1 and 7.1 streams.
Playback improvements include STM_LOCATE support for seeking to an offset in the stream using milliseconds, a new attribute SDTA_Position which reports a timeval struct with elapsed playback time. More detailed information on all new attributes and supported methods may be found in the autodoc supplied in the OS4 Enhancer package.
There are no screenshots as it only offers an icon to click and initiate playback and looks fairly dull by itself. A bit like this page.