2005-04-15 06:08:55 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
2007-09-24 15:57:32 +00:00
|
|
|
* $Id$
|
2005-04-15 06:08:55 +00:00
|
|
|
*
|
|
|
|
* Copyright (C) 2005 Stepan Moskovchenko
|
|
|
|
*
|
2008-06-28 18:10:04 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
2005-04-15 06:08:55 +00:00
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
2013-06-16 17:11:03 +00:00
|
|
|
extern const uint32_t freqtable[];
|
2005-04-15 06:08:55 +00:00
|
|
|
|
|
|
|
struct GWaveform
|
|
|
|
{
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned char * name;
|
|
|
|
unsigned char fractions;
|
|
|
|
unsigned int wavSize;
|
|
|
|
unsigned int numSamples;
|
|
|
|
unsigned int startLoop;
|
|
|
|
unsigned int endLoop;
|
|
|
|
unsigned int sampRate;
|
|
|
|
unsigned int lowFreq;
|
|
|
|
unsigned int highFreq;
|
|
|
|
unsigned int rootFreq;
|
|
|
|
unsigned int tune;
|
|
|
|
unsigned int balance;
|
|
|
|
unsigned char * envRate;
|
|
|
|
unsigned char * envOffset;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned char tremSweep;
|
|
|
|
unsigned char tremRate;
|
|
|
|
unsigned char tremDepth;
|
|
|
|
unsigned char vibSweep;
|
|
|
|
unsigned char vibRate;
|
|
|
|
unsigned char vibDepth;
|
|
|
|
unsigned char mode;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned int scaleFreq;
|
|
|
|
unsigned int scaleFactor;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned char * res;
|
2011-09-06 10:34:20 +00:00
|
|
|
int16_t * data;
|
2005-04-15 06:08:55 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct GPatch
|
|
|
|
{
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned int patchNumber;
|
|
|
|
unsigned char * header;
|
|
|
|
unsigned char * gravisid;
|
|
|
|
unsigned char * desc;
|
|
|
|
unsigned char inst, voc, chan;
|
|
|
|
unsigned int numWaveforms;
|
|
|
|
unsigned int datSize;
|
|
|
|
unsigned int vol;
|
|
|
|
unsigned char * res;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned int instrID;
|
|
|
|
unsigned char * instrName;
|
|
|
|
unsigned int instrSize;
|
|
|
|
unsigned int layers;
|
|
|
|
unsigned char * instrRes;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned char layerDup;
|
|
|
|
unsigned char layerID;
|
|
|
|
unsigned int layerSize;
|
|
|
|
unsigned char numWaves;
|
|
|
|
unsigned char * layerRes;
|
2005-04-15 06:08:55 +00:00
|
|
|
|
2005-04-20 21:07:13 +00:00
|
|
|
unsigned char noteTable[128];
|
|
|
|
struct GWaveform * waveforms[255];
|
2005-04-15 06:08:55 +00:00
|
|
|
};
|
|
|
|
|