mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-06 04:50:26 +00:00
e64586d86f
- Added very basic Soundfont support to the internal TiMidity. Things missing: filter, LFOs, modulation envelope, chorus, reverb, and modulators. May or may not be compatible with TiMidity++'s soundfont extensions. - Added support for quoted strings to the TiMidity config parser. SVN r957 (trunk)
85 lines
1.7 KiB
C
85 lines
1.7 KiB
C
/* GF1 Patch definition: */
|
|
enum
|
|
{
|
|
HEADER_SIZE = 12,
|
|
ID_SIZE = 10,
|
|
DESC_SIZE = 60,
|
|
RESERVED_SIZE = 40,
|
|
PATCH_HEADER_RESERVED_SIZE = 36,
|
|
LAYER_RESERVED_SIZE = 40,
|
|
PATCH_DATA_RESERVED_SIZE = 36,
|
|
INST_NAME_SIZE = 16,
|
|
ENVELOPES = 6,
|
|
MAX_LAYERS = 4
|
|
};
|
|
#define GF1_HEADER_TEXT "GF1PATCH110"
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma pack(push, 1)
|
|
#define GCC_PACKED
|
|
#else
|
|
#define GCC_PACKED __attribute__((__packed__))
|
|
#endif
|
|
|
|
struct GF1PatchHeader
|
|
{
|
|
char Header[HEADER_SIZE];
|
|
char GravisID[ID_SIZE]; /* Id = "ID#000002" */
|
|
char Description[DESC_SIZE];
|
|
BYTE Instruments;
|
|
BYTE Voices;
|
|
BYTE Channels;
|
|
WORD WaveForms;
|
|
WORD MasterVolume;
|
|
DWORD DataSize;
|
|
BYTE Reserved[PATCH_HEADER_RESERVED_SIZE];
|
|
} GCC_PACKED;
|
|
|
|
struct GF1InstrumentData
|
|
{
|
|
WORD Instrument;
|
|
char InstrumentName[INST_NAME_SIZE];
|
|
int InstrumentSize;
|
|
BYTE Layers;
|
|
BYTE Reserved[RESERVED_SIZE];
|
|
} GCC_PACKED;
|
|
|
|
struct GF1LayerData
|
|
{
|
|
BYTE LayerDuplicate;
|
|
BYTE Layer;
|
|
int LayerSize;
|
|
BYTE Samples;
|
|
BYTE Reserved[LAYER_RESERVED_SIZE];
|
|
} GCC_PACKED;
|
|
|
|
struct GF1PatchData
|
|
{
|
|
char WaveName[7];
|
|
BYTE Fractions;
|
|
int WaveSize;
|
|
int StartLoop;
|
|
int EndLoop;
|
|
WORD SampleRate;
|
|
int LowFrequency;
|
|
int HighFrequency;
|
|
int RootFrequency;
|
|
SWORD Tune;
|
|
BYTE Balance;
|
|
BYTE EnvelopeRate[ENVELOPES];
|
|
BYTE EnvelopeOffset[ENVELOPES];
|
|
BYTE TremoloSweep;
|
|
BYTE TremoloRate;
|
|
BYTE TremoloDepth;
|
|
BYTE VibratoSweep;
|
|
BYTE VibratoRate;
|
|
BYTE VibratoDepth;
|
|
BYTE Modes;
|
|
SWORD ScaleFrequency;
|
|
WORD ScaleFactor; /* From 0 to 2048 or 0 to 2 */
|
|
BYTE Reserved[PATCH_DATA_RESERVED_SIZE];
|
|
} GCC_PACKED;
|
|
#ifdef _MSC_VER
|
|
#pragma pack(pop)
|
|
#endif
|
|
#undef GCC_PACKED
|