#ifndef STUDIO16FILE_H #define STUDIO16FILE_H /* ** $VER: Studio16fileformat 2.0 (9.11.97) ** ** The STUDIO16_2.0 format (KWK3) ** ** Analysed by Kenneth "Kenny" Nilsen ** mailto:kenny@bgnett.no */ #ifndef EXEC_TYPES_H #include #endif /* Initializers */ #define S16FID 0x4B574B33 /* "KWK3" */ #define S16FINIT 0x1 /* File header structure * * HEADER (3690) * SAMPLES (samples x 16bit) */ #define S16FILEHEADERSIZE 3690 /* I am no C programmer so please let me know if this one is incorrect: */ struct STUDIO16FILE { ULONG S16F_ID; /* FILE HEADER ID (K16FID) */ ULONG S16F_RATE; /* sample rate */ ULONG S16F_FILTER; /* Init with $1 (K16FINIT) */ UWORD S16F_VOLUME; /* sample volume */ ULONG S16F_SMPTE; /* SMPTE timecode (H:B M:B S:B F:B) */ ULONG S16F_SMPTEFLOAT; /* SMPTE sampling rate */ ULONG S16F_PAN; /* pan setting */ LONG S16F_FLAGS; /* misc flags */ LONG S16F_RESERVED; /* here follows the sampleclips */ ULONG S16F_SAMPLES0; /* number of samples (bytesize/2) */ ULONG S16F_SAMPLES1; /* number of samples */ ULONG S16F_0; /* start of first range [main] */ ULONG S16F_SAMPLES2; /* number of samples-1 (end) */ ULONG S16F_EDITSTATUS; /* if =null then no edits in file */ char S16F_1[3636]; /* LABEL S16F_SIZEOF */ /* =3690 */ }; /* Sample rates for Studio 16: */ #define S16_FREQ_0 0x1589 /* 5513 hz */ #define S16_FREQ_1 0x19D7 /* 6615 hz */ #define S16_FREQ_2 0x1F40 /* 8000 hz */ #define S16_FREQ_3 0x2580 /* 9600 hz */ #define S16_FREQ_4 0x2B11 /* 11025 hz */ #define S16_FREQ_5 0x3e80 /* 16000 hz */ #define S16_FREQ_6 0x49D4 /* 18900 hz */ #define S16_FREQ_7 0x5622 /* 22050 hz */ #define S16_FREQ_8 0x6B25 /* 27429 hz */ #define S16_FREQ_9 0x7D00 /* 32000 hz */ #define S16_FREQ_A 0x8133 /* 33075 hz */ #define S16_FREQ_B 0x93A8 /* 37800 hz */ #define S16_FREQ_C 0xAC44 /* 44100 hz */ #define S16_FREQ_D 0xBB80 /* 48000 hz */ /* Volumes */ #define S16_VOL_6 0xD40 /* +6 dB */ #define S16_VOL_0 0xC80 /* +0 dB */ #define S16_VOL_40 0x780 /* Decibel = number-100 */ #define S16_VOL_OFF 0 /* oo dB */ #define S16_VOL_STEPS 0x20 /* Pans */ #define S16_PAN_LEFT 0x0 #define S16_PAN_MID 0xc80 #define S16_PAN_RIGHT 0x1900 #define S16_PAN_STEPS 0x20 /* NOTE: Fileclips and regions are not defined here! * Make sure to convert edits to permanent before converting a sample * FROM Studio16_2.0 to something else. */ #endif /* STUDIO16FILE_H */