Short:        Datatype for IFF-RSND-Format (41.0)
Author:       astegema@ix.urz.uni-heidelberg.de (Achim Stegemann)
Uploader:     astegema ix urz uni-heidelberg de (Achim Stegemann)
Type:         util/dtype
Architecture: m68k-amigaos

Version:  41.0 (beta !!)

Requires minimum:
 * OS 3.0
 * MC68020
 * xpkmaster.library V4
 * sound.datatype V41 from Stephan Rupprecht (util/dtype/sounddt41.lha)

Additionally recommended:
 * MUI 3.8 for the preferences.


!!! From now on, pack your sound samples with Xpk !!!

This is a full functional datatype, but still beta !
Please report any mistakes to me !!

With the help of the rsnd.datatype, your datatype sytem is able to read sounds
coded in the new IFF-RSND-Format created by me.

The RSND datatype supports 8-bit and 16-bit samples, both mono or stereo sounds !
Best use Xpk packer specialized on samples like SDHC, SLZX, SMPL or SQSH.

This archive is freeware !
Do with it what you want, as long as you do not remove any files from this archive !

The archive also contains the utility 'DT2RSND'. This converts a datatype sound
to the new IFF-RSND-Format !
Template: DT2RSND FROM/A,TO/A,XPK/A/K,MODE/K/N,PASSWORD,VERBOSE/S
XPK:  4-letter packer ID, e.g. SMPL
MODE: Packing mode from 0 to 100 (default).

The datatype supports the DTM_WRITE-RAW method, to save in own format.

If you don't have MUI, you can change prefs for the datatype very easy.
The ENV variable DataTypes/rsnd.prefs contains the DOS template: XPK/A,MODE/A/N
See above for details.
These parameters are only used for the DTM_WRITE method.

Internet: http://www.rzuser.uni-heidelberg.de/~astegema


Important note about the source code:
*************************************

The source has been written in C++ using Maxon-C++ V3.
You will find several instructions a bit strange as I have converted all C-style OS-structures
to C++ OS-structures.
E.g.

struct Library
{
struct Node lib_Node;
UBYTE lib_Flags;
UBYTE lib_pad;
UWORD lib_NegSize;
UWORD lib_PosSize;
UWORD lib_Version;
UWORD lib_Revision;
APTR lib_IdString;
ULONG lib_Sum;
UWORD lib_OpenCnt;
};

has been converted to

struct Library:Node // !!!!!
{
UBYTE lib_Flags;
UBYTE lib_pad;
UWORD lib_NegSize;
UWORD lib_PosSize;
UWORD lib_Version;
UWORD lib_Revision;
APTR lib_IdString;
ULONG lib_Sum;
UWORD lib_OpenCnt;
};

This simplifies the code as I don't always need to cast variables to fit arguments
in functions.
Additionally C++ allows to leave away the 'struct' keyword !

If you like to recompile the source-code for your compiler, you need to adjust the
source-code to C. But this should be no problem.