#include "cs.h"			/*			ENTRY.C		*/
#include "insert.h"
#include "aops.h"
#include "midiops.h"
#include "ugens1.h"
#include "ugens2.h"
#include "ugens3.h"
#include "ugens4.h"
#include "ugens5.h"
#include "ugens6.h"
#include "ugens7.h"
#include "dsputil.h"
#include "ugens8.h"
#include "ugens9.h"
#include "ugensa.h"
#include "window.h"
#include "windin.h"
#include "spectra.h"
#include "disprep.h"
#include "soundio.h"
#include "dumpf.h"
#include "vdelay.h"
#include "nreverb.h"
#include "aoscilx.h"
#include "follow.h"
#include "butter.h"
#include "grain.h"
#include "grain4.h"
#include "cmath.h"
#include "hrtferx.h"
#include "pvread.h"
#include "pvinterp.h"
#include "vpvoc.h"
#include "sndwarp.h"
#include "nlfilt.h"
#include "fhtfun.h"
#include "ugrw1.h"
#include "ugrw2.h"
#include "diskin.h"
#include "ftgen.h"
#include "oload.h"
#include "midiout.h"	
#include "midiops2.h"	
#include "repluck.h"
#include "filter.h"
#include "pluck.h"
#include "wavegde.h"
#include "dam.h"

#include "clarinet.h"
#include "flute.h"
#include "bowed.h"
#include "marimba.h"
#include "brass.h"
#include "vibraphn.h"
#include "shaker.h"
#include "fm4op.h"
#include "moog1.h"
#include "singwave.h"
#include "mandolin.h"

#include "pvadd.h"
#include "locsig.h"
#include "space.h"

#include "dcblockr.h"
 
#define S	sizeof

void	ihold(void*), turnoff(void*);
void	assign(void*), rassign(void*), aassign(void*);
void	init(void*), ainit(void*), flwset(void*), follow(void*);
void	gt(void*), ge(void*), lt(void*), le(void*), eq(void*), ne(void*);
void	and(void*), or(void*), conval(void*), aconval(void*);
void	addkk(void*), subkk(void*), mulkk(void*), divkk(void*);
void	addka(void*), subka(void*), mulka(void*), divka(void*);
void	addak(void*), subak(void*), mulak(void*), divak(void*);
void	addaa(void*), subaa(void*), mulaa(void*), divaa(void*);
void	int1(void*), frac1(void*), rnd1(void*), birnd1(void*);
void	abs1(void*), exp01(void*), log01(void*), sqrt1(void*);
void	sin1(void*), cos1(void*), tan1(void*), asin1(void*), acos1(void*);
void	atan1(void*), sinh1(void*), cosh1(void*), tanh1(void*), log101(void*);
void    atan21(void*), atan2aa(void*);
void	absa(void*), expa(void*), loga(void*), sqrta(void*);
void	sina(void*), cosa(void*), tana(void*), asina(void*), acosa(void*);
void	atana(void*), sinha(void*), cosha(void*), tanha(void*), log10a(void*);
void	dbamp(void*), ampdb(void*), aampdb(void*);
void	ftlen(void*), ftlptim(void*);
/*void	pgminit(void*), dpgminit(void*); */
void    pctlinit(void*), dpctlinit(void*);
void	cpsoct(void*), octpch(void*), cpspch(void*);
void	pchoct(void*), octcps(void*), acpsoct(void*);
void	massign(void*), ctrlinit(void*), notnum(void*), veloc(void*);
void	pchmidi(void*), pchmidib(void*), octmidi(void*), octmidib(void*);
void	cpsmidi(void*), icpsmidib(void*), kcpsmidib(void*), kmbset(void*);
void	midibset(void*), ipchmidib(void*), ioctmidib(void*);
void    kpchmidib(void*), koctmidib(void*), msclset(void*);
void	ampmidi(void*), aftset(void*), aftouch(void*), chpress(void*);
void    ipchbend(void*), kbndset(void*), kpchbend(void*);
void	imidictl(void*), mctlset(void*), midictl(void*);
void    ichanctl(void*), chctlset(void*), chanctl(void*), turnon(void*);
void    kmapset(void*), polyaft(void*), ichanctl(void*), chctlset(void*);
void	chanctl(void*), ftgen(void*), linset(void*), kline(void*), aline(void*);
void	expset(void*), kexpon(void*), expon(void*);
void	lsgset(void*), klnseg(void*), linseg(void*);
void	xsgset(void*), kxpseg(void*), expseg(void*);
void    lsgrset(void*), klnsegr(void*), linsegr(void*);
void    xsgrset(void*), kxpsegr(void*), expsegr(void*);
void	lnnset(void*), klinen(void*), linen(void*);
void	lnrset(void*), klinenr(void*), linenr(void*);
void	evxset(void*), knvlpx(void*), envlpx(void*);
void	phsset(void*), kphsor(void*), phsor(void*);
void	itable(void*), itabli(void*);
void	tblset(void*), ktable(void*), table(void*), ktabli(void*), tabli(void*);
void	tblsetkt(void*), ktablekt(void*), tablekt(void*), ktablikt(void*);
void	tablikt(void*), ko1set(void*), kosc1(void*),  kosc1i(void*);
void    oscnset(void*), osciln(void*);
void	oscset(void*), koscil(void*), osckk(void*), oscka(void*), oscak(void*);
void	oscaa(void*), koscli(void*), osckki(void*), osckai(void*);
void	oscaki(void*), oscaai(void*), foscset(void*), foscil(void*);
void	foscili(void*), losset(void*), loscil(void*);
void	adset(void*), adsyn(void*);
void	fofset(void*), fofset2(void*), fof(void*), pvset(void*), pvoc(void*);
void	pvaddset(void*), pvadd(void*);
void	fogset(void*), fog(void*); /*JMC*/
/* void	variset(void*), vari(void*);  JMC*/ 
void	harmset(void*), harmon(void*);
void	bzzset(void*), buzz(void*);
void	gbzset(void*), gbuzz(void*);
void	plukset(void*), pluck(void*);
void	rndset(void*), krand(void*), arand(void*);
void	rhset(void*), krandh(void*), randh(void*);
void	riset(void*), krandi(void*), randi(void*);
void	porset(void*), port(void*);
void	tonset(void*), tone(void*), atone(void*);
void	rsnset(void*), reson(void*), areson(void*);
void	lprdset(void*), lpread(void*), lprsnset(void*), lpreson(void*);
void	lpfrsnset(void*), lpfreson(void*);
void    lpslotset(void*) ;
void    lpitpset(void*),lpinterpol(void*) ;
void	rmsset(void*), rms(void*), gainset(void*), gain(void*);
void	balnset(void*), balance(void*);
void	downset(void*), downsamp(void*), upsamp(void*);
void	indfset(void*), interp(void*), kntegrate(void*), integrate(void*);
void	kdiff(void*), diff(void*);
void	samphset(void*), ksmphold(void*), samphold(void*);
void	delset(void*),  delay(void*),  del1set(void*), delay1(void*);
void	delrset(void*), delayr(void*), delwset(void*), delayw(void*);
void	tapset(void*), deltap(void*), deltapi(void*);
void	cmbset(void*), comb(void*), alpass(void*), rvbset(void*), reverb(void*);
void	panset(void*), pan(void*), sndinset(void*), soundin(void*);
void    sndo1set(void*), soundout(void*), sndo2set(void*), soundouts(void*);
void	in(void*),  ins(void*), inq(void*);
void	out(void*),  outs(void*), outs1(void*), outs2(void*);
void	outq(void*), outq1(void*), outq2(void*), outq3(void*), outq4(void*);
void	igoto(void*), kgoto(void*), icgoto(void*), kcgoto(void*);
void	timset(void*), timout(void*);
void	reinit(void*), rigoto(void*), rireturn(void*);
void	tigoto(void*), tival(void*);
void	printv(void*), dspset(void*), kdsplay(void*), dsplay(void*);
void	fftset(void*), kdspfft(void*), dspfft(void*);
void	spadmset(void*), specaddm(void*), spdifset(void*), specdiff(void*);
void	spsclset(void*), specscal(void*), sphstset(void*), spechist(void*);
void	spfilset(void*), specfilt(void*);
void	sptrkset(void*), specptrk(void*), spsumset(void*), specsum(void*);
void	spdspset(void*), specdisp(void*);

