/*
 * GLIB - a Generic LIBrarian and editor for synths
 *
 * DX-100 routines
 */

#define OVERLAY1

#include "glib.h"
#include <ctype.h>

char *visnum(), *visonoff(), *vism3num(), *viswave(), *vismono();
char *visfreq(), *visdx1a();

/* This array contains arbitrary screen labels */
struct labelinfo Ldx100[] = {
4,0,"           Dcy Lev Dcy              De  Out     Amp Eg  Key Key",
5,0," OP    Atk  1   1   2  Rls   Freq   tun Lvl Vel Mod Bia Rat Scl",
6,0," --    --- --- --- --- ---   ----   --- --- --- --- --- --- ---",
7,0," 1",
8,0," 2",
9,0," 3",
10,0," 4",
13,0,"-------------------------+",
14,0,"N = set name  q = quit   |",
15,0,"h = left      l = right  |",
16,0,"k = up        j = down   |",
17,0,"K = incr      J = decr   |",
18,0,"space = play auto-note   |",
19,0,"                         |",
20,0,"Auto-Note:               |",
21,0,"                         |",
22,0,"                         |",
23,0,"                         |",
-1,-1,NULL
};

/* This array defines all the editable parameters. */
struct paraminfo Pdx100[] = {
"autopitch",	"Pitch",21, 3, 21, 9, visnum, 0, 127, 60, 0,
"autovol",	"Vol",	21, 14, 21, 19, visnum, 0, 127, 63, 0,
"autodur",	"Dur",	22, 3, 22, 9, visnum, 1, 20, 5, 0,
"autochan",	"Chan",	22, 14, 22, 19, visnum, 1, 16, 1, 0,

"op1attack",	NULL, -1, -1, 7, 8, visnum, 0, 31, 0, 0,
"op1decay1",	NULL, -1, -1, 7, 12, visnum, 0, 31, 0, 0,
"op1level1",	NULL, -1, -1, 7, 16, visnum, 0, 15, 0, 0,
"op1decay2",	NULL, -1, -1, 7, 20, visnum, 0, 31, 0, 0,
"op1release",	NULL, -1, -1, 7, 24, visnum, 0, 31, 0, 0,
"op1freq",	NULL, -1, -1, 7, 29, visfreq, 0, 63, 0, 0,
"op1detune",	NULL, -1, -1, 7, 37, vism3num, 0, 6, 0, 0,
"op1outlevel",	NULL, -1, -1, 7, 41, visnum, 0, 99, 0, 0,
"op1velocity",	NULL, -1, -1, 7, 45, visnum, 0, 7, 0, 0,
"op1ampmod",	NULL, -1, -1, 7, 48, visonoff, 0, 1, 0, 0,
"op1egbias",	NULL, -1, -1, 7, 53, visnum, 0, 7, 0, 0,
"op1keyrate",	NULL, -1, -1, 7, 57, visnum, 0, 3, 0, 0,
"op1keyscale",	NULL, -1, -1, 7, 61, visnum, 0, 99, 0, 0,
"op2attack",	NULL, -1, -1, 8, 8, visnum, 0, 31, 0, 0,
"op2decay1",	NULL, -1, -1, 8, 12, visnum, 0, 31, 0, 0,
"op2level1",	NULL, -1, -1, 8, 16, visnum, 0, 15, 0, 0,
"op2decay2",	NULL, -1, -1, 8, 20, visnum, 0, 31, 0, 0,
"op2release",	NULL, -1, -1, 8, 24, visnum, 0, 31, 0, 0,
"op2freq",	NULL, -1, -1, 8, 29, visfreq, 0, 63, 0, 0,
"op2detune",	NULL, -1, -1, 8, 37, vism3num, 0, 6, 0, 0,
"op2outlevel",	NULL, -1, -1, 8, 41, visnum, 0, 99, 0, 0,
"op2velocity",	NULL, -1, -1, 8, 45, visnum, 0, 7, 0, 0,
"op2ampmod",	NULL, -1, -1, 8, 48, visonoff, 0, 1, 0, 0,
"op2egbias",	NULL, -1, -1, 8, 53, visnum, 0, 7, 0, 0,
"op2keyrate",	NULL, -1, -1, 8, 57, visnum, 0, 3, 0, 0,
"op2keyscale",	NULL, -1, -1, 8, 61, visnum, 0, 99, 0, 0,
"op3attack",	NULL, -1, -1, 9, 8, visnum, 0, 31, 0, 0,
"op3decay1",	NULL, -1, -1, 9, 12, visnum, 0, 31, 0, 0,
"op3level1",	NULL, -1, -1, 9, 16, visnum, 0, 15, 0, 0,
"op3decay2",	NULL, -1, -1, 9, 20, visnum, 0, 31, 0, 0,
"op3release",	NULL, -1, -1, 9, 24, visnum, 0, 31, 0, 0,
"op3freq",	NULL, -1, -1, 9, 29, visfreq, 0, 63, 0, 0,
"op3detune",	NULL, -1, -1, 9, 37, vism3num, 0, 6, 0, 0,
"op3outlevel",	NULL, -1, -1, 9, 41, visnum, 0, 99, 0, 0,
"op3velocity",	NULL, -1, -1, 9, 45, visnum, 0, 7, 0, 0,
"op3ampmod",	NULL, -1, -1, 9, 48, visonoff, 0, 1, 0, 0,
"op3egbias",	NULL, -1, -1, 9, 53, visnum, 0, 7, 0, 0,
"op3keyrate",	NULL, -1, -1, 9, 57, visnum, 0, 3, 0, 0,
"op3keyscale",	NULL, -1, -1, 9, 61, visnum, 0, 99, 0, 0,
"op4attack",	NULL, -1, -1, 10, 8, visnum, 0, 31, 0, 0,
"op4decay1",	NULL, -1, -1, 10, 12, visnum, 0, 31, 0, 0,
"op4level1",	NULL, -1, -1, 10, 16, visnum, 0, 15, 0, 0,
"op4decay2",	NULL, -1, -1, 10, 20, visnum, 0, 31, 0, 0,
"op4release",	NULL, -1, -1, 10, 24, visnum, 0, 31, 0, 0,
"op4freq",	NULL, -1, -1, 10, 29, visfreq, 0, 63, 0, 0,
"op4detune",	NULL, -1, -1, 10, 37, vism3num, 0, 6, 0, 0,
"op4outlevel",	NULL, -1, -1, 10, 41, visnum, 0, 99, 0, 0,
"op4velocity",	NULL, -1, -1, 10, 45, visnum, 0, 7, 0, 0,
"op4ampmod",	NULL, -1, -1, 10, 48, visonoff, 0, 1, 0, 0,
"op4egbias",	NULL, -1, -1, 10, 53, visnum, 0, 7, 0, 0,
"op4keyrate",	NULL, -1, -1, 10, 57, visnum, 0, 3, 0, 0,
"op4keyscale",	NULL, -1, -1, 10, 61, visnum, 0, 99, 0, 0,

"algorithm",	"Algorithm~l~l~l~l~l~l~l~l~l~d=============",	1, 49, 1, 61, visdx1a, 0, 7, 0, 0,

"feedback",	"Feedback",	12, 33, 12, 45, visnum, 0, 7, 0, 0,
"transpose",	"Transpose",	13, 33, 13, 45, visnum, 0, 45, 0, 0,
"lfospeed",	"LFO Speed",	14, 33, 14, 45, visnum, 0, 99, 0, 0,
"lfodelay",	"LFO Delay",	15, 33, 15, 45, visnum, 0, 99, 0, 0,
"lfowave",	"LFO Wave",	16, 33, 16, 45, viswave, 0, 3, 0, 0,
"lfosync",	"LFO Sync",	17, 33, 17, 45, visonoff, 0, 1, 0, 0,
"pitchbend",	"Pitch Bend",	18, 33, 18, 45, visnum, 0, 12, 0, 0,
"portatime",	"Port. Time",	19, 33, 19, 45, visnum, 0, 99, 0, 0,
"portmode",	"Port. Mode",	20, 33, 20, 45, visnum, 0, 1, 0, 0,
"portfoot",	"Port. Foot",	21, 33, 21, 45, visonoff, 0, 1, 0, 0,
"susfoot",	"Sus. Foot",	22, 33, 22, 45, visonoff, 0, 1, 0, 0,
"playmode",	"Mono/Poly",		12, 55, 12, 74, vismono, 0, 1, 0, 0,
"amoddepth",	"Amp Mod Depth",	13, 55, 13, 74, visnum, 0, 99, 0, 0,
"amodsens",	"Amp Mod Sense",	14, 55, 14, 74, visnum, 0, 3, 0, 0,
"pmoddepth",	"Pitch Mod Depth",	15, 55, 15, 74, visnum, 0, 99, 0, 0,
"pmodsens",	"Pitch Mod Sense",	16, 55, 16, 74, visnum, 0, 7, 0, 0,
"modprange",	"Mod Pitch Range",	17, 55, 17, 74, visnum, 0, 99, 0, 0,
"modarange",	"Mod Amp Range",	18, 55, 18, 74, visnum, 0, 99, 0, 0,
"breathprange",	"Breath Pitch",		19, 55, 19, 74, visnum, 0, 99, 0, 0,
"breatharange",	"Breath Amp",		20, 55, 20, 74, visnum, 0, 99, 0, 0,
"breathpbias",	"Breath Pitch Bias",	21, 55, 21, 74, visnum, 0, 99, 0, 0,
"breathegbias",	"Breath EG Bias",	22, 55, 22, 74, visnum, 0, 99, 0, 0,
NULL,	NULL, -1, -1, -1, -1, visnum, 0, 0, 0, 0
};
