/*
 * Structures for DX7
 */
struct dx7operator {
       char    rate[4],
               level[4],
               breakPoint,
               lDepth,
               rDepth,
               lCurve,
               rCurve,
               rateScale,
               sensitivity,
               velocity,
               output,
               oscMode,
               freqC,
               freqF,
               detune;
};

struct dx7voice {
       char    operator[6][21],        /* cast each to (struct dx7operator)*/
               pitchRate[4],
               pitchLevel[4],
               algorithm,
               feedback,
               oscSync,
               lfoSpeed,
               lfoDelay,
               lfoPmd,
               lfoAmd,
               lfoSync,
               lfoWave,
               modSensitivityPitch,
               transpose,
               name[10];
       char    checksum;
/*     char    sex;*/
};

/*
 * Compressed DX7 bank dump
 */
struct Cdx7operator {          /* Compressed dx7 operator dump */
       char    rate[4],
               level[4],
               breakPoint,
               lDepth,
               rDepth,
               rlCurves,
               detrate,        /* detune and rate scale */
               velsams,        /* velocity and AM sensitivity */
               output,         /* Output level */
               modecoarse,     /* mode and coarse */
               fine;
};

struct Cdx7voice {
       char    operator[6][17];
       char    pitchRate[4],
               pitchLevel[4],
               algorithm,
               opSyncFeedback,
               lfoSpeed,
               lfoDelay,
               lfoPmd,
               lfoAmd,
               PLL,            /* PM sens/LFO wave/LFO sync */
               transposed,
               name[10];
};

struct dx7bank {
       char voice[32][128];
       char checksum;
};