void	xyinset(void*), xyin(void*), tempeset(void*), tempest(void*);
void	tempset(void*), tempo(void*);
void    kdmpset(void*), kdmp2set(void*), kdmp3set(void*), kdmp4set(void*);
void    kdump(void*), kdump2(void*), kdump3(void*), kdump4(void*);

/* void	reverb2_set(void*), reverb2_play(void*); */
void	nreverb_set(void*), nreverb(void*);
void    butset(void*), bbutset(void*), hibut(void*), lobut(void*);
void	bpbut(void*), bcbut(void*), butter_filter(void*);
void    vdelset(void*), vdelay(void*), multitap_set(void*), multitap_play(void*);
void    agsset(void*), ags(void*);
void	aoscilxset(void*), aoscilxplay(void*);
void    ipow(void*), kpow(void*), apow(void*), alinear(void*), iklinear(void*);
void	atrian(void*), iktrian(void*), aexp(void*);
void	ikexp(void*), abiexp(void*), ikbiexp(void*), agaus(void*), ikgaus(void*);
void	acauchy(void*), ikcauchy(void*), apcauchy(void*), ikpcauchy(void*);
void	abeta(void*), ikbeta(void*), aweib(void*), ikweib(void*), apoiss(void*);
void	ikpoiss(void*), seedrand(void*);

void	cvset(void*), convolve(void*), grainsetv4(void*), graingenv4(void*);
void    cpsxpch(void*), cps2pch(void*), hrtferxk(void*), hrtferxkSet(void *);
void	tblesegset(void*), ktableseg(void*), ktablexseg(void*);
void	voscset(void*), voscili(void*), vpvset(void*), vpvoc(void*);
void 	pvreadset(void*), pvread(void*), sndwarpgetset(void*), sndwarp(void*);
void	sndwarpstset(void*), sndwarpst(void*), pvcrossset(void*), pvcross(void*);
void	pvbufreadset(void*), pvbufread(void*);
void	pvinterpset(void*), pvinterp(void*);
void	nlfiltset(void*), nlfilt(void*), Xsynth(void*), Xsynthset(void*);
void	auniform(void*), ikuniform(void*);
void	tblsetw(void*), ktablew(void*), tablew(void*), itablew(void*);
void	tblsetwkt(void*), ktablewkt(void*), tablewkt(void*);
void	tableng(void*), itableng(void*), tablegpw(void*), itablegpw(void*);
void	tablemixset(void*), tablemix(void*), itablemix(void*); 
void	tablecopyset(void*), tablecopy(void*), itablecopy(void*);
void	tableraset(void*), tablera(void*), tablewaset(void*), tablewa(void*);
void	zakinit(void*);
void	zkset(void*), zir(void*), zkr(void*), ziw(void*), zkw(void*);
void	ziwm(void*), zkwm(void*), zkmod(void*), zkcl(void*);
void	zaset(void*), zar(void*), zarg(void*), zaw(void*);
void	zawm(void*), zamod(void*), zacl(void*);
void	timek(void*), timesr(void*);
void	instimset(void*), instimek(void*), instimes(void*);
void	printkset(void*), printk(void*), printksset(void*), printks(void*);
void	printk2set(void*), printk2(void*), peakk(void*), peaka(void*);
void 	kporset(void*), kport(void*);	
void	ktonset(void*), ktone(void*), katone(void*);
void	krsnset(void*), kreson(void*), kareson(void*);
void	limitset(void*), klimit(void*), limit(void*);
void	newsndinset(void*), soundinew(void*);
void    daminit(void *), dam(void*);
void	iout_on(void*), iout_off(void*), out_controller(void*);     
void    iout_on_dur_set(void*), iout_on_dur(void*),iout_on_dur2(void*);
void    moscil_set(void*), moscil(void*);
void    kvar_out_on_set(void*), kvar_out_on(void*);
void    out_controller14(void*), out_pitch_bend(void*);
void    out_aftertouch(void*), out_poly_aftertouch(void*);
void	out_progchange(void*); 
void    release_set(void*), release(void*), xtratim(void*);
void    mclock_set(void*), mclock(void*), mrtmsg(void*);
void    imidic7(void*),  midic7set(void*),  midic7(void*); 
void    imidic14(void*), midic14set(void*), midic14(void*);
void    imidic21(void*), midic21set(void*), midic21(void*);
void	ictrl7(void*), ctrl7set(void*), ctrl7(void*);
void	ictrl14(void*), ctrl14set(void*), ctrl14(void*);
void	ictrl21(void*), ctrl21set(void*), ctrl21(void*);
void	initc7(void*), initc14(void*), initc21(void*);
void    wgpset(void*), wgpsetin(void*), wgpluck(void*);
void    pluckPluck(void*), pluckGetSamps(void*);
void    ifilter(void*), kfilter(void*), afilter(void*);
void    izfilter(void*), azfilter(void*);
void	clarinset(void*), clarin(void*), fluteset(void*), flute(void*);
void	bowedset(void*), bowed(void*), marimbaset(void*), marimba(void*);
void	brassset(void *), brass(void*), vibraphnset(void*), vibraphn(void*);
void	agogobelset(void*), agogobel(void*), shakerset(void*), shaker(void*);
void	tubebellset(void*), tubebell(void*);
void	rhodeset(void*), wurleyset(void*), wurley(void*);
void	heavymetset(void*), heavymet(void*), b3set(void*), hammondB3(void*);
void	FMVoiceset(void*), FMVoice(void*), percfluteset(void*), percflute(void*);
void	Moog1set(void*), Moog1(void*), voicformset(void*), voicform(void*);
void	mandolinset(void*), mandolin(void*);

void	locsigset(void*), locsig(void*),locsendset(void*), locsend(void*);
void    spaceset(void*), space(void*), spsendset(void*), spsend(void*);
void    spdistset(void*), spdist(void*);
void    dcblockrset(void*), dcblockr(void*);

/* thread vals, where isub=1, ksub=2, asub=4:
		0 =	1  OR	2  (B out only)
		1 =	1
		2 =		2
		3 =	1  AND	2
		4 =			4
		5 =	1  AND		4
		7 =	1  AND (2  OR	4)			*/
		
/* inarg types include the following:
		m	begins an indef list of iargs (any count)
		n	begins an indef list of iargs (nargs odd)
		o	optional, defaulting to 0
		p	   "		"	1
		q	   "		"	10
		v	   "		"	.5
		j	   "		"	-1
		k	   "		"	127
   outarg types include:
		m	multiple outargs (1 to 4 allowed)
   (these types must agree with rdorch.c)			*/

OENTRY opcodlst[] = {
/* opcode   dspace	thread	outarg	inargs	isub	ksub	asub	*/
{ ""									},
{ "instr",  0					 			},
{ "endin",  0								},
{ "$label", S(LBLBLK)							},
{ "strset", S(STRNG),   0,      "",     "iS"    /* oload time only */   }, 
{ "pset",   S(PVSET),   0,      "",     "m"                             }, 
{ "ftgen",  S(FTGEN),   1,      "i",   "iiiiSm",ftgen                   },
{ "pctrlinit",S(PCTL_INIT),1,   "",     "n",    pctlinit                },
{ "dpctrlinit",S(PCTL_INIT),1,  "",     "n",    dpctlinit               },
{ "ctrlinit",S(CTLINIT),1,      "",     "im",   ctrlinit                },
{ "massign",S(MASSIGN), 1,      "",     "ii",   massign                 },
{ "turnon", S(TURNON),  1,      "",     "io",   turnon                  },
{ "=",	    0								},
{ "init",   0	/* base names for later prefixes,suffixes */		},
{ "pchmidib",0								},
{ "octmidib",0								},
{ "cpsmidib",0								},
{ "pchbend",0,          0,      "",     ""                              },
{ "midictrl",0								},
{ "oscil",  0								},
{ "oscili", 0								},
{ "ihold",  S(LINK),	1,	"",	"",	ihold			},
{ "turnoff",S(LINK),	2,	"",	"",	NULL,	turnoff		},
{ "r=",	    S(ASSIGN),	1,	"r",	"i",	rassign			},
{ "i=",	    S(ASSIGN),	1,	"i",	"i",	assign			},
{ "k=",	    S(ASSIGN),	2,	"k",	"k",	NULL,	assign		},
{ "a=",	    S(ASSIGN),	4,	"a",	"x",	NULL,	NULL,	aassign	},
{ "iinit",  S(ASSIGN),	1,	"i",	"i",	init			},
{ "kinit",  S(ASSIGN),	1,	"k",	"i",	init			},
{ "ainit",  S(ASSIGN),	1,	"a",	"i",	ainit			},
{ ">",      S(RELAT),	0,	"B",	"kk",	gt,	gt		},
{ ">=",     S(RELAT),	0,	"B",	"kk",	ge,	ge		},
{ "<",      S(RELAT),	0,	"B",	"kk",	lt,	lt		},
{ "<=",     S(RELAT),	0,	"B",	"kk",	le,	le		},
{ "==",     S(RELAT),	0,	"B",	"kk",	eq,	eq		},
{ "!=",     S(RELAT),	0,	"B",	"kk",	ne,	ne		},
{ "&&",     S(LOGCL),	0,	"B",	"BB",	and,	and		},
{ "||",     S(LOGCL),	0,	"B",	"BB",	or,	or		},
{ ":i",     S(CONVAL),	1,	"i",	"bii",	conval			},
{ ":k",     S(CONVAL),	2,	"k",	"Bkk",	NULL,	conval		},
{ ":a",     S(CONVAL),	4,	"a",	"Bxx",	NULL,	NULL,	aconval	},
{ "addii",  S(AOP),	1,	"i",	"ii",	addkk			},
{ "subii",  S(AOP),	1,	"i",	"ii",	subkk			},
{ "mulii",  S(AOP),	1,	"i",	"ii",	mulkk			},
{ "divii",  S(AOP),	1,	"i",	"ii",	divkk			},
{ "addkk",  S(AOP),	2,	"k",	"kk",	NULL,	addkk		},
{ "subkk",  S(AOP),	2,	"k",	"kk",	NULL,	subkk		},
{ "mulkk",  S(AOP),	2,	"k",	"kk",	NULL,	mulkk		},
{ "divkk",  S(AOP),	2,	"k",	"kk",	NULL,	divkk		},
{ "addka",  S(AOP),	4,	"a",	"ka",	NULL,	NULL,	addka	},
{ "subka",  S(AOP),	4,	"a",	"ka",	NULL,	NULL,	subka	},
{ "mulka",  S(AOP),	4,	"a",	"ka",	NULL,	NULL,	mulka	},
{ "divka",  S(AOP),	4,	"a",	"ka",	NULL,	NULL,	divka	},
{ "addak",  S(AOP),	4,	"a",	"ak",	NULL,	NULL,	addak	},
{ "subak",  S(AOP),	4,	"a",	"ak",	NULL,	NULL,	subak	},
{ "mulak",  S(AOP),	4,	"a",	"ak",	NULL,	NULL,	mulak	},
{ "divak",  S(AOP),	4,	"a",	"ak",	NULL,	NULL,	divak	},
{ "addaa",  S(AOP),	4,	"a",	"aa",	NULL,	NULL,	addaa	},
{ "subaa",  S(AOP),	4,	"a",	"aa",	NULL,	NULL,	subaa	},
{ "mulaa",  S(AOP),	4,	"a",	"aa",	NULL,	NULL,	mulaa	},
{ "divaa",  S(AOP),	4,	"a",	"aa",	NULL,	NULL,	divaa	},
{ "iint",   S(EVAL),	1,	"i",	"i",	int1			},
{ "ifrac",  S(EVAL),	1,	"i",	"i",	frac1			},
{ "irnd",   S(EVAL),    1,      "i",    "i",    rnd1                    },
{ "ibirnd", S(EVAL),    1,      "i",    "i",    birnd1                  },
{ "iabs",   S(EVAL),	1,	"i",	"i",	abs1			},
{ "iexp",   S(EVAL),	1,	"i",	"i",	exp01			},
{ "ilog",   S(EVAL),	1,	"i",	"i",	log01			},
{ "isqrt",  S(EVAL),	1,	"i",	"i",	sqrt1			},
{ "isin",   S(EVAL),	1,	"i",	"i",	sin1			},
{ "icos",   S(EVAL),	1,	"i",	"i",	cos1			},
{ "itan",   S(EVAL),	1,	"i",	"i",	tan1			},
{ "isininv",  S(EVAL),	1,	"i",	"i",	asin1			},
{ "icosinv",  S(EVAL),	1,	"i",	"i",	acos1			},
{ "itaninv",  S(EVAL),	1,	"i",	"i",	atan1			},
{ "itaninv2", S(AOP),	1,	"i",	"ii",	atan21			},
{ "ilog10", S(EVAL),	1,	"i",	"i",	log101			},
{ "isinh",  S(EVAL),	1,	"i",	"i",	sinh1			},
{ "icosh",  S(EVAL),	1,	"i",	"i",	cosh1			},
{ "itanh",  S(EVAL),	1,	"i",	"i",	tanh1			},
{ "kint",   S(EVAL),	2,	"k",	"k",	NULL,	int1		},
{ "kfrac",  S(EVAL),	2,	"k",	"k",	NULL,	frac1		},
{ "krnd",   S(EVAL),    2,      "k",    "k",    NULL,   rnd1            },
{ "kbirnd", S(EVAL),    2,      "k",    "k",    NULL,   birnd1          },
{ "kabs",   S(EVAL),	2,	"k",	"k",	NULL,	abs1		},
{ "kexp",   S(EVAL),	2,	"k",	"k",	NULL,	exp01		},
{ "klog",   S(EVAL),	2,	"k",	"k",	NULL,	log01		},
{ "ksqrt",  S(EVAL),	2,	"k",	"k",	NULL,	sqrt1		},
{ "ksin",   S(EVAL),	2,	"k",	"k",	NULL,	sin1		},
{ "kcos",   S(EVAL),	2,	"k",	"k",	NULL,	cos1		},
{ "ktan",   S(EVAL),	2,	"k",	"k",	NULL,	tan1		},
{ "ksininv",  S(EVAL),	2,	"k",	"k",	NULL,	asin1		},
{ "kcosinv",  S(EVAL),	2,	"k",	"k",	NULL,	acos1		},
{ "ktaninv",  S(EVAL),	2,	"k",	"k",	NULL,	atan1		},
{ "ktaninv2", S(AOP),	2,	"k",	"kk",	NULL,	atan21		},
{ "ksinh",  S(EVAL),	2,	"k",	"k",	NULL,	sinh1		},
{ "kcosh",  S(EVAL),	2,	"k",	"k",	NULL,	cosh1		},
{ "ktanh",  S(EVAL),	2,	"k",	"k",	NULL,	tanh1		},
{ "klog10", S(EVAL),	2,	"k",	"k",	NULL,	log101		},
{ "aabs",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	absa	},
{ "aexp",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	expa	},
{ "alog",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	loga	},
{ "asqrt",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	sqrta	},
{ "asin",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	sina	},
{ "acos",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	cosa	},
{ "atan",   S(EVAL),	4,	"a",	"a",	NULL,	NULL,	tana	},
{ "asininv",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	asina	},
{ "acosinv",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	acosa	},
{ "ataninv",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	atana	},
{ "ataninv2", S(AOP),	4,	"a",	"aa",	NULL,	NULL,	atan2aa	},
{ "asinh",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	sinha	},
{ "acosh",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	cosha	},
{ "atanh",  S(EVAL),	4,	"a",	"a",	NULL,	NULL,	tanha	},
{ "alog10", S(EVAL),	4,	"a",	"a",	NULL,	NULL,	log10a	},
{ "idbamp", S(EVAL),	1,	"i",	"i",	dbamp			},
{ "iampdb", S(EVAL),	1,	"i",	"i",	ampdb			},
{ "kdbamp", S(EVAL),	2,	"k",	"k",	NULL,	dbamp		},
{ "kampdb", S(EVAL),	2,	"k",	"k",	NULL,	ampdb		},
{ "aampdb", S(EVAL),	4,	"a",	"a",	NULL,	NULL,	aampdb	},
{ "iftlen", S(EVAL),	1,	"i",	"i",	ftlen			},
{ "iftlptim",S(EVAL),   1,      "i",    "i",    ftlptim                 },
{ "ki",	    S(ASSIGN),	1,	"i",	"k",	init			},
{ "icpsoct",S(EVAL),	1,	"i",	"i",	cpsoct			},
{ "ioctpch",S(EVAL),	1,	"i",	"i",	octpch			},
{ "icpspch",S(EVAL),	1,	"i",	"i",	cpspch			},
{ "ipchoct",S(EVAL),	1,	"i",	"i",	pchoct			},
{ "ioctcps",S(EVAL),	1,	"i",	"i",	octcps			},
{ "kcpsoct",S(EVAL),	2,	"k",	"k",	NULL,	cpsoct		},
{ "koctpch",S(EVAL),	2,	"k",	"k",	NULL,	octpch		},
{ "kcpspch",S(EVAL),	2,	"k",	"k",	NULL,	cpspch		},
{ "kpchoct",S(EVAL),	2,	"k",	"k",	NULL,	pchoct		},
{ "koctcps",S(EVAL),	2,	"k",	"k",	NULL,	octcps		},
{ "acpsoct",S(EVAL),	4,	"a",	"a",	NULL,	NULL,	acpsoct	},
{ "notnum", S(MIDIVAL), 1,	"i",	"",	notnum			},
{ "veloc",  S(MIDIMAP), 1,	"i",	"oh",	veloc			},
{ "pchmidi",S(MIDIVAL), 1,	"i",	"",	pchmidi			},
{ "octmidi",S(MIDIVAL), 1,	"i",	"",	octmidi			},
{ "cpsmidi",S(MIDIVAL), 1,	"i",	"",	cpsmidi			},
{ "ipchmidib",S(MIDIVAL),1,	"i",	"o",	pchmidib		},
{ "ioctmidib",S(MIDIVAL),1,	"i",	"o",	octmidib		},
{ "icpsmidib",S(MIDIVAL),1,	"i",	"o",	icpsmidib		},
{ "kpchmidib",S(MIDIVAL),2,	"k",	"o",	midibset, pchmidib	},
{ "koctmidib",S(MIDIVAL),2,	"k",	"o",	midibset, octmidib	},
{ "kcpsmidib",S(MIDIVAL),2,	"k",	"o",	midibset, icpsmidib     },
{ "ampmidi",S(MIDIAMP), 1,	"i",	"io",	ampmidi			},
{ "aftouch",S(MIDISCL), 3,	"k",	"i",	aftset, aftouch		},
/* { "chpress",S(MIDISCL), 3,	"k",	"i",	aftset, chpress		}, */
{ "ipchbend",S(MIDIMAP),0x21,   "i",    "jp",   ipchbend                },
{ "kpchbend",S(MIDIKMAP),0x23,  "k",    "jp",   kbndset,kpchbend        },
{ "imidictrl",S(MIDICTL),1,	"i",	"ioh",	imidictl		},
{ "kmidictrl",S(MIDICTL),3,	"k",	"ioh",	mctlset,midictl 	},
{ "ichanctrl",S(CHANCTL),1,     "i",    "iioh", ichanctl                },
{ "kchanctrl",S(CHANCTL),3,     "k",    "iioh", chctlset,chanctl        },
{ "line",   S(LINE),	7,	"s",	"iii",	linset,	kline,	aline	},
{ "expon",  S(EXPON),	7,	"s",	"iii",	expset,	kexpon,	expon	},
{ "linseg", S(LINSEG),  7,	"s",	"iin",	lsgset,	klnseg,	linseg	},
{ "linsegr",S(LINSEG),  7,      "s",    "iin",  lsgrset,klnsegr,linsegr },
{ "expseg", S(EXPSEG),  7,	"s",	"iin",	xsgset,	kxpseg,	expseg	},
{ "expsegr",S(EXPSEG),  7,      "s",    "iin",  xsgrset,kxpsegr,expsegr },
{ "linen",  S(LINEN),	7,	"s",	"xiii",	lnnset,	klinen,	linen	},
{ "linenr", S(LINENR),	7,	"s",	"xiii", lnrset,	klinenr,linenr	},
{ "envlpx", S(ENVLPX),	7,	"s","xiiiiiio", evxset, knvlpx,	envlpx	},
{ "phasor", S(PHSOR),	7,	"s",	"xo",	phsset,	kphsor,	phsor	},
{ "itable", S(TABLE),	1,	"i",	"iiooo",itable	 		},
{ "itablei", S(TABLE),	1,	"i",	"iiooo",itabli	 		},
{ "table",  S(TABLE),	7,	"s",	"xiooo",tblset,	ktable,	table	},
{ "tablei", S(TABLE),	7,	"s",	"xiooo",tblset,	ktabli,	tabli	},
{ "oscil1", S(OSCIL1),	3,	"k",	"ikii", ko1set,	kosc1   	},
{ "oscil1i",S(OSCIL1),	3,	"k",	"ikii", ko1set,	kosc1i  	},
{ "osciln", S(OSCILN),  5,      "a",    "kiii", oscnset,NULL,   osciln  },
{ "oscilkk",S(OSC),	7,	"s",	"kkio",	oscset,	koscil,	osckk	},
{ "oscilka",S(OSC),	5,	"a",	"kaio",	oscset,	NULL,	oscka	},
{ "oscilak",S(OSC),	5,	"a",	"akio",	oscset,	NULL,	oscak	},
{ "oscilaa",S(OSC),	5,	"a",	"aaio",	oscset,	NULL,	oscaa	},
{ "oscilikk",S(OSC),	7,	"s",	"kkio",	oscset,	koscli,	osckki	},
{ "oscilika",S(OSC),	5,	"a",	"kaio",	oscset,	NULL,	osckai	},
{ "osciliak",S(OSC),	5,	"a",	"akio",	oscset,	NULL,	oscaki	},
{ "osciliaa",S(OSC),	5,	"a",	"aaio",	oscset,	NULL,	oscaai	},
{ "foscil", S(FOSC),	5,	"a",  "xkkkkio",foscset,NULL,	foscil	},
{ "foscili",S(FOSC),	5,	"a",  "xkkkkio",foscset,NULL,	foscili	},
{ "loscil", S(LOSC),	5,	"mm","xkiojoojoo",losset,NULL, loscil	},
{ "adsyn",  S(ADSYN),	5,	"a",	"kkkS",	adset,	NULL,	adsyn	},
{ "pvoc",   S(PVOC),	5,	"a",	"kkSo",	pvset,	NULL,	pvoc	},
{ "fof",    S(FOFS),	5,	"a","xxxkkkkkiiiioo",fofset,NULL,fof	},
{ "fof2",   S(FOFS),	5,	"a","xxxkkkkkiiiikk",fofset2,NULL,fof	},
{ "fog",    S(FOGS),	5,	"a","xxxakkkkkiiiioo",fogset,NULL,fog	},
{ "harmon", S(HARMON),  5,      "a",  "akkkkiii",harmset,NULL,  harmon  },
{ "buzz",   S(BUZZ),	5,	"a",  "xxkio",  bzzset,	NULL,	buzz	},
{ "gbuzz",  S(GBUZZ),	5,	"a",  "xxkkkio",gbzset,	NULL,	gbuzz	},
{ "pluck",  S(PLUCK),	5,	"a",  "kkiiioo",plukset,NULL,	pluck	},
{ "rand",   S(RAND),	7,	"s",	"xv",	rndset,	krand,	arand	},
{ "randh",  S(RANDH),	7,	"s",	"xxv",	rhset,	krandh,	randh	},
{ "randi",  S(RANDI),	7,	"s",	"xxv",	riset,	krandi,	randi	},
{ "port",   S(PORT),	3,	"k",	"kio",	porset,	port		},
{ "tone",   S(TONE),	5,	"a",	"ako",	tonset,	NULL,	tone	},
{ "atone",  S(TONE),	5,	"a",	"ako",	tonset,	NULL,	atone	},
{ "reson",  S(RESON),	5,	"a",	"akkoo",rsnset,	NULL,	reson	},
{ "areson", S(RESON),	5,	"a",	"akkoo",rsnset,	NULL,	areson	},
{ "lpread", S(LPREAD),	3,	"kkkk",	"kSoo",	lprdset,lpread		},
{ "lpreson",S(LPRESON),	5,	"a",	"a",	lprsnset,NULL,	lpreson	},
{ "lpfreson",S(LPFRESON),5,	"a",	"ak",	lpfrsnset,NULL,	lpfreson},
{ "lpslot"  ,  S(LPSLOT),  1,   "",     "i",    lpslotset, NULL, NULL   },
{ "lpinterp", S(LPINTERPOL), 3, "",    "iik",   lpitpset, lpinterpol, NULL},
{ "rms",    S(RMS),	3,	"k",	"aqo",	rmsset,	rms		},
{ "gain",   S(GAIN),	5,	"a",	"akqo",	gainset,NULL,	gain	},
{ "balance",S(BALANCE),	5,	"a",	"aaqo",	balnset,NULL,	balance	},
{ "downsamp",S(DOWNSAMP),3,	"k",	"ao",	downset,downsamp	},
{ "upsamp", S(UPSAMP),	4,	"a",	"k",	NULL,	NULL,	upsamp	},
{ "interp", S(INDIFF),	5,	"a",	"ko",	indfset,NULL,	interp	},
{ "integ",  S(INDIFF),	7,	"s",	"xo",	indfset,kntegrate,integrate},
{ "diff",   S(INDIFF),	7,	"s",	"xo",	indfset,kdiff,	diff	},
{ "samphold",S(SAMPHOLD),7,	"s",	"xxoo",	samphset,ksmphold,samphold},
{ "delay",  S(DELAY),	5,	"a",	"aio",	delset,	NULL,	delay	},
{ "delayr", S(DELAYR),	5,	"a",	"io",	delrset,NULL,	delayr	},
{ "delayw", S(DELAYW),	5,	"",	"a",	delwset,NULL,	delayw	},
{ "delay1", S(DELAY1),	5,	"a",	"ao",	del1set,NULL,	delay1	},
{ "deltap", S(DELTAP),	5,	"a",	"k",	tapset, NULL,	deltap	},
{ "deltapi",S(DELTAP),	5,	"a",	"x",	tapset, NULL,	deltapi	},
{ "comb",   S(COMB),	5,	"a",	"akio",	cmbset,	NULL,	comb	},
{ "alpass", S(COMB),	5,	"a",	"akio",	cmbset,	NULL,	alpass	},
{ "reverb", S(REVERB),	5,	"a",	"ako",	rvbset,	NULL,	reverb	},
{ "pan",    S(PAN),	5,	"aaaa",	"akkioo",panset,NULL,	pan	},
{ "soundin",S(SOUNDIN),	5,	"mmmm",	"Soo",	sndinset,NULL,	soundin	},
{ "soundout",S(SNDOUT), 5,      "",     "aSo",  sndo1set,NULL,  soundout},
{ "soundouts",S(SNDOUTS),5,     "",     "aaSo", sndo2set,NULL,  soundouts},
{ "in",     S(IN),	4,	"a",	"",	NULL,	NULL,	in	},
{ "ins",    S(INS),	4,	"aa",	"",	NULL,	NULL,	ins	},
{ "inq",    S(INQ),	4,	"aaaa",	"",	NULL,	NULL,	inq	},
{ "out",    S(OUT),	4,	"",	"a",	NULL,	NULL,	out	},
{ "outs",   S(OUTS),	4,	"",	"aa",	NULL,	NULL,	outs	},
{ "outq",   S(OUTQ),	4,	"",	"aaaa",	NULL,	NULL,	outq	},
{ "outs1",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outs1	},
{ "outs2",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outs2	},
{ "outq1",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outq1	},
{ "outq2",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outq2	},
{ "outq3",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outq3	},
{ "outq4",  S(OUT),	4,	"",	"a",	NULL,	NULL,	outq4	},
{ "igoto",  S(GOTO),	1,	"",	"l",	igoto			},
{ "kgoto",  S(GOTO),	2,	"",	"l",	NULL,	kgoto		},
{ "goto",   S(GOTO),	3,	"",	"l",	igoto,	kgoto		},
{ "icgoto", S(CGOTO),	1,	"",	"Bl",	icgoto			},
{ "kcgoto", S(CGOTO),	2,	"",	"Bl",	NULL,	kcgoto		},
{ "gcgoto", S(CGOTO),	3,	"",	"Bl",	icgoto,	kcgoto		},
{ "timout", S(TIMOUT),	3,	"",	"iil",	timset,	timout		},
{ "reinit", S(GOTO),	2,	"",	"l",	NULL,	reinit		},
{ "rigoto", S(GOTO),	1,	"",	"l",	rigoto			},
{ "rireturn",S(LINK),	1,	"",	"",	rireturn		},
{ "tigoto", S(GOTO),	1,	"",	"l",	tigoto			},
{ "tival",  S(EVAL),	1,	"i",	"",	tival			},
{ "print",  S(PRINTV),	1,	"",	"m",	printv			},
{ "display",S(DSPLAY),	7,	"",	"sioo",	dspset, kdsplay,dsplay	},
{ "dispfft",S(DSPFFT),	7,	"",	"siiooo",fftset,kdspfft,dspfft	},
{ "kdump",  S(KDUMP),	3,	"",	"kSii", kdmpset,kdump		},
{ "kdump2", S(KDUMP2),	3,	"",	"kkSii",kdmp2set,kdump2		},
{ "kdump3", S(KDUMP3),	3,	"",	"kkkSii",kdmp3set,kdump3	},
{ "kdump4", S(KDUMP4),	3,	"",	"kkkkSii",kdmp4set,kdump4	},
{ "specaddm", S(SPECADDM),5,	"w",	"wwp",  spadmset,NULL,	specaddm},
{ "specdiff", S(SPECDIFF),5,	"w",	"w",    spdifset,NULL,	specdiff},
{ "specscal", S(SPECSCAL),5,	"w",	"wii",  spsclset,NULL,	specscal},
{ "spechist", S(SPECHIST),5,	"w",	"w",    sphstset,NULL,	spechist},
{ "specfilt", S(SPECFILT),5,	"w",	"wi",   spfilset,NULL,	specfilt},
{ "specptrk", S(SPECPTRK),5,	"k",	"wiioooo",sptrkset,NULL,specptrk},
{ "specsum",  S(SPECSUM), 5,	"k",	"wo",   spsumset,NULL,	specsum },
{ "specdisp", S(SPECDISP),5,	"",	"wii",  spdspset,NULL,	specdisp},
{ "xyin",     S(XYIN),    3,      "kk",   "iiiiioo",xyinset,xyin          },
{ "tempest",  S(TEMPEST), 5,	"k","kiiiiiiiiiop",tempeset,NULL,tempest},
{ "tempo",    S(TEMPO),   3,      "",     "ki",   tempset,tempo           },
/* { "reverb2",  S(STVB),	  5,	"a",	"akko",	reverb2_set, NULL,reverb2_play}, */
{ "reverb2",  S(NREV),	  5,	"a",	"akko",	nreverb_set, NULL,nreverb},
{ "nreverb",  S(NREV),	  5,	"a",	"akko",	nreverb_set, NULL,nreverb},
{ "butterhp", S(BFIL),  5,      "a",    "ako",  butset,  NULL,   hibut   },
{ "butterlp", S(BFIL),  5,      "a",    "ako",  butset,  NULL,   lobut   },
{ "butterbp", S(BBFIL), 5,      "a",    "akko", bbutset, NULL,  bpbut   },
{ "butterbr", S(BBFIL), 5,      "a",    "akko", bbutset, NULL,  bcbut   },
{ "buthp",    S(BFIL),  5,      "a",    "ako",  butset,  NULL,   hibut   },
{ "butlp",    S(BFIL),  5,      "a",    "ako",  butset,  NULL,   lobut   },
{ "butbp",    S(BBFIL), 5,      "a",    "akko", bbutset, NULL,  bpbut   },
{ "butbr",    S(BBFIL), 5,      "a",    "akko", bbutset, NULL,  bcbut   },
{ "vdelay",   S(VDEL),  5,      "a",    "axio", vdelset, NULL,  vdelay  },
{ "grain",    S(PGRA),  5,      "a",    "xxxkkkiiio", agsset, NULL, ags },
{ "ipow",     S(POW),   1,      "i",    "ii",   ipow,    NULL,  NULL    },
{ "kpow",     S(POW),   2,      "k",    "kkp",  NULL,    kpow,  NULL    },
{ "apow",     S(POW),   4,      "a",    "akp",  NULL,    NULL,  apow    },
{ "multitap", S(MDEL),	5,	"a",	"am",	multitap_set,NULL,multitap_play},
{ "follow",   S(FOL),	5,	"a",	"ai",	flwset,  NULL,	follow  },
{ "oscilx",   S(AOX),	5,	"a",	"kiii",	aoscilxset, NULL, aoscilxplay},
{ "ilinrand", S(PRAND),	1,	"i",	"k",   	iklinear, NULL, NULL    },
{ "klinrand", S(PRAND),	2,	"k",	"k",	NULL, iklinear, NULL	},
{ "alinrand", S(PRAND),	4,	"a",	"k",	NULL, NULL,     alinear	},
{ "itrirand", S(PRAND),	1,	"i",	"k",	iktrian, NULL,  NULL	},
{ "ktrirand", S(PRAND),	2,	"k",	"k",	NULL, iktrian,  NULL	},
{ "atrirand", S(PRAND),	4,	"a",	"k",	NULL, NULL,     atrian	},
{ "iexprand", S(PRAND),	1,	"i",	"k",	ikexp, NULL,    NULL	},
{ "kexprand", S(PRAND),	2,	"k",	"k",	NULL,    ikexp, NULL	},
{ "aexprand", S(PRAND),	4,	"a",	"k",	NULL, NULL,     aexp	},
{ "ibexprnd", S(PRAND),	1,	"i",	"k",	ikbiexp, NULL,  NULL	},
{ "kbexprnd", S(PRAND),	2,	"k",	"k",	NULL, ikbiexp,  NULL	},
{ "abexprnd", S(PRAND),	4,	"a",	"k",	NULL, NULL,     abiexp	},
{ "icauchy" , S(PRAND),	1,	"i",	"k",	ikcauchy, NULL, NULL	},
{ "kcauchy" , S(PRAND),	2,	"k",	"k",	NULL, ikcauchy, NULL	},
{ "acauchy" , S(PRAND),	4,	"a",	"k",	NULL,    NULL,  acauchy	},
{ "ipcauchy", S(PRAND),	1,	"i",	"k",	ikpcauchy, NULL,NULL	},
{ "kpcauchy", S(PRAND),	2,	"k",	"k",	NULL, ikpcauchy,NULL	},
{ "apcauchy", S(PRAND),	4,	"a",	"k",	NULL,    NULL,  apcauchy},
{ "ipoisson", S(PRAND),	1,	"i",	"k",	ikpoiss, NULL,  NULL	},
{ "kpoisson", S(PRAND),	2,	"k",	"k",	NULL, ikpoiss,  NULL	},
{ "apoisson", S(PRAND),	4,	"a",	"k",	NULL,    NULL,  apoiss	},
{ "igauss"  , S(PRAND),	1,	"i",	"k",	ikgaus,  NULL,  NULL	},
{ "kgauss"  , S(PRAND),	2,	"k",	"k",	NULL, ikgaus,   NULL	},
{ "agauss"  , S(PRAND),	4,	"a",	"k",	NULL,    NULL,  agaus	},
{ "iweibull", S(PRAND),	1,	"i",	"kk",	ikweib,  NULL,  NULL	},
{ "kweibull", S(PRAND),	2,	"k",	"kk",	NULL, ikweib,   NULL	},
{ "aweibull", S(PRAND),	4,	"a",	"kk",	NULL,    NULL,  aweib	},
{ "ibetarand",S(PRAND),	1,	"i",	"kkk",	ikbeta,  NULL,  NULL	},
{ "kbetarand",S(PRAND),	2,	"k",	"kkk",	NULL,    ikbeta,NULL	},
{ "abetarand",S(PRAND),	4,	"a",	"kkk",	NULL,    NULL,  abeta	},
{ "seed",     S(PRAND),	1,	"",	"i",	seedrand, NULL, NULL	},
{ "convolve", S(CONVOLVE), 5,	"mmmm", "aSo",  cvset,   NULL,  convolve},
{ "convle",   S(CONVOLVE), 5,	"mmmm", "aSo",  cvset,   NULL,  convolve},
{ "granule",  S(GRAINV4),  5,   "a",    "xiiiiiiiiikikiiivppppo", grainsetv4, NULL, graingenv4},
{ "cpsxpch",  S(XENH),  1,      "i",    "iiii",	cpsxpch, NULL,  NULL },
{ "cps2pch",  S(XENH),  1,      "i",    "ii",	cps2pch, NULL,  NULL },
{ "hrtfer",   S(HRTFER),5,	"aa",	"akkS",	hrtferxkSet, NULL, hrtferxk},
{ "sndwarp",  S(SNDWARP), 5,	"mm",	"xxxiiiiiii",sndwarpgetset, NULL, sndwarp},
{ "sndwarpst", S(SNDWARPST), 5, "mmmm","xxxiiiiiii",sndwarpstset,NULL,sndwarpst},
{ "tableseg", S(TABLESEG), 3,  "",	"iin",	tblesegset, ktableseg},
{ "tablexseg", S(TABLESEG), 3, "",	"iin",	tblesegset, ktablexseg},
{ "voscili",  S(VOSC),	7,     "a",	"kko",	voscset, NULL,  voscili},
{ "vpvoc",    S(VPVOC),	5,     "a",	"kkSo", vpvset,	NULL,   vpvoc},
{ "pvread",   S(PVREAD),3,     "kk",	"kSi",  pvreadset, pvread},
{ "pvcross",  S(PVCROSS),  5,  "a",	"kkSkko", pvcrossset, NULL, pvcross},
{ "pvbufread",S(PVBUFREAD), 3, "",	"kS",   pvbufreadset, pvbufread, NULL},
{ "pvinterp", S(PVINTERP), 5,  "a",  "kkSkkkkkk", pvinterpset, NULL, pvinterp},
{ "pvadd",    S(PVADD),	5,     "a",	"kkSiiop", pvaddset,	NULL,   pvadd},
{ "nlfilt",   S(NLFILT),5,     "a",	"akkkkk",nlfiltset, NULL, nlfilt},
{ "cross2",   S(CON),	5,     "a",	"aaiiik",Xsynthset, NULL, Xsynth},
{ "itablew",  S(TABLEW),1,     "",	"iiiooo", itablew, NULL, NULL},
{ "tablew",   S(TABLEW),7,     "",	"xxiooo",tblsetw,ktablew,tablew},
{ "tablewkt", S(TABLEW),7,     "",     "xxkooo",tblsetwkt,ktablewkt,tablewkt},
{ "itableng", S(TABLENG),1,    "i",	"i",	itableng, NULL,  NULL},
{ "tableng",  S(TABLENG),2,    "k",	"k",	NULL,	tableng, NULL},
{ "itablegpw",S(TABLENG),1,    "",	"i",	itablegpw, NULL,  NULL},
{ "tablegpw", S(TABLENG),2,    "",	"k",	NULL,	tablegpw, NULL},
{ "itablemix",S(TABLEMIX),1,   "",   "iiiiiiiii", itablemix, NULL, NULL},
{ "tablemix", S(TABLEMIX),2,   "",   "kkkkkkkkk",tablemixset, tablemix, NULL},
{ "itablecopy",S(TABLECOPY),1, "",	"ii", 	itablecopy, NULL, NULL},
{ "tablecopy", S(TABLECOPY),2, "",	"kk",   tablecopyset, tablecopy, NULL},
{ "tablera", S(TABLERA),5,     "a",	"kkk",	tableraset, NULL, tablera},
{ "tablewa", S(TABLEWA),5,     "k",	"kak",	tablewaset, NULL, tablewa},
{ "tablekt",  S(TABLE),	7,     "s",  "xkooo",tblsetkt,	ktablekt, tablekt },
{ "tableikt", S(TABLE),	7,     "s",  "xkooo",tblsetkt,	ktablikt, tablikt },
{ "zakinit", S(ZAKINIT), 1,    "",	"ii",	zakinit, NULL, 	NULL},
{ "zir",    S(ZKR),	1,     "i",	"i",	zir,	 NULL, 	NULL},
{ "zkr",    S(ZKR),	3,     "k",	"k",	zkset,   zkr,	NULL},
{ "ziw",    S(ZKW),	1,     "",	"ii",	ziw,	 NULL, 	NULL},
{ "zkw",    S(ZKW),	3,     "",	"kk",	zkset,   zkw,	NULL},
{ "ziwm",   S(ZKWM),	1,     "",	"iip",	ziwm,	 NULL, 	NULL},
{ "zkwm",   S(ZKWM),	3,     "",	"kkp",	zkset,   zkwm,	NULL},
{ "zkmod",  S(ZKMOD),	2,     "k",	"kk",	NULL,    zkmod,	NULL},
{ "zkcl",   S(ZKCL),	3,     "",	"kk",	zkset,   zkcl,	NULL},
{ "zar",    S(ZAR),	5,     "a",	"k",	zaset,   NULL, 	zar},
{ "zarg",   S(ZARG),	5,     "a",	"kk",	zaset,   NULL, 	zarg},
{ "zaw",    S(ZAW),	5,     "",	"ak",	zaset,   NULL, 	zaw},
{ "zawm",   S(ZAWM),	5,     "",	"akp",	zaset,   NULL, 	zawm},
{ "zamod",  S(ZAMOD),	4,     "a",	"ak",	NULL,    NULL,  zamod},
{ "zacl",   S(ZACL),	5,     "",	"kk",	zaset,   NULL, 	zacl},
{ "itimek", S(RDTIME), 	1,     "i",	"",	timek, 	 NULL,	NULL},
{ "itimes", S(RDTIME), 	1,     "i",	"",	timesr,  NULL,	NULL},
{ "timek",  S(RDTIME), 	2,     "k",	"",	NULL, 	 timek,	NULL},
{ "times",  S(RDTIME), 	2,     "k",	"",	NULL, 	 timesr,NULL},
{ "instimek", S(RDTIME), 3,    "k",	"",     instimset, instimek, NULL},
{ "instimes", S(RDTIME), 3,    "k",	"",     instimset, instimes, NULL},
{ "printk", S(PRINTK), 	3,     "",	"iko",	printkset, printk, NULL},
{ "printks",S(PRINTKS),	3,     "",	"Sikkkk",printksset,printks, NULL},
{ "printk2", S(PRINTK2),3,     "",	"ko",	printk2set, printk2, NULL},
{ "peakk",  S(PEAK),	2,     "k",	"k",	NULL,	 peakk,    NULL},
{ "peak",   S(PEAK),	4,     "k",	"a",	NULL, 	 NULL,     peaka},
{ "kport",  S(KPORT),	3,     "k",	"kko",	kporset, kport, NULL	},
{ "ktone",  S(KTONE),	3,     "k",	"kko",	ktonset, ktone, NULL	},
{ "katone", S(KTONE),	3,     "k",	"kko",	ktonset, katone, NULL	},
{ "kreson", S(KRESON),	3,     "k",	"kkkpo",krsnset, kreson, NULL	},
{ "kareson",S(KRESON),	3,     "k",	"kkkpo",krsnset, kareson, NULL	},
{ "ilimit", S(LIMIT),	1,     "i",	"iii",	klimit,  NULL, 	  NULL  },
{ "limit",  S(LIMIT),	7,     "s",	"xkk",	limitset, klimit, limit },
{ "iunirand", S(PRAND),	1,     "i",	"k",   	ikuniform, NULL,  NULL  },
{ "kunirand", S(PRAND),	2,     "k",	"k",	NULL,    ikuniform, NULL},
{ "aunirand", S(PRAND),	4,     "a",	"k",	NULL,    NULL, auniform },
{ "diskin",S(SOUNDINEW),5,  "mmmm",	"Skooo", newsndinset,NULL, soundinew},
{ "ion", S(OUT_ON),	1,	"", 	"iii",	iout_on, NULL, 	 NULL   },
{ "ioff", S(OUT_ON),	1,	"", 	"iii",	iout_off, NULL,    NULL },
{ "iondur",S(OUT_ON_DUR),3,	"", "iiii", iout_on_dur_set,iout_on_dur,NULL},
{ "iondur2",S(OUT_ON_DUR),3,	"", "iiii", iout_on_dur_set,iout_on_dur2,NULL},
{ "moscil",S(MOSCIL),	3,	"",	"kkkkk",moscil_set, moscil, NULL},
{ "kon",S(KOUT_ON),	3,  	"", "kkk", kvar_out_on_set,kvar_out_on,NULL},
{ "ioutc",S(OUT_CONTR),	1,	"",	"iiiii", out_controller, NULL, NULL},
{ "koutc",S(OUT_CONTR),	2,	"",	"kkkkk", NULL, out_controller, NULL},
{ "ioutc14",S(OUT_CONTR14),1,	"",	"iiiiii",out_controller14, NULL,NULL},
{ "koutc14",S(OUT_CONTR14),2,	"",	"kkkkkk",NULL, out_controller14, NULL},
{ "ioutpb",S(OUT_PB),	1,	"",	"iiii",  out_pitch_bend, NULL , NULL},
{ "koutpb",S(OUT_PB),	2,	"",	"kkkk",  NULL,  out_pitch_bend, NULL},
{ "ioutat",S(OUT_ATOUCH),1,	"",	"iiii",  out_aftertouch, NULL , NULL},
{ "koutat",S(OUT_ATOUCH),2,	"",	"kkkk",  NULL,  out_aftertouch, NULL},
{ "ioutpc",S(OUT_PCHG),	1,	"",	"iiii",  out_progchange, NULL , NULL},
{ "koutpc",S(OUT_PCHG),	2,	"",	"kkkk",  NULL,  out_progchange, NULL},
{ "ioutpat",S(OUT_POLYATOUCH),1,"",    "iiiii", out_poly_aftertouch, NULL,NULL},
{ "koutpat",S(OUT_POLYATOUCH),2,"",    "kkkkk", NULL, out_poly_aftertouch,NULL},
{ "release",S(REL),	3,	"k",	"", 	 release_set, release , NULL },
{ "xtratim",S(XTRADUR),	1,	"",	"i",  	 xtratim,    NULL,     NULL },
{ "mclock", S(MCLOCK),	3,	"",	"i",  	 mclock_set, mclock,   NULL },
{ "mrtmsg", S(XTRADUR),	1,	"",	"i",  	 mrtmsg,     NULL,     NULL },
{ "imidic7",S(MIDICTL2),1,      "i",    "iiio",  imidic7,    NULL,     NULL },
{ "midic7", S(MIDICTL2),3,      "k",    "ikko",  midic7set,  midic7,   NULL },
{ "imidic14", S(MIDICTL3), 1,	"i",    "iiiio", imidic14,   NULL,     NULL },
{ "midic14", S(MIDICTL3), 3,    "k",    "iikko", midic14set, midic14,  NULL },
{ "imidic21", S(MIDICTL4),1,    "i",    "iiiiio",imidic21,   NULL,     NULL },
{ "midic21", S(MIDICTL4), 3,    "k",    "iiikko",midic21set, midic21,  NULL },
{ "ictrl7", S(CTRL7), 1,        "i",    "iiiio", ictrl7,     NULL,     NULL },
{ "ctrl7", S(CTRL7),  3,	"k",    "iikko", ctrl7set,   ctrl7,    NULL },
{ "ictrl14", S(CTRL14),1,	"i",    "iiiiio",ictrl14,    NULL,     NULL },
{ "ctrl14", S(CTRL14), 3,	"k",    "iiikko",ctrl14set,  ctrl14,   NULL },
{ "ictrl21", S(CTRL21),1,	"i",    "iiiiiio", ictrl21,  NULL,     NULL },
{ "ctrl21", S(CTRL21), 3,	"k",    "iiiikko", ctrl21set, ctrl21,  NULL },
{ "initc7", S(INITC7), 1,       "",     "iii",   initc7,     NULL,     NULL },
{ "initc14", S(INITC14), 1,     "",     "iiii",  initc14,    NULL,     NULL },
{ "initc21", S(INITC21), 1,     "",     "iiiii", initc21,    NULL,     NULL },
{ "repluck", S(WGPLUCK2), 5,    "a",    "ikikka",wgpsetin,   NULL,     wgpluck},
{ "wgpluck2",S(WGPLUCK2), 5,    "a",    "ikikk", wgpset,     NULL,     wgpluck},
{ "wgpluck", S(WGPLUCK), 5,     "a",   "iikiiia",pluckPluck,NULL,pluckGetSamps},
{ "filter2",  S(FILTER), 5,     "a",    "aiim",  ifilter,    NULL,     afilter},
{ "kfilter2", S(FILTER), 3,     "k",    "kiim",  ifilter,    kfilter,  NULL},
{ "zfilter2", S(ZFILTER), 5,    "a",    "akkiim", izfilter,  NULL,    azfilter},
{ "dam",     S(DAM),     5,     "a",    "akiiii",daminit,    NULL,     dam  },
{ "wgclar",  S(CLARIN),  5,     "a",    "kkkiikkkio",clarinset,NULL,   clarin},
{ "wgflute", S(FLUTE),   5,     "a",    "kkkiikkkiovv",fluteset,NULL,  flute},
{ "wgbow",   S(BOWED),   5,     "a",    "kkkkkkio", bowedset, NULL,    bowed},
{ "wgbrass", S(BRASS),   5,     "a",    "kkkikkio", brassset, NULL,     brass},
{ "marimba", S(MARIMBA), 5,     "a",    "kkiiikkii", marimbaset, NULL, marimba},
{ "vibes", S(VIBRAPHN),  5,     "a",    "kkiiikkii", vibraphnset,NULL,vibraphn},
{ "agogobel",S(VIBRAPHN),5,     "a",    "kkiiikki", agogobelset,NULL, agogobel},
{ "shaker",  S(SHAKER),  5,     "a",    "kkkkkko", shakerset, NULL,   shaker},
{ "fmbell",  S(FM4OP),   5,     "a",    "kkkkkkiiiii",tubebellset,NULL,tubebell},
{ "fmrhode", S(FM4OP),   5,     "a",    "kkkkkkiiiii",rhodeset,NULL,  tubebell},
{ "fmwurlie", S(FM4OP),  5,     "a",    "kkkkkkiiiii",wurleyset, NULL, wurley},
{ "fmmetal", S(FM4OP),   5,     "a",    "kkkkkkiiiii",heavymetset, NULL, heavymet},
{ "fmb3", S(FM4OP),      5,     "a",    "kkkkkkiiiii", b3set, NULL, hammondB3},
{ "fmvoice", S(FM4OPV),  5,     "a",    "kkkkkkiiiii",FMVoiceset, NULL, FMVoice},
{ "fmpercfl", S(FM4OP),  5,     "a",    "kkkkkkiiiii",percfluteset, NULL, percflute},
{ "moog", S(MOOG1),      5,     "a",    "kkkkkkiii", Moog1set, NULL, Moog1},
{ "voice", S(VOICF),	 5,     "a",    "kkkkkkii", voicformset, NULL, voicform},
{ "mandol", S(MANDOL),	 5,     "a",    "kkkkkkio", mandolinset, NULL, mandolin},
{ "locsig", S(LOCSIG),   5,  "mmmm",    "akkk",     locsigset,NULL, locsig},
{ "locsend", S(LOCSEND), 5,  "mmmm",    "",         locsendset, NULL, locsend},
{ "space", S(SPACE),     5,  "aaaa",    "aikkoo",   spaceset,NULL,space},
{ "spsend", S(SPSEND),   5,  "aaaa",    "",         spsendset, NULL, spsend},
{ "spdist", S(SPDIST),   3,     "k",    "ikoo",     spdistset, spdist, NULL},
{ "dcblock", S(DCBlocker),5,    "a",    "ao",       dcblockrset,NULL,dcblockr}
};

OENTRY *oplstend = opcodlst + sizeof(opcodlst)/sizeof(OENTRY);
