1 /* 2 entry1.c: 3 4 Copyright (C) 1991 Barry Vercoe, John ffitch 5 6 This file is part of Csound. 7 8 The Csound Library is free software; you can redistribute it 9 and/or modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 2.1 of the License, or (at your option) any later version. 12 13 Csound is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with Csound; if not, write to the Free Software 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 21 02110-1301 USA 22 */ 23 24 #include "entry1.h" /* ENTRY1.C */ 25 #include "interlocks.h" 26 27 /* thread vals, where isub=1, ksub=2: 28 0 = 1 OR 2 (B out only) 29 1 = 1 30 2 = 2 31 3 = 1 AND 2 32 */ 33 34 /* inarg types include the following: 35 36 i irate scalar 37 k krate scalar 38 a arate vector 39 f frequency variable 40 w spectral variable 41 x krate scalar or arate vector 42 S String 43 T String or i-rate 44 U String or i/k-rate 45 B Boolean k-rate 46 b Boolean i-rate; internally generated as required 47 l Label 48 . required arg of any-type 49 and codes 50 ? optional arg of any-type 51 m begins an indef list of iargs (any count) 52 M begins an indef list of args (any count/rate i,k,a) 53 N begins an indef list of args (any count/rate i,k,a,S) 54 o optional i-rate, defaulting to 0 55 p " " 1 56 q " " 10 57 v " " .5 58 j " " -1 59 h " " 127 60 O optional k-rate, defaulting to 0 61 J " " -1 62 V " " .5 63 P " " 1 64 W begins indef list of Strings (any count) 65 y begins indef list of aargs (any count) 66 z begins indef list of kargs (any count) 67 Z begins alternating kakaka...list (any count) */ 68 69 /* outarg types include: 70 i, k, a, S as above 71 * multiple out args of any-type 72 m multiple out aargs 73 z multiple out kargs 74 I multiple out irate (not implemented yet) 75 s deprecated (use a or k as required) 76 X multiple args (a, k, or i-rate) IV - Sep 1 2002 77 N multiple args (a, k, i, or S-rate) 78 F multiple args (f-rate)# 79 */ 80 81 82 OENTRY opcodlst_1[] = { 83 /* opcode dspace flags thread outarg inargs isub ksub asub */ 84 { "", 0, 0, 0, "", "", NULL, NULL, NULL, NULL }, 85 { "instr", 0, 0, 0, "", "", NULL, NULL, NULL, NULL }, 86 { "endin", 0, 0, 0, "", "", NULL, NULL, NULL, NULL }, 87 /* IV - Sep 8 2002 */ 88 { "opcode", 0, 0, 0, "", "", NULL, NULL, NULL, NULL }, 89 { "endop", 0, 0, 0, "", "", NULL, NULL, NULL, NULL }, 90 { "$label", S(LBLBLK), 0,0, "", "", NULL, NULL, NULL, NULL }, 91 { "pset", S(PVSET), 0,0, "", "m", NULL, NULL, NULL, NULL }, 92 93 /* IV - Sep 8 2002 - added entries for user defined opcodes, xin, xout */ 94 /* and setksmps */ 95 { "##userOpcode", S(UOPCODE),0, 7, "", "", useropcdset, useropcd, useropcd, NULL }, 96 /* IV - Sep 10 2002: removed perf time routines of xin and xout */ 97 { "xin", S(XIN_MAX),0, 1, "****************", "", xinset, NULL, NULL, NULL }, 98 /* { "xin.64", S(XIN_HIGH),0, 1, 99 "****************************************************************", "", 100 xinset, NULL, NULL }, 101 { "##xin256", S(XIN_MAX),0, 1, 102 "****************************************************************" 103 "****************************************************************" 104 "****************************************************************" 105 "****************************************************************", "", 106 xinset, NULL, NULL },*/ 107 { "xout", S(XOUT_MAX),0, 1, "", "*", xoutset, NULL, NULL, NULL }, 108 { "setksmps", S(SETKSMPS),0, 1, "", "i", setksmpsset, NULL, NULL }, 109 { "ctrlinit",S(CTLINIT),0,1, "", "im", ctrlinit, NULL, NULL, NULL}, 110 { "massign",S(MASSIGN), 0,1, "", "iip",massign_p, NULL, NULL, NULL}, 111 { "massign.iS",S(MASSIGNS), 0,1, "", "iSp",massign_S, NULL, NULL, NULL}, 112 { "turnon", S(TURNON), 0,1, "", "io", turnon, NULL, NULL, NULL}, 113 { "turnon.S", S(TURNON), 0,1, "", "So", turnon_S, NULL, NULL, NULL}, 114 { "remoteport", S(REMOTEPORT), 0,1, "", "i", remoteport, NULL, NULL, NULL}, 115 { "insremot",S(INSREMOT),0,1, "", "SSm",insremot, NULL, NULL, NULL}, 116 { "midremot",S(MIDREMOT),0,1, "", "SSm",midremot, NULL, NULL, NULL}, 117 { "insglobal",S(INSGLOBAL),0,1, "", "Sm", insglobal, NULL, NULL, NULL}, 118 { "midglobal",S(MIDGLOBAL),0,1, "", "Sm", midglobal, NULL, NULL, NULL}, 119 { "ihold", S(LINK),0, 1, "", "", ihold, NULL, NULL, NULL }, 120 { "turnoff",S(LINK),0, 2, "", "", NULL, turnoff, NULL, NULL }, 121 { "=.S", S(STRCPY_OP),0, 1, "S", "S", 122 (SUBR) strcpy_opcode_S, NULL, (SUBR) NULL, NULL }, 123 { "#=.S", S(STRCPY_OP),0, 2, "S", "S", 124 NULL, (SUBR) strcpy_opcode_S, (SUBR) NULL, NULL }, 125 { "=.T", S(STRGET_OP),0, 1, "S", "i", 126 (SUBR) strcpy_opcode_p, (SUBR) NULL, (SUBR) NULL, NULL }, 127 { "=.r", S(ASSIGN),0, 1, "r", "i", rassign, NULL, NULL, NULL }, 128 { "=.i", S(ASSIGNM),0, 1, "IIIIIIIIIIIIIIIIIIIIIIII", "m", 129 minit, NULL, NULL, NULL }, 130 { "=.k", S(ASSIGNM),0, 2, "zzzzzzzzzzzzzzzzzzzzzzzz", "z", 131 NULL, minit, NULL, NULL }, 132 { "=.a", S(ASSIGN),0, 2, "a", "a", NULL, gaassign, NULL }, 133 { "=.l", S(ASSIGN),0, 2, "a", "a", NULL, laassign, NULL }, 134 { "=.up", S(UPSAMP),0, 2, "a", "k", NULL, (SUBR)upsamp, NULL }, 135 { "=.down", S(DOWNSAMP),0, 3, "k", "ao", (SUBR)downset,(SUBR)downsamp }, 136 // { "=.t", S(ASSIGNT),0, 2, "t", "kk", NULL, tassign, NULL }, 137 { "init.S", S(STRCPY_OP),0, 1, "S", "S", (SUBR) strcpy_opcode_S }, 138 { "init.Si", S(STRCPY_OP),0, 1, "S", "i", (SUBR) strcpy_opcode_p }, 139 { "init.i", S(ASSIGNM),0, 1, "IIIIIIIIIIIIIIIIIIIIIIII", "m", minit }, 140 { "init.k", S(ASSIGNM),0, 1, "zzzzzzzzzzzzzzzzzzzzzzzz", "m", minit }, 141 { "init.a", S(ASSIGNM),0, 1, "mmmmmmmmmmmmmmmmmmmmmmmm", "m", mainit }, 142 { ">", S(RELAT),0, 0, "b", "ii", gt, gt }, 143 { ">.0", S(RELAT),0, 0, "B", "kk", gt, gt }, 144 { ">=", S(RELAT),0, 0, "b", "ii", ge, ge }, 145 { ">=.0", S(RELAT),0, 0, "B", "kk", ge, ge }, 146 { "<", S(RELAT),0, 0, "b", "ii", lt, lt }, 147 { "<.0", S(RELAT),0, 0, "B", "kk", lt, lt }, 148 { "<=", S(RELAT),0, 0, "b", "ii", le, le }, 149 { "<=.0", S(RELAT),0, 0, "B", "kk", le, le }, 150 { "==", S(RELAT),0, 0, "b", "ii", eq, eq }, 151 { "==.0", S(RELAT),0, 0, "B", "kk", eq, eq }, 152 { "!=", S(RELAT),0, 0, "b", "ii", ne, ne }, 153 { "!=.0", S(RELAT),0, 0, "B", "kk", ne, ne }, 154 { "!", S(LOGCL),0, 0, "b", "b", b_not, b_not }, 155 { "!.0", S(LOGCL),0, 0, "B", "B", b_not, b_not }, 156 { "&&", S(LOGCL),0, 0, "b", "bb", and, and }, 157 { "&&.0", S(LOGCL),0, 0, "B", "BB", and, and }, 158 { "||", S(LOGCL),0, 0, "b", "bb", or, or }, 159 { "||.0", S(LOGCL),0, 0, "B", "BB", or, or }, 160 { ":cond.i", S(CONVAL),0, 1, "i", "bii", conval }, 161 { ":cond.k", S(CONVAL),0, 2, "k", "Bkk", NULL, conval }, 162 { ":cond.a", S(CONVAL),0, 2, "a", "Bxx", NULL, aconval }, 163 { ":cond.s", S(CONVAL),0, 1, "S", "bSS", conval, NULL }, 164 { ":cond.S", S(CONVAL),0, 3, "S", "BSS", conval, conval }, 165 { "##add.ii", S(AOP),0, 1, "i", "ii", addkk }, 166 { "##sub.ii", S(AOP),0, 1, "i", "ii", subkk }, 167 { "##mul.ii", S(AOP),0, 1, "i", "ii", mulkk }, 168 { "##div.ii", S(AOP),0, 1, "i", "ii", divkk }, 169 { "##mod.ii", S(AOP),0, 1, "i", "ii", modkk }, 170 { "##add.kk", S(AOP),0, 2, "k", "kk", NULL, addkk }, 171 { "##sub.kk", S(AOP),0, 2, "k", "kk", NULL, subkk }, 172 { "##mul.kk", S(AOP),0, 2, "k", "kk", NULL, mulkk }, 173 { "##div.kk", S(AOP),0, 2, "k", "kk", NULL, divkk }, 174 { "##mod.kk", S(AOP),0, 2, "k", "kk", NULL, modkk }, 175 { "##add.ka", S(AOP),0, 2, "a", "ka", NULL, addka }, 176 { "##sub.ka", S(AOP),0, 2, "a", "ka", NULL, subka }, 177 { "##mul.ka", S(AOP),0, 2, "a", "ka", NULL, mulka }, 178 { "##div.ka", S(AOP),0, 2, "a", "ka", NULL, divka }, 179 { "##mod.ka", S(AOP),0, 2, "a", "ka", NULL, modka }, 180 { "##add.ak", S(AOP),0, 2, "a", "ak", NULL, addak }, 181 { "##sub.ak", S(AOP),0, 2, "a", "ak", NULL, subak }, 182 { "##mul.ak", S(AOP),0, 2, "a", "ak", NULL, mulak }, 183 { "##div.ak", S(AOP),0, 2, "a", "ak", NULL, divak }, 184 { "##mod.ak", S(AOP),0, 2, "a", "ak", NULL, modak }, 185 { "##add.aa", S(AOP),0, 2, "a", "aa", NULL, addaa }, 186 { "##sub.aa", S(AOP),0, 2, "a", "aa", NULL, subaa }, 187 { "##mul.aa", S(AOP),0, 2, "a", "aa", NULL, mulaa }, 188 { "##div.aa", S(AOP),0, 2, "a", "aa", NULL, divaa }, 189 { "##mod.aa", S(AOP),0, 2, "a", "aa", NULL, modaa }, 190 { "##addin.i", S(ASSIGN),0, 1, "i", "i", addin, NULL }, 191 { "##addin.k", S(ASSIGN),0, 2, "k", "k", NULL, addin }, 192 { "##addin.K", S(ASSIGN),0, 2, "a", "k", NULL, addinak }, 193 { "##addin.a", S(ASSIGN),0, 2, "a", "a", NULL, addina }, 194 { "##subin.i", S(ASSIGN),0, 1, "i", "i", subin, NULL }, 195 { "##subin.k", S(ASSIGN),0, 2, "k", "k", NULL, subin }, 196 { "##subin.K", S(ASSIGN),0, 2, "a", "k", NULL, subinak }, 197 { "##subin.a", S(ASSIGN),0, 2, "a", "a", NULL, subina }, 198 //{ "divz", 0xfffc }, 199 { "divz.ii", S(DIVZ),0, 1, "i", "iii", divzkk, NULL, NULL }, 200 { "divz.kk", S(DIVZ),0, 2, "k", "kkk", NULL, divzkk, NULL }, 201 { "divz.ak", S(DIVZ),0, 2, "a", "akk", NULL, divzak }, 202 { "divz.ka", S(DIVZ),0, 2, "a", "kak", NULL, divzka }, 203 { "divz.aa", S(DIVZ),0, 2, "a", "aak", NULL, divzaa }, 204 { "int.i", S(EVAL),0, 1, "i", "i", int1 }, 205 { "frac.i", S(EVAL),0, 1, "i", "i", frac1 }, 206 { "round.i",S(EVAL),0, 1, "i", "i", int1_round }, 207 { "floor.i",S(EVAL),0, 1, "i", "i", int1_floor }, 208 { "ceil.i", S(EVAL),0, 1, "i", "i", int1_ceil }, 209 { "rndseed", S(EVAL),0, 1, "", "i", rnd1seed }, 210 { "rnd.i", S(EVAL),0, 1, "i", "i", rnd1 }, 211 { "birnd.i",S(EVAL),0, 1, "i", "i", birnd1 }, 212 { "abs.i", S(EVAL),0, 1, "i", "i", abs1 }, 213 { "exp.i", S(EVAL),0, 1, "i", "i", exp01 }, 214 { "log.i", S(EVAL),0, 1, "i", "i", log01 }, 215 { "sqrt.i", S(EVAL),0, 1, "i", "i", sqrt1 }, 216 { "sin.i", S(EVAL),0, 1, "i", "i", sin1 }, 217 { "cos.i", S(EVAL),0, 1, "i", "i", cos1 }, 218 { "tan.i", S(EVAL),0, 1, "i", "i", tan1 }, 219 { "qinf.i", S(EVAL),0, 1, "i", "i", is_inf }, 220 { "qnan.i", S(EVAL),0, 1, "i", "i", is_NaN }, 221 { "sininv.i", S(EVAL),0, 1, "i", "i", asin1 }, 222 { "cosinv.i", S(EVAL),0, 1, "i", "i", acos1 }, 223 { "taninv.i", S(EVAL),0, 1, "i", "i", atan1 }, 224 { "taninv2.i",S(AOP),0, 1, "i", "ii", atan21 }, 225 { "log10.i",S(EVAL),0, 1, "i", "i", log101 }, 226 { "log2.i", S(EVAL),0, 1, "i", "i", log21 }, 227 { "sinh.i", S(EVAL),0, 1, "i", "i", sinh1 }, 228 { "cosh.i", S(EVAL),0, 1, "i", "i", cosh1 }, 229 { "tanh.i", S(EVAL),0, 1, "i", "i", tanh1 }, 230 { "int.k", S(EVAL),0, 2, "k", "k", NULL, int1 }, 231 { "frac.k", S(EVAL),0, 2, "k", "k", NULL, frac1 }, 232 { "round.k",S(EVAL),0, 2, "k", "k", NULL, int1_round }, 233 { "floor.k",S(EVAL),0, 2, "k", "k", NULL, int1_floor }, 234 { "ceil.k", S(EVAL),0, 2, "k", "k", NULL, int1_ceil }, 235 { "rnd.k", S(EVAL),0, 2, "k", "k", NULL, rnd1 }, 236 { "birnd.k",S(EVAL),0, 2, "k", "k", NULL, birnd1 }, 237 { "abs.k", S(EVAL),0, 2, "k", "k", NULL, abs1 }, 238 { "exp.k", S(EVAL),0, 2, "k", "k", NULL, exp01 }, 239 { "log.k", S(EVAL),0, 2, "k", "k", NULL, log01 }, 240 { "sqrt.k", S(EVAL),0, 2, "k", "k", NULL, sqrt1 }, 241 { "sin.k", S(EVAL),0, 2, "k", "k", NULL, sin1 }, 242 { "cos.k", S(EVAL),0, 2, "k", "k", NULL, cos1 }, 243 { "tan.k", S(EVAL),0, 2, "k", "k", NULL, tan1 }, 244 { "qinf.k", S(EVAL),0, 2, "k", "k", NULL, is_inf }, 245 { "qnan.k", S(EVAL),0, 2, "k", "k", NULL, is_NaN }, 246 { "sininv.k", S(EVAL),0, 2, "k", "k", NULL, asin1 }, 247 { "cosinv.k", S(EVAL),0, 2, "k", "k", NULL, acos1 }, 248 { "taninv.k", S(EVAL),0, 2, "k", "k", NULL, atan1 }, 249 { "taninv2.k",S(AOP),0, 2, "k", "kk", NULL, atan21 }, 250 { "sinh.k", S(EVAL),0, 2, "k", "k", NULL, sinh1 }, 251 { "cosh.k", S(EVAL),0, 2, "k", "k", NULL, cosh1 }, 252 { "tanh.k", S(EVAL),0, 2, "k", "k", NULL, tanh1 }, 253 { "log10.k",S(EVAL),0, 2, "k", "k", NULL, log101 }, 254 { "log2.k", S(EVAL),0, 2, "k", "k", NULL, log21 }, 255 { "int.a", S(EVAL),0, 2, "a", "a", NULL, int1a }, 256 { "frac.a", S(EVAL),0, 2, "a", "a", NULL, frac1a }, 257 { "round.a",S(EVAL),0, 2, "a", "a", NULL, int1a_round }, 258 { "floor.a",S(EVAL),0, 2, "a", "a", NULL, int1a_floor }, 259 { "ceil.a", S(EVAL),0, 2, "a", "a", NULL, int1a_ceil }, 260 { "abs.a", S(EVAL),0, 2, "a", "a", NULL, absa }, 261 { "exp.a", S(EVAL),0, 2, "a", "a", NULL, expa }, 262 { "log.a", S(EVAL),0, 2, "a", "a", NULL, loga }, 263 { "sqrt.a", S(EVAL),0, 2, "a", "a", NULL, sqrta }, 264 { "sin.a", S(EVAL),0, 2, "a", "a", NULL, sina }, 265 { "cos.a", S(EVAL),0, 2, "a", "a", NULL, cosa }, 266 { "tan.a", S(EVAL),0, 2, "a", "a", NULL, tana }, 267 { "qinf.a", S(EVAL),0, 2, "a", "a", NULL, is_infa }, 268 { "qnan.a", S(EVAL),0, 2, "a", "a", NULL, is_NaNa }, 269 { "sininv.a", S(EVAL),0, 2, "a", "a", NULL, asina }, 270 { "cosinv.a", S(EVAL),0, 2, "a", "a", NULL, acosa }, 271 { "taninv.a", S(EVAL),0, 2, "a", "a", NULL, atana }, 272 { "taninv2.a",S(AOP),0, 2, "a", "aa", NULL, atan2aa }, 273 { "sinh.a", S(EVAL),0, 2, "a", "a", NULL, sinha }, 274 { "cosh.a", S(EVAL),0, 2, "a", "a", NULL, cosha }, 275 { "tanh.a", S(EVAL),0, 2, "a", "a", NULL, tanha }, 276 { "log10.a",S(EVAL),0, 2, "a", "a", NULL, log10a }, 277 { "log2.a", S(EVAL),0, 2, "a", "a", NULL, log2a }, 278 { "ampdb.a",S(EVAL),0, 2, "a", "a", NULL, aampdb }, 279 { "ampdb.i",S(EVAL),0, 1, "i", "i", ampdb }, 280 { "ampdb.k",S(EVAL),0, 2, "k", "k", NULL, ampdb }, 281 { "ampdbfs.a",S(EVAL),0, 2, "a", "a", NULL, aampdbfs }, 282 { "ampdbfs.i",S(EVAL),0, 1, "i", "i", ampdbfs }, 283 { "ampdbfs.k",S(EVAL),0, 2, "k", "k", NULL, ampdbfs }, 284 { "dbamp.i",S(EVAL),0, 1, "i", "i", dbamp }, 285 { "dbamp.k",S(EVAL),0, 2, "k", "k", NULL, dbamp }, 286 { "dbfsamp.i",S(EVAL),0, 1, "i", "i", dbfsamp }, 287 { "dbfsamp.k",S(EVAL),0, 2, "k", "k", NULL, dbfsamp }, 288 { "rtclock.i",S(EVAL),0, 1, "i", "", rtclock }, 289 { "rtclock.k",S(EVAL),0, 2, "k", "", NULL, rtclock }, 290 { "ftlen.i",S(EVAL),0, 1, "i", "i", ftlen }, 291 { "ftsr.i",S(EVAL),0, 1, "i", "i", ftsr }, 292 { "ftlptim.i",S(EVAL),0, 1, "i", "i", ftlptim }, 293 { "ftchnls.i",S(EVAL),0, 1, "i", "i", ftchnls }, 294 { "ftcps.i",S(EVAL),0, 1, "i", "i", ftcps }, 295 { "i.i", S(ASSIGN),0, 1, "i", "i", assign }, 296 { "i.k", S(ASSIGN),0, 1, "i", "k", assign }, 297 { "k.i", S(ASSIGN),0, 1, "k", "i", assign }, 298 { "k.a", S(DOWNSAMP),0, 3, "k", "ao", (SUBR)downset,(SUBR)downsamp }, 299 { "cpsoct.i",S(EVAL),0, 1, "i", "i", cpsoct }, 300 { "octpch.i",S(EVAL),0, 1, "i", "i", octpch }, 301 { "cpspch.i",S(EVAL),0, 1, "i", "i", cpspch }, 302 { "pchoct.i",S(EVAL),0, 1, "i", "i", pchoct }, 303 { "octcps.i",S(EVAL),0, 1, "i", "i", octcps }, 304 { "cpsoct.k",S(EVAL),0, 2, "k", "k", NULL, cpsoct }, 305 { "octpch.k",S(EVAL),0, 2, "k", "k", NULL, octpch }, 306 { "cpspch.k",S(EVAL),0, 2, "k", "k", NULL, cpspch }, 307 { "pchoct.k",S(EVAL),0, 2, "k", "k", NULL, pchoct }, 308 { "octcps.k",S(EVAL),0, 2, "k", "k", NULL, octcps }, 309 { "cpsoct.a",S(EVAL),0, 2, "a", "a", NULL, acpsoct }, 310 { "cpsmidinn.i",S(EVAL),0,1, "i", "i", cpsmidinn }, 311 { "octmidinn.i",S(EVAL),0,1, "i", "i", octmidinn }, 312 { "pchmidinn.i",S(EVAL),0,1, "i", "i", pchmidinn }, 313 { "cpsmidinn.k",S(EVAL),0,2, "k", "k", NULL, cpsmidinn }, 314 { "octmidinn.k",S(EVAL),0,2, "k", "k", NULL, octmidinn }, 315 { "pchmidinn.k",S(EVAL),0,2, "k", "k", NULL, pchmidinn }, 316 { "notnum", S(MIDIKMB),0, 1, "i", "", notnum }, 317 { "veloc", S(MIDIMAP),0, 1, "i", "oh", veloc }, 318 { "pchmidi",S(MIDIKMB),0, 1, "i", "", pchmidi }, 319 { "octmidi",S(MIDIKMB),0, 1, "i", "", octmidi }, 320 { "cpsmidi",S(MIDIKMB),0, 1, "i", "", cpsmidi }, 321 { "pchmidib.i",S(MIDIKMB),0,1, "i", "o", pchmidib_i }, 322 { "octmidib.i",S(MIDIKMB),0,1, "i", "o", octmidib_i }, 323 { "cpsmidib.i",S(MIDIKMB),0,1, "i", "o", icpsmidib_i }, 324 { "pchmidib.k",S(MIDIKMB),0,3, "k", "o", midibset, pchmidib }, 325 { "octmidib.k",S(MIDIKMB),0,3, "k", "o", midibset, octmidib }, 326 { "cpsmidib.k",S(MIDIKMB),0,3, "k", "o", midibset, icpsmidib }, 327 { "ampmidi",S(MIDIAMP),0, 1, "i", "io", ampmidi }, 328 { "aftouch",S(MIDIKMAP),0, 3, "k", "oh", aftset, aftouch }, 329 { "pchbend.i",S(MIDIMAP),0,1, "i", "jp", ipchbend }, 330 { "pchbend.k",S(MIDIKMAP),0,3, "k", "jp", kbndset,kpchbend }, 331 { "midictrl.i",S(MIDICTL),0,1, "i", "ioh", imidictl }, 332 { "midictrl.k",S(MIDICTL),0,3, "k", "ioh", mctlset, midictl }, 333 { "polyaft.i",S(MIDICTL),0,1, "i", "ioh", imidiaft }, 334 { "polyaft.k",S(MIDICTL),0,3, "k", "ioh", maftset, midiaft }, 335 { "chanctrl.i",S(CHANCTL),0,1, "i", "iioh", ichanctl }, 336 { "chanctrl.k",S(CHANCTL),0,3, "k", "iioh", chctlset,chanctl }, 337 { "line", S(LINE),0, 3, "k", "iii", linset, kline, NULL }, 338 { "line.a", S(LINE),0, 3, "a", "iii", linset, aline }, 339 { "expon", S(EXPON),0, 3, "k", "iii", expset, kexpon, NULL }, 340 { "expon.a", S(EXPON),0, 3, "a", "iii", expset, expon }, 341 { "cosseg", S(COSSEG),0, 3, "k", "iim", csgset, kosseg, NULL }, 342 { "cosseg.a", S(COSSEG),0, 3, "a", "iim", csgset, cosseg }, 343 { "cossegb", S(COSSEG),0, 3, "k", "iim", csgset_bkpt, kosseg, NULL }, 344 { "cossegb.a", S(COSSEG),0, 3, "a", "iim", csgset_bkpt, cosseg }, 345 { "cossegr", S(COSSEG),0, 3, "k", "iim", csgrset, kcssegr, NULL }, 346 { "cossegr.a", S(COSSEG),0, 3, "a", "iim", csgrset, cossegr }, 347 { "linseg", S(LINSEG),0, 3, "k", "iim", lsgset, klnseg, NULL }, 348 { "linseg.a", S(LINSEG),0, 3, "a", "iim", lsgset, linseg }, 349 { "linsegb", S(LINSEG),0, 3, "k", "iim", lsgset_bkpt, klnseg, NULL }, 350 { "linsegb.a", S(LINSEG),0, 3, "a", "iim", lsgset_bkpt, linseg }, 351 { "linsegr",S(LINSEG),0, 3, "k", "iim", lsgrset,klnsegr,NULL }, 352 { "linsegr.a",S(LINSEG),0, 3, "a", "iim", lsgrset,linsegr }, 353 { "expseg", S(EXXPSEG),0, 3, "k", "iim", xsgset, kxpseg, NULL }, 354 { "expseg.a", S(EXXPSEG),0, 3, "a", "iim", xsgset, expseg }, 355 { "expsegb", S(EXXPSEG),0, 3, "k", "iim", xsgset_bkpt, kxpseg, NULL }, 356 { "expsegb.a", S(EXXPSEG),0, 3, "a", "iim", xsgset_bkpt, expseg }, 357 { "expsega",S(EXPSEG2),0, 3, "a", "iim", xsgset2, expseg2 }, 358 { "expsegba",S(EXPSEG2),0, 3, "a", "iim", xsgset2b, expseg2 }, 359 { "expsegr",S(EXPSEG),0, 3, "k", "iim", xsgrset,kxpsegr,NULL }, 360 { "expsegr.a",S(EXPSEG),0, 3, "a", "iim", xsgrset,expsegr }, 361 { "linen", S(LINEN),0, 3, "k", "kiii", lnnset, klinen, NULL }, 362 { "linen.a", S(LINEN),0, 3, "a", "aiii", alnnset, linen }, 363 { "linen.x", S(LINEN),0, 3, "a", "kiii", alnnset, linen }, 364 { "linenr", S(LINENR),0, 3, "k", "kiii", lnrset, klinenr,NULL }, 365 { "linenr.a", S(LINENR),0, 3, "a", "aiii", alnrset,linenr }, 366 { "linenr.x", S(LINENR),0, 3, "a", "kiii", alnrset,linenr }, 367 { "envlpx", S(ENVLPX), TR, 3, "k","kiiiiiio", evxset, knvlpx, NULL }, 368 { "envlpxr", S(ENVLPR),TR, 3, "k","kiiiiioo", evrset, knvlpxr, NULL }, 369 { "envlpx.a", S(ENVLPX), TR, 3, "a","aiiiiiio", aevxset,envlpx }, 370 { "envlpxr.a", S(ENVLPR),TR, 3, "a","aiiiiioo", aevrset,envlpxr }, 371 { "envlpx.x", S(ENVLPX), TR, 3, "a","kiiiiiio", aevxset,envlpx }, 372 { "envlpxr.x", S(ENVLPR),TR, 3, "a","kiiiiioo", aevrset,envlpxr }, 373 { "phasor", S(PHSOR),0, 3, "a", "xo", phsset, phsor }, 374 { "phasor.k", S(PHSOR),0, 3, "k", "ko", phsset, kphsor, NULL }, 375 { "ephasor", S(EPHSOR), 0, 3, "aa", "xko", ephsset, ephsor }, 376 { "signum.i", S(ASSIGN), 0, 1, "i", "i", signum, NULL, NULL }, 377 { "signum.k", S(ASSIGN), 0, 3, "k", "k", signum, signum, NULL }, 378 { "signum.a", S(ASSIGN), 0, 2, "a", "a", NULL, asignum }, 379 { "table.i", S(TABL),TR, 1, "i", "iiooo",(SUBR)tabler_init }, 380 { "table.k", S(TABL),TR, 3, "k", "xiooo",(SUBR)tabl_setup, 381 (SUBR)tabler_kontrol }, 382 { "table.a", S(TABL),TR, 3, "a", "xiooo",(SUBR)tabl_setup, 383 (SUBR)tabler_audio }, 384 { "tablei.i", S(TABL),TR, 1, "i", "iiooo",(SUBR)tableir_init }, 385 { "tablei.k", S(TABL),TR, 3, "k", "xiooo",(SUBR)tabl_setup, 386 (SUBR)tableir_kontrol }, 387 { "tablei.a", S(TABL),TR, 3, "a", "xiooo",(SUBR)tabl_setup, 388 (SUBR)tableir_audio }, 389 { "table3.i", S(TABL),TR, 1, "i", "iiooo",(SUBR)table3r_init }, 390 { "table3.k", S(TABL),TR, 3, "k", "xiooo",(SUBR)tabl_setup, 391 (SUBR)table3r_kontrol }, 392 { "table3.a", S(TABL),TR, 3, "a", "xiooo",(SUBR)tabl_setup, 393 (SUBR)table3r_audio }, 394 { "ptable.i", S(TABLE),TR|_QQ, 1,"i", "iiooo",(SUBR)tabler_init }, 395 { "ptable.k", S(TABLE),TR|_QQ, 3, "k", "xiooo",(SUBR)tabl_setup, 396 (SUBR)tabler_kontrol }, 397 { "ptable.a", S(TABLE),TR|_QQ, 3, "a", "xiooo",(SUBR)tabl_setup, 398 (SUBR)tabler_audio }, 399 { "ptablei.i", S(TABLE),TR|_QQ, 1,"i", "iiooo",(SUBR)tableir_init }, 400 { "ptablei.k", S(TABLE),TR|_QQ, 3, "k", "xiooo",(SUBR)tabl_setup, 401 (SUBR)tableir_kontrol }, 402 { "ptablei.a", S(TABLE),TR|_QQ, 3, "a", "xiooo",(SUBR)tabl_setup, 403 (SUBR)tableir_audio }, 404 { "ptable3.i", S(TABLE),TR|_QQ, 1,"i", "iiooo",(SUBR)table3r_init }, 405 { "ptable3.k", S(TABLE),TR|_QQ, 3, "k", "xiooo",(SUBR)tabl_setup, 406 (SUBR)table3r_kontrol }, 407 { "ptable3.a", S(TABLE),TR|_QQ, 3, "a", "xiooo",(SUBR)tabl_setup, 408 (SUBR)table3r_audio }, 409 { "oscil1", S(OSCIL1), TR, 3, "k", "ikij", ko1set, kosc1 }, 410 { "oscil1i",S(OSCIL1), TR, 3, "k", "ikij", ko1set, kosc1i }, 411 { "osciln", S(OSCILN), TR, 3, "a", "kiii", oscnset, osciln }, 412 { "oscil.a",S(OSC),TR, 3, "a", "kkjo", oscset, osckk }, 413 { "oscil.kkk",S(OSC),TR, 3, "k", "kkjo", oscset, koscil }, 414 { "oscil.kka",S(OSC),TR, 3, "a", "kkjo", oscset, osckk }, 415 { "oscil.ka",S(OSC),TR, 3, "a", "kajo", oscset, oscka }, 416 { "oscil.ak",S(OSC),TR, 3, "a", "akjo", oscset, oscak }, 417 { "oscil.aa",S(OSC),TR, 3, "a", "aajo", oscset, oscaa }, 418 { "oscil.kkA",S(OSC),0, 3, "k", "kki[]o", oscsetA, koscil }, 419 { "oscil.kkA",S(OSC),0, 3, "a", "kki[]o", oscsetA, osckk }, 420 { "oscil.kaA",S(OSC),0, 3, "a", "kai[]o", oscsetA, oscka }, 421 { "oscil.akA",S(OSC),0, 3, "a", "aki[]o", oscsetA, oscak }, 422 { "oscil.aaA",S(OSC),0, 3, "a", "aai[]o", oscsetA,oscaa }, 423 /* Change these to 424 { "oscil.kkk", S(POSC),TR, 3, "k", "kkjo", posc_set, kposc }, 425 { "oscil.kka", S(POSC),TR, 3,, "a", "kkjo"_set, NULL, posckk }, 426 { "oscil.ka", S(POSC),TR, 3, "a", "kajo", posc_set, poscka }, 427 { "oscil.ak", S(POSC),TR, 3, "a", "akjo", posc_set, poscak }, 428 { "oscil.aa", S(POSC),TR, 3, "a", "aajo", posc_set, poscaa }, 429 { "oscil3.kk", S(POSC),TR, 7, "s", "kkjo", posc_set, kposc3, posc3 }, 430 */ 431 { "oscili.a",S(OSC),TR, 3, "a", "kkjo", oscset, osckki }, 432 { "oscili.kk",S(OSC),TR, 3, "k", "kkjo", oscset, koscli, NULL }, 433 { "oscili.ka",S(OSC),TR, 3, "a", "kajo", oscset, osckai }, 434 { "oscili.ak",S(OSC),TR, 3, "a", "akjo", oscset, oscaki }, 435 { "oscili.aa",S(OSC),TR, 3, "a", "aajo", oscset, oscaai }, 436 { "oscili.aA",S(OSC),0, 3, "a", "kki[]o", oscsetA, osckki }, 437 { "oscili.kkA",S(OSC),0, 3, "k", "kki[]o", oscsetA, koscli, NULL }, 438 { "oscili.kaA",S(OSC),0, 3, "a", "kai[]o", oscsetA, osckai }, 439 { "oscili.akA",S(OSC),0, 3, "a", "aki[]o", oscsetA, oscaki }, 440 { "oscili.aaA",S(OSC),0, 3, "a", "aai[]o", oscsetA, oscaai }, 441 { "oscil3.a",S(OSC),TR, 3, "a", "kkjo", oscset, osckk3 }, 442 { "oscil3.kk",S(OSC),TR, 3, "k", "kkjo", oscset, koscl3, NULL }, 443 { "oscil3.ka",S(OSC),TR, 3, "a", "kajo", oscset, oscka3 }, 444 { "oscil3.ak",S(OSC),TR, 3, "a", "akjo", oscset, oscak3 }, 445 { "oscil3.aa",S(OSC),TR, 3, "a", "aajo", oscset, oscaa3 }, 446 { "oscil3.aA",S(OSC),0, 3, "a", "kki[]o", oscsetA, osckk3 }, 447 { "oscil3.kkA",S(OSC),0, 3, "k", "kki[]o", oscsetA, koscl3, NULL }, 448 { "oscil3.kaA",S(OSC),0, 3, "a", "kai[]o", oscsetA, oscka3 }, 449 { "oscil3.akA",S(OSC),0, 3, "a", "aki[]o", oscsetA, oscak3 }, 450 { "oscil3.aaA",S(OSC),0, 3, "a", "aai[]o", oscsetA, oscaa3 }, 451 /* end change */ 452 { "foscil", S(FOSC),TR, 3, "a", "xkxxkjo",foscset, foscil }, 453 { "foscili",S(FOSC),TR, 3, "a", "xkxxkjo",foscset, foscili }, 454 { "loscil", S(LOSC),TR, 3, "mm","xkjojoojoo",losset, loscil }, 455 { "loscilphs", S(LOSCPHS),TR, 3, "amm","xkjojoojoo",losset_phs, loscil_phs }, 456 { "loscil3phs", S(LOSCPHS),TR, 3,"amm","xkjojoojoo",losset_phs, loscil3_phs }, 457 { "loscil3", S(LOSC),TR, 3, "mm","xkjojoojoo",losset, loscil3 }, 458 { "adsyn", S(ADSYN),0, 3, "a", "kkkSo", adset_S, adsyn }, 459 { "adsyn.i", S(ADSYN),0, 3, "a", "kkkio", adset, adsyn }, 460 { "buzz", S(BUZZ),TR, 3, "a", "xxkio", bzzset, buzz }, 461 { "gbuzz", S(GBUZZ),TR, 3, "a", "xxkkkio",gbzset, gbuzz }, 462 { "pluck", S(PLUCK), TR, 3, "a", "kkiiioo",plukset, pluck }, 463 { "rand", S(RAND),0, 3, "a", "xvoo", rndset, arand }, 464 { "rand.k", S(RAND),0, 3, "k", "xvoo", rndset, krand, NULL }, 465 { "randh", S(RANDH),0, 3, "a", "xxvoo", rhset, randh }, 466 { "randh.k", S(RANDH),0, 3, "k", "xxvoo", rhset, krandh, NULL }, 467 { "randi", S(RANDI),0, 3, "a", "xxvoo", riset, randi }, 468 { "randi.k", S(RANDI),0, 3, "k", "xxvoo", riset, krandi }, 469 { "randc", S(RANDC),0, 3, "a", "xxvoo", rcset, randc }, 470 { "randc.k", S(RANDC),0, 3, "k", "xxvoo", rcset, krandc }, 471 { "port", S(PORT),0, 3, "k", "kio", porset, port }, 472 { "tone.k", S(TONE),0, 3, "a", "ako", tonset, tone }, 473 { "tonex.k",S(TONEX),0, 3, "a", "akoo", tonsetx, tonex }, 474 { "atone.k", S(TONE),0, 3, "a", "ako", tonset, atone }, 475 { "atonex.k", S(TONEX),0, 3, "a", "akoo", tonsetx, atonex }, 476 { "reson", S(RESON), 0, 3, "a", "axxoo", rsnset, reson }, 477 { "resonx", S(RESONX),0, 3, "a", "axxooo", rsnsetx, resonx }, 478 { "areson.kk", S(RESON),0,3, "a", "akkoo",rsnset, areson }, 479 { "lpread", S(LPREAD),0, 3, "kkkk", "kSoo", lprdset_S,lpread }, 480 { "lpread.i", S(LPREAD),0, 3, "kkkk", "kioo", lprdset,lpread }, 481 { "lpform", S(LPFORM),0, 3, "kk", "k", lpformantset,lpformant }, 482 { "lpreson",S(LPRESON),0, 3, "a", "a", lprsnset, lpreson }, 483 { "lpfreson",S(LPFRESON),0,3, "a", "ak", lpfrsnset, lpfreson}, 484 { "lpslot" , S(LPSLOT),0, 1, "", "i", lpslotset, NULL, NULL }, 485 { "lpinterp", S(LPINTERPOL),0, 3, "", "iik", lpitpset, lpinterpol, NULL}, 486 { "rms", S(RMS),0, 3, "k", "aqo", rmsset, rms }, 487 { "gain", S(GAIN),0, 3, "a", "akqo", gainset, gain }, 488 { "balance",S(BALANCE),0, 3, "a", "aaqo", balnset, balance }, 489 { "balance2",S(BALANCE),0, 3, "a", "aaqo", balnset, balance2 }, 490 { "pan", S(PAN),0, 3, "aaaa", "akkioo",(SUBR)panset, (SUBR)pan }, 491 { "soundin",S(DISKIN2),0,3,"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm","Soooo", 492 sndinset_S, soundin }, 493 { "soundin.i",S(DISKIN2),0,3,"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm","ioooo", 494 sndinset, soundin }, 495 { "soundout",S(SNDOUT), _QQ, 3, "", "aSo", sndoutset_S, soundout }, 496 { "soundout.i",S(SNDOUT), _QQ, 3, "", "aio", sndoutset, soundout }, 497 { "soundouts",S(SNDOUTS),_QQ, 3, "", "aaSo", sndoutset_S, soundouts }, 498 { "soundouts.i",S(SNDOUTS),_QQ, 3, "", "aaio", sndoutset, soundouts }, 499 { "in.a", S(INM),0, 2, "a", "", NULL, in }, 500 { "in.s", S(INS),0, 2, "aa", "", NULL, ins }, 501 { "in.A", S(INA),0, 2, "a[]", "", NULL, inarray }, 502 { "ins", S(INS),0, 2, "aa", "", NULL, ins }, 503 { "inq", S(INQ),0, 2, "aaaa", "", NULL, inq }, 504 { "out.a", S(OUTX),IR, 3, "", "y", ochn, outall }, 505 { "out.A", S(OUTARRAY),IR, 3, "", "a[]", outarr_init, outarr }, 506 { "outs", S(OUTX),IR, 3, "", "y", ochn, outall }, 507 { "outq", S(OUTX),IR, 3, "", "y", ochn, outall }, 508 { "outh", S(OUTX),IR, 3, "", "y", ochn, outall }, 509 { "outo", S(OUTX),IR, 3, "", "y", ochn, outall }, 510 { "outx", S(OUTX),IR, 3, "", "y", ochn, outall }, 511 { "out32", S(OUTX),IR, 3, "", "y", ochn, outall }, 512 { "outs1", S(OUTM),IR, 2, "", "a", NULL, outs1 }, 513 { "outs2", S(OUTM),IR, 3, "", "a", och2, outs2 }, 514 { "outq1", S(OUTM),IR, 2, "", "a", NULL, outs1 }, 515 { "outq2", S(OUTM),IR, 3, "", "a", och2, outs2 }, 516 { "outq3", S(OUTM),IR, 3, "", "a", och3, outq3 }, 517 { "outq4", S(OUTM),IR, 3, "", "a", och2, outq4 }, 518 { "igoto", S(GOTO),0, 1, "", "l", igoto }, 519 { "kgoto", S(GOTO),0, 2, "", "l", NULL, kgoto }, 520 { "goto", S(GOTO),0, 3, "", "l", igoto, kgoto }, 521 { "cigoto", S(CGOTO),0, 1, "", "Bl", icgoto }, 522 { "ckgoto", S(CGOTO),0, 2, "", "Bl", NULL, kcgoto }, 523 { "cggoto.0", S(CGOTO),0, 3, "", "Bl", icgoto, kcgoto }, 524 { "timout", S(TIMOUT),0, 3, "", "iil", timset, timout }, 525 { "reinit", S(GOTO),0, 2, "", "l", NULL, reinit }, 526 { "rigoto", S(GOTO),0, 1, "", "l", rigoto }, 527 { "rireturn",S(LINK),0, 1, "", "", rireturn }, 528 { "tigoto", S(GOTO),0, 1, "", "l", tigoto }, 529 { "tival", S(EVAL),0, 1, "i", "", tival }, 530 { "print", S(PRINTV),WR, 1, "", "m", printv }, 531 { "display.k",S(DSPLAY),0, 3, "", "kioo", dspset, kdsplay,NULL }, 532 { "display.a",S(DSPLAY),0, 3, "", "aioo", dspset ,dsplay }, 533 { "pvsdisp",S(FSIGDISP),0, 3, "", "foo", fdspset, fdsplay,NULL }, 534 { "dispfft.k",S(DSPFFT),0, 3, "", "kiiooooo",fftset,kdspfft,NULL }, 535 { "dispfft.a",S(DSPFFT),0, 3, "", "aiiooooo",fftset,dspfft }, 536 { "dumpk", S(KDUMP),0, 3, "", "kSii", kdmpset_S,kdump }, 537 { "dumpk2", S(KDUMP2),0, 3, "", "kkSii",kdmp2set_S,kdump2 }, 538 { "dumpk3", S(KDUMP3),0, 3, "", "kkkSii",kdmp3set_S,kdump3 }, 539 { "dumpk4", S(KDUMP4),0, 3, "", "kkkkSii",kdmp4set_S,kdump4 }, 540 { "dumpk.i", S(KDUMP),0, 3, "", "kiii", kdmpset_p,kdump }, 541 { "dumpk2.i", S(KDUMP2),0, 3, "", "kkiii",kdmp2set_p,kdump2 }, 542 { "dumpk3.i", S(KDUMP3),0, 3, "", "kkkiii",kdmp3set_p,kdump3 }, 543 { "dumpk4.i", S(KDUMP4),0, 3, "", "kkkkiii",kdmp4set_p,kdump4 }, 544 { "readk", S(KREAD),0, 3, "k", "Sii", krdset_S, kread }, 545 { "readk2", S(KREAD2),0, 3, "kk", "Sii", krd2set_S, kread2 }, 546 { "readk3", S(KREAD3),0, 3, "kkk", "Sii", krd3set_S, kread3 }, 547 { "readk4", S(KREAD4),0, 3, "kkkk", "Sii", krd4set_S, kread4 }, 548 { "readk.i", S(KREAD),0, 3, "k", "iii", krdset_p, kread }, 549 { "readk2.i", S(KREAD2),0, 3, "kk", "iii", krd2set_p, kread2 }, 550 { "readk3.i", S(KREAD3),0, 3, "kkk", "iii", krd3set_p, kread3 }, 551 { "readk4.i", S(KREAD4),0, 3, "kkkk", "iii", krd4set_p, kread4 }, 552 { "readks", S(KREADS),0, 3, "S", "Si", krdsset_S, kreads }, 553 { "readks.i", S(KREADS),0, 3, "S", "ii", krdsset_p, kreads }, 554 { "xyin", S(XYIN), _QQ, 1, "kk", "iiiiioo",xyinset,NULL }, 555 { "tempest", S(TEMPEST),0, 3, "k","kiiiiiiiiiop",tempeset,tempest}, 556 { "tempo", S(TEMPO),0, 3, "", "ki", tempset,tempo }, 557 { "pow.i", S(POW),0, 1, "i", "iip", ipow, NULL, NULL }, 558 { "pow.k", S(POW),0, 2, "k", "kkp", NULL, ipow, NULL }, 559 { "pow.a", S(POW),0, 2, "a", "akp", NULL, apow }, 560 { "##pow.i", S(POW),0, 1, "i", "iip", ipow, NULL, NULL }, 561 { "##pow.k", S(POW),0, 2, "k", "kkp", NULL, ipow, NULL }, 562 { "##pow.a", S(POW),0, 2, "a", "akp", NULL, apow }, 563 { "oscilx", S(OSCILN), TR, 3, "a", "kiii", oscnset, osciln }, 564 { "linrand.i",S(PRAND),0, 1, "i", "k", iklinear, NULL, NULL }, 565 { "linrand.k",S(PRAND),0, 2, "k", "k", NULL, iklinear, NULL }, 566 { "linrand.a",S(PRAND),0, 2, "a", "k", NULL, alinear }, 567 { "trirand.i",S(PRAND),0, 1, "i", "k", iktrian, NULL, NULL }, 568 { "trirand.k",S(PRAND),0, 2, "k", "k", NULL, iktrian, NULL }, 569 { "trirand.a",S(PRAND),0, 2, "a", "k", NULL, atrian }, 570 { "exprand.i",S(PRAND),0, 1, "i", "k", ikexp, NULL, NULL }, 571 { "exprand.k",S(PRAND),0, 2, "k", "k", NULL, ikexp, NULL }, 572 { "exprand.a",S(PRAND),0, 2, "a", "k", NULL, aexp }, 573 { "bexprnd.i",S(PRAND),0, 1, "i", "k", ikbiexp, NULL, NULL }, 574 { "bexprnd.k",S(PRAND),0, 2, "k", "k", NULL, ikbiexp, NULL }, 575 { "bexprnd.a",S(PRAND),0, 2, "a", "k", NULL, abiexp }, 576 { "cauchy.i", S(PRAND),0, 1, "i", "k", ikcauchy, NULL, NULL }, 577 { "cauchy.k", S(PRAND),0, 2, "k", "k", NULL, ikcauchy, NULL }, 578 { "cauchy.a", S(PRAND),0, 2, "a", "k", NULL, acauchy }, 579 { "pcauchy.i",S(PRAND),0, 1, "i", "k", ikpcauchy, NULL,NULL }, 580 { "pcauchy.k",S(PRAND),0, 2, "k", "k", NULL, ikpcauchy,NULL }, 581 { "pcauchy.a",S(PRAND),0, 2, "a", "k", NULL, apcauchy}, 582 { "poisson.i",S(PRAND),0, 1, "i", "k", ikpoiss, NULL, NULL }, 583 { "poisson.k",S(PRAND),0, 2, "k", "k", NULL, ikpoiss, NULL }, 584 { "poisson.a",S(PRAND),0, 2, "a", "k", NULL, apoiss }, 585 { "gauss.i" , S(PRAND),0, 1, "i", "k", ikgaus, NULL, NULL }, 586 { "gauss.k" , S(PRAND),0, 2, "k", "k", NULL, ikgaus, NULL }, 587 { "gauss.a" , S(PRAND),0, 2, "a", "k", NULL, agaus }, 588 { "gauss.iii" , S(GAUSS),0, 1, "i", "ii", gauss_scalar, NULL, NULL }, 589 { "gauss.kkk" , S(GAUSS),0, 2, "k", "kk", NULL, gauss_scalar, NULL }, 590 { "gauss.akk" , S(GAUSS),0, 2, "a", "kk", NULL, gauss_vector }, 591 { "weibull.i",S(PRAND),0, 1, "i", "kk", ikweib, NULL, NULL }, 592 { "weibull.k",S(PRAND),0, 2, "k", "kk", NULL, ikweib, NULL }, 593 { "weibull.a",S(PRAND),0, 2, "a", "kk", NULL, aweib }, 594 { "betarand.i",S(PRAND),0,1, "i", "kkk", ikbeta, NULL, NULL }, 595 { "betarand.k",S(PRAND),0,2, "k", "kkk", NULL, ikbeta,NULL }, 596 { "betarand.a",S(PRAND),0,2, "a", "kkk", NULL, abeta }, 597 { "seed", S(PRAND),0, 1, "", "i", seedrand, NULL, NULL }, 598 { "getseed.i",S(GETSEED),0, 1, "i", "", getseed, NULL, NULL }, 599 { "getseed.k",S(GETSEED),0, 3, "k", "", getseed, getseed, NULL }, 600 { "unirand.i",S(PRAND),0, 1, "i", "k", ikuniform, NULL, NULL }, 601 { "unirand.k",S(PRAND),0, 2, "k", "k", NULL, ikuniform, NULL}, 602 { "unirand.a",S(PRAND),0, 2, "a", "k", NULL, auniform }, 603 { "diskin",S(DISKIN2_ARRAY),0, 3, "a[]", 604 "SPooooooo", 605 (SUBR) diskin_init_array_S, 606 (SUBR) diskin2_perf_array }, 607 { "diskin2",S(DISKIN2_ARRAY),0, 3, "a[]", 608 "SPooooooo", 609 (SUBR) diskin2_init_array_S, 610 (SUBR) diskin2_perf_array }, 611 { "diskin.i",S(DISKIN2_ARRAY),0, 3, "a[]", 612 "iPooooooo", 613 (SUBR) diskin_init_array_I, 614 (SUBR) diskin2_perf_array }, 615 { "diskin2.i",S(DISKIN2_ARRAY),0, 3, "a[]", 616 "iPooooooo", 617 (SUBR) diskin2_init_array_I, 618 (SUBR) diskin2_perf_array }, 619 { "diskin",S(DISKIN2),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 620 "SPooooooo", 621 (SUBR) diskin_init_S, 622 (SUBR) diskin2_perf }, 623 { "diskin2",S(DISKIN2),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 624 "SPooooooo", 625 (SUBR) diskin2_init_S, 626 (SUBR) diskin2_perf }, 627 { "diskin.i",S(DISKIN2),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 628 "iPooooooo", 629 (SUBR) diskin_init, 630 (SUBR) diskin2_perf }, 631 { "diskin2.i",S(DISKIN2),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 632 "iPooooooo", 633 (SUBR) diskin2_init, 634 (SUBR) diskin2_perf }, 635 { "noteon", S(OUT_ON),0, 1, "", "iii", iout_on, NULL, NULL }, 636 { "noteoff", S(OUT_ON),0, 1, "", "iii", iout_off, NULL, NULL }, 637 { "noteondur",S(OUT_ON_DUR),0,3, "", "iiii", iout_on_dur_set,iout_on_dur,NULL}, 638 { "noteondur2",S(OUT_ON_DUR),0,3, "", "iiii", iout_on_dur_set,iout_on_dur2,NULL}, 639 { "moscil",S(MOSCIL),0, 3, "", "kkkkk",moscil_set, moscil, NULL}, 640 { "midion",S(KOUT_ON),0, 3, "", "kkk", kvar_out_on_set,kvar_out_on,NULL}, 641 { "outic",S(OUT_CONTR),0, 1, "", "iiiii", out_controller, NULL, NULL}, 642 { "outkc",S(OUT_CONTR),0, 2, "", "kkkkk", NULL, out_controller, NULL}, 643 { "outic14",S(OUT_CONTR14),0,1, "", "iiiiii",out_controller14, NULL,NULL}, 644 { "outkc14",S(OUT_CONTR14),0,2, "", "kkkkkk",NULL, out_controller14, NULL}, 645 { "outipb",S(OUT_PB),0, 1, "", "iiii", out_pitch_bend, NULL , NULL}, 646 { "outkpb",S(OUT_PB),0, 2, "", "kkkk", NULL, out_pitch_bend, NULL}, 647 { "outiat",S(OUT_ATOUCH),0,1, "", "iiii", out_aftertouch, NULL , NULL}, 648 { "outkat",S(OUT_ATOUCH),0,2, "", "kkkk", NULL, out_aftertouch, NULL}, 649 { "outipc",S(OUT_PCHG),0, 1, "", "iiii", out_progchange, NULL , NULL}, 650 { "outkpc",S(OUT_PCHG),0, 2, "", "kkkk", NULL, out_progchange, NULL}, 651 { "outipat",S(OUT_POLYATOUCH),0,1,"", "iiiii", out_poly_aftertouch, NULL,NULL}, 652 { "outkpat",S(OUT_POLYATOUCH),0,2,"", "kkkkk", NULL, out_poly_aftertouch,NULL}, 653 { "release",S(REL),0, 3, "k", "", release_set, release, NULL }, 654 { "xtratim",S(XTRADUR),0, 1, "", "i", xtratim, NULL, NULL }, 655 { "mclock", S(MCLOCK),0, 3, "", "i", mclock_set, mclock, NULL }, 656 { "mrtmsg", S(XTRADUR),0, 1, "", "i", mrtmsg, NULL, NULL }, 657 { "midiout",S(MIDIOUT),0, 2, "", "kkkk", NULL, midiout, NULL }, 658 { "midiout_i",S(MIDIOUT), 0, 1, "", "iiii", midiout, NULL, NULL }, 659 { "midion2", S(KON2),0, 3, "", "kkkk", kon2_set, kon2, NULL }, 660 { "nrpn", S(NRPN),0, 2, "", "kkk", NULL, nrpn ,NULL }, 661 { "mdelay", S(MDELAY),0, 3, "", "kkkkk",mdelay_set, mdelay, NULL }, 662 { "nsamp.i", S(EVAL),0, 1, "i", "i", numsamp }, 663 { "powoftwo.i",S(EVAL),0, 1, "i", "i", powoftwo }, 664 { "powoftwo.k",S(EVAL),0, 2, "k", "k", NULL, powoftwo }, 665 { "powoftwo.a",S(EVAL),0, 2, "a", "a", NULL, powoftwoa }, 666 { "logbtwo.i",S(EVAL),0, 1, "i", "i", ilogbasetwo }, 667 { "logbtwo.k",S(EVAL),0, 3, "k", "k", logbasetwo_set, logbasetwo }, 668 { "logbtwo.a",S(EVAL),0, 3, "a", "a", 669 logbasetwo_set, logbasetwoa }, 670 { "filelen", S(SNDINFO),0, 1, "i", "Sp", filelen_S, NULL, NULL }, 671 { "filenchnls", S(SNDINFO),0, 1, "i", "Sp", filenchnls_S, NULL, NULL }, 672 { "filesr", S(SNDINFO),0, 1, "i", "Sp", filesr_S, NULL, NULL }, 673 { "filebit", S(SNDINFO),0, 1, "i", "Sp", filebit_S, NULL, NULL }, 674 { "filepeak", S(SNDINFOPEAK),0, 1, "i", "So", filepeak_S, NULL, NULL }, 675 { "filevalid", S(FILEVALID),0, 1, "i", "S", filevalid_S, NULL, NULL }, 676 { "filelen.i", S(SNDINFO),0, 1, "i", "ip", filelen, NULL, NULL }, 677 { "filenchnls.i", S(SNDINFO),0, 1, "i", "ip", filenchnls, NULL, NULL }, 678 { "filesr.i", S(SNDINFO),0, 1, "i", "ip", filesr, NULL, NULL }, 679 { "filebit.i", S(SNDINFO),0, 1, "i", "ip", filebit, NULL, NULL }, 680 { "filepeak.i", S(SNDINFOPEAK),0, 1, "i", "io", filepeak, NULL, NULL }, 681 { "filevalid.i", S(FILEVALID),0, 1, "i", "i", filevalid, NULL, NULL }, 682 /* { "nlalp", S(NLALP),0, 3, "a", "akkoo", nlalp_set, nlalp }, */ 683 { "ptableiw", S(TABLEW),TW|_QQ, 1, "", "iiiooo", (SUBR)tablew_init, NULL, NULL}, 684 { "ptablew.kk", S(TABLEW),TB, 3, "", "kkiooo",(SUBR)tabl_setup, 685 (SUBR)tablew_kontrol, NULL }, 686 { "ptablew.aa", S(TABLEW),TB, 3, "", "aaiooo",(SUBR)tabl_setup, 687 (SUBR)tablew_audio }, 688 { "tableiw", S(TABL),TW|_QQ, 1, "", "iiiooo", (SUBR)tablew_init, NULL, NULL}, 689 { "tablew", S(TABL),TW, 1, "", "iiiooo", (SUBR)tablew_init, NULL, NULL}, 690 { "tablew.kk", S(TABL),TW, 3, "", "kkiooo",(SUBR)tabl_setup, 691 (SUBR)tablew_kontrol, NULL }, 692 { "tablew.aa", S(TABL),TW, 3, "", "aaiooo",(SUBR)tabl_setup, 693 (SUBR)tablew_audio }, 694 { "tablewkt.kk", S(TABL),TW,3, "", "kkkooo", 695 (SUBR)tablkt_setup,(SUBR)tablewkt_kontrol,NULL}, 696 { "tablewkt.aa", S(TABL),TW,3, "", "aakooo", 697 (SUBR)tablkt_setup,(SUBR)tablewkt_audio}, 698 { "tableng.i", S(TLEN),TR,1, "i", "i", (SUBR)table_length, NULL, NULL}, 699 { "tableng.k", S(TLEN),TR,2, "k", "k", NULL, (SUBR)table_length, NULL}, 700 { "tableigpw",S(TGP), TB, 1, "", "i", (SUBR)table_gpw, NULL, NULL}, 701 { "tablegpw", S(TGP), TB,2, "", "k", NULL, (SUBR)table_gpw, NULL}, 702 { "tableimix",S(TABLMIX),TB, 1, "", "iiiiiiiii", (SUBR)table_mix, NULL, NULL}, 703 { "tablemix", S(TABLMIX),TB, 2, "", "kkkkkkkkk", NULL, (SUBR)table_mix, NULL}, 704 { "tableicopy",S(TGP),TB, 1, "", "ii", (SUBR)table_copy, NULL, NULL}, 705 { "tablecopy", S(TGP),TB, 2, "", "kk", NULL, (SUBR)table_copy, NULL}, 706 { "tablera", S(TABLRA),TR, 3, "a", "kkk", 707 (SUBR)table_ra_set, (SUBR)table_ra}, 708 { "tablewa", S(TABLWA),TW, 3, "k", "kakp", 709 (SUBR)table_wa_set, (SUBR)table_wa}, 710 { "tablekt", S(TABL),TR, 3, "k", "xkooo", (SUBR)tablkt_setup, 711 (SUBR)tablerkt_kontrol, 712 NULL }, 713 { "tablekt.a", S(TABL),TR, 3, "a", "xkooo", (SUBR)tablkt_setup, 714 (SUBR)tablerkt_audio }, 715 { "tableikt", S(TABL),TR, 3, "k", "xkooo", (SUBR)tablkt_setup, 716 (SUBR)tableirkt_kontrol, 717 NULL }, 718 { "tableikt.a", S(TABL),TR, 3, "a", "xkooo", (SUBR)tablkt_setup, 719 (SUBR)tableirkt_audio }, 720 { "table3kt", S(TABL),TR, 3, "k", "xkooo", (SUBR)tablkt_setup, 721 (SUBR)table3rkt_kontrol, 722 NULL }, 723 { "table3kt.a", S(TABL),TR, 3, "a", "xkooo", (SUBR)tablkt_setup, 724 (SUBR)table3rkt_audio }, 725 { "inz", S(IOZ), ZW, 2, "", "k", NULL, (SUBR)inz }, 726 { "outz", S(IOZ),ZR|IR, 2, "", "k", NULL, (SUBR)outz }, 727 { "timek.i", S(RDTIME),0, 1, "i", "", (SUBR)timek, NULL, NULL }, 728 { "times.i", S(RDTIME),0, 1, "i", "", (SUBR)timesr, NULL, NULL }, 729 { "timek.k", S(RDTIME),0, 2, "k", "", NULL, (SUBR)timek, NULL }, 730 { "times.k", S(RDTIME),0, 2, "k", "", NULL, (SUBR)timesr,NULL }, 731 { "timeinstk", S(RDTIME),0, 3, "k", "", 732 (SUBR)instimset, (SUBR)instimek, NULL }, 733 { "timeinsts", S(RDTIME),0, 3, "k", "", 734 (SUBR)instimset, (SUBR)instimes, NULL }, 735 { "peak.k", S(PEAK),0, 2, "k", "k", NULL, (SUBR)peakk, NULL }, 736 { "peak.a", S(PEAK),0, 2, "k", "a", NULL, (SUBR)peaka }, 737 { "printk", S(PRINTK),WR, 3,"", "ikoooo", 738 (SUBR)printkset, (SUBR)printk, NULL }, 739 { "printks",S(PRINTKS),WR, 3, "", "SiN", 740 (SUBR)printksset_S,(SUBR)printks, NULL }, 741 { "printks2", sizeof(PRINTK3),0, 3, "", "Sk", (SUBR)printk3set, (SUBR)printk3 }, 742 { "printks.i",S(PRINTKS),WR, 3, "", "iiN", 743 (SUBR)printksset,(SUBR)printks, NULL }, 744 { "prints",S(PRINTS),0, 1, "", "SN", (SUBR)printsset_S, NULL, NULL }, 745 { "prints.i",S(PRINTS),0, 1, "", "iN", (SUBR)printsset, NULL, NULL }, 746 { "printk2", S(PRINTK2), WR, 3, "", "koo", 747 (SUBR)printk2set, (SUBR)printk2, NULL }, 748 { "portk", S(KPORT),0, 3, "k", "kko", (SUBR)kporset, (SUBR)kport, NULL }, 749 { "tonek", S(KTONE),0, 3, "k", "kko", (SUBR)ktonset, (SUBR)ktone, NULL }, 750 { "atonek", S(KTONE),0, 3, "k", "kko", (SUBR)ktonset, (SUBR)katone, NULL}, 751 { "resonk", S(KRESON),0, 3, "k", "kkkpo",(SUBR)krsnset, (SUBR)kreson, NULL}, 752 { "aresonk",S(KRESON),0, 3, "k", "kkkpo",(SUBR)krsnset, (SUBR)kareson, NULL}, 753 { "limit.i", S(LIMIT),0, 1, "i", "iii", (SUBR)klimit, NULL, NULL }, 754 { "limit.k", S(LIMIT),0, 2, "k", "kkk", NULL, (SUBR)klimit, NULL }, 755 { "limit.a", S(LIMIT),0, 2, "a", "akk", NULL, (SUBR)limit }, 756 { "prealloc", S(AOP),0, 1, "", "iio", (SUBR)prealloc, NULL, NULL }, 757 { "prealloc", S(AOP),0, 1, "", "Sio", (SUBR)prealloc_S, NULL, NULL }, 758 /* opcode dspace thread outarg inargs isub ksub asub */ 759 { "inh", S(INH),0, 2, "aaaaaa","", NULL, inh }, 760 { "ino", S(INO),0, 2, "aaaaaaaa","", NULL, ino }, 761 { "inx", S(INALL),0, 2, "aaaaaaaaaaaaaaaa","", NULL, in16 }, 762 { "in32", S(INALL),0, 2, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 763 "", NULL, in32 }, 764 { "inch", S(INCH1),0, 3, "a", 765 "k", inch1_set, (SUBR) inch_opcode1 }, 766 { "inch.m", S(INCH),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 767 "z", inch_set, inch_opcode }, 768 { "_in", S(INALL),0, 3, "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", 769 "", inch_set, inall_opcode }, 770 /* Note that there is code in rdorch.c that assumes that opcodes starting 771 with the characters out followed by a s, q, h, o or x are in this group 772 ***BEWARE*** 773 CODE REMOVED 2011-Dec-14 774 */ 775 { "outch", S(OUTCH),IR, 2, "", "Z", NULL, outch }, 776 { "outc", S(OUTX),IR, 2, "", "y", ochn, outall }, 777 { "cpsxpch", S(XENH),TR, 1, "i", "iiii", cpsxpch, NULL, NULL }, 778 { "cps2pch", S(XENH),TR, 1, "i", "ii", cps2pch, NULL, NULL }, 779 { "cpstun", S(CPSTUN), TR, 2, "k", "kkk", NULL, cpstun }, 780 { "cpstuni",S(CPSTUNI), TR, 1, "i", "ii", cpstun_i, }, 781 { "cpstmid", S(CPSTABLE),0, 1, "i", "i", (SUBR)cpstmid }, 782 { "adsr", S(LINSEG),0, 3, "k", "iiiio",adsrset,klnseg, NULL }, 783 { "adsr.a", S(LINSEG),0, 3, "a", "iiiio",adsrset, linseg }, 784 { "madsr", S(LINSEG),0, 3, "k", "iiiioj", madsrset,klnsegr,NULL }, 785 { "madsr.a", S(LINSEG),0, 3, "a", "iiiioj", madsrset, linsegr }, 786 { "xadsr", S(EXXPSEG),0, 3, "k", "iiiio", xdsrset, kxpseg, NULL }, 787 { "xadsr.a", S(EXXPSEG),0, 3, "a", "iiiio", xdsrset, expseg }, 788 { "mxadsr", S(EXPSEG),0, 3, "k", "iiiioj", mxdsrset, kxpsegr, NULL}, 789 { "mxadsr.a", S(EXPSEG),0, 3, "a", "iiiioj", mxdsrset, expsegr}, 790 { "schedule", S(SCHED),0, 1, "", "iiim", 791 schedule, NULL, NULL }, 792 { "schedule.N", S(SCHED),0, 1, "", "iiiN", 793 schedule_N, NULL, NULL }, 794 { "schedule.S", S(SCHED),0, 1, "", "Siim", 795 schedule_S, NULL, NULL }, 796 { "schedule.SN", S(SCHED),0, 1, "", "SiiN", 797 schedule_SN, NULL, NULL }, 798 { "schedule.array", S(SCHED),0, 1, "", "i[]", 799 schedule_array, NULL, NULL }, 800 /* **** Experimental schedulek opcodes **** */ 801 { "schedulek", S(SCHED),0, 2, "", "kkkM", 802 NULL, schedule, NULL }, 803 { "schedulek.N", S(SCHED),0, 2, "", "kkkN", 804 NULL, schedule_N, NULL }, 805 { "schedulek.S", S(SCHED),0, 2, "", "SkkM", 806 NULL, schedule_S, NULL }, 807 { "schedulek.SN", S(SCHED),0, 2, "", "SkkN", 808 NULL, schedule_SN, NULL }, 809 { "schedulek.array", S(SCHED),0, 2, "", "k[]", 810 NULL, schedule_array, NULL }, 811 812 /* **** End of schedulek **** */ 813 { "schedwhen", S(WSCHED),0,3, "", "kkkkm",ifschedule, kschedule, NULL }, 814 { "schedwhen", S(WSCHED),0,3, "", "kSkkm",ifschedule, kschedule, NULL }, 815 { "schedkwhen", S(TRIGINSTR),0, 3,"", "kkkkkz",triginset, ktriginstr, NULL }, 816 { "schedkwhen.S", S(TRIGINSTR),0, 3,"", "kkkSkz", 817 triginset_S, ktriginstr_S, NULL }, 818 { "schedkwhennamed", S(TRIGINSTR),0, 3,"", "kkkkkz",triginset, ktriginstr, NULL }, 819 { "schedkwhennamed.S", S(TRIGINSTR),0, 3,"", 820 "kkkSkz",triginset_S, ktriginstr_S, NULL }, 821 { "trigseq", S(TRIGSEQ),0, 3, "", "kkkkkz", trigseq_set, trigseq, NULL }, 822 { "event", S(LINEVENT),0, 2, "", "Skz", NULL, eventOpcode, NULL }, 823 { "event_i", S(LINEVENT),0,1, "", "Sim", eventOpcodeI, NULL, NULL }, 824 { "event.S", S(LINEVENT),0, 2, "", "SSz", NULL, eventOpcode_S, NULL }, 825 { "event_i.S", S(LINEVENT),0,1, "", "SSm", eventOpcodeI_S, NULL, NULL }, 826 { "nstance", S(LINEVENT2),0,2, "k", "kkz", NULL, instanceOpcode, NULL }, 827 { "nstance.i", S(LINEVENT2),0,1, "i", "iiim", instanceOpcode, NULL, NULL }, 828 { "nstance.kS", S(LINEVENT2),0, 2, "k", "SSz", NULL, instanceOpcode_S, NULL }, 829 { "nstance.S", S(LINEVENT2),0, 1, "i", "Siim", instanceOpcode_S, NULL, NULL}, 830 { "turnoff.i", S(KILLOP),0,1, "", "i", kill_instance, NULL, NULL }, 831 { "turnoff.k", S(KILLOP),0,2, "", "k", NULL, kill_instance, NULL}, 832 { "lfo", S(LFO),0, 3, "k", "kko", lfoset, lfok, NULL }, 833 { "lfo.a", S(LFO),0, 3, "a", "kko", lfoset, lfoa }, 834 { "oscils", S(OSCILS),0, 3, "a", "iiio", 835 (SUBR)oscils_set, (SUBR)oscils }, 836 { "lphasor", S(LPHASOR),0,3, "a", "xooooooo" , 837 (SUBR)lphasor_set, (SUBR)lphasor }, 838 { "tablexkt", S(TABLEXKT),TR, 3, "a", "xkkiooo", (SUBR)tablexkt_set, 839 (SUBR)tablexkt }, 840 { "reverb2", S(NREV2),0, 3, "a", "akkoojoj", 841 (SUBR)reverbx_set,(SUBR)reverbx }, 842 { "nreverb", S(NREV2),0, 3, "a", "akkoojoj", 843 (SUBR)reverbx_set,(SUBR) reverbx }, 844 { "=.f", S(FASSIGN),0, 3, "f", "f", (SUBR)fassign_set, (SUBR)fassign }, 845 { "init.f", S(FASSIGN),0, 1, "f", "f", (SUBR)fassign_set, NULL, NULL }, 846 { "pvsanal", S(PVSANAL), 0, 3, "f", "aiiiioo", pvsanalset, pvsanal }, 847 { "pvsynth", S(PVSYNTH),0, 3, "a", "fo", pvsynthset, pvsynth }, 848 { "pvsadsyn", S(PVADS),0, 3, "a", "fikopo", pvadsynset, pvadsyn, NULL }, 849 { "pvscross", S(PVSCROSS),0,3, "f", "ffkk", pvscrosset, pvscross, NULL }, 850 { "pvsfread", S(PVSFREAD),0,3, "f", "kSo", pvsfreadset_S, pvsfread, NULL}, 851 { "pvsfread.i", S(PVSFREAD),0,3, "f", "kio", pvsfreadset, pvsfread, NULL}, 852 { "pvsmaska", S(PVSMASKA),0,3, "f", "fik", pvsmaskaset, pvsmaska, NULL }, 853 { "pvsftw", S(PVSFTW), TW, 3, "k", "fio", pvsftwset, pvsftw, NULL }, 854 { "pvsftr", S(PVSFTR),TR, 3, "", "fio", pvsftrset, pvsftr, NULL }, 855 { "pvsinfo", S(PVSINFO),0, 1, "iiii","f", pvsinfo, NULL, NULL }, 856 { "octave.i", S(EVAL),0, 1, "i", "i", powoftwo }, 857 { "octave.k", S(EVAL),0, 2, "k", "k", NULL, powoftwo }, 858 { "octave.a", S(EVAL),0, 2, "a", "a", NULL, powoftwoa }, 859 { "semitone.i",S(EVAL),0, 1, "i", "i", semitone }, 860 { "semitone.k",S(EVAL),0, 2, "k", "k", NULL, semitone }, 861 { "semitone.a",S(EVAL),0, 2, "a", "a", NULL, asemitone }, 862 { "cent.i", S(EVAL),0, 1, "i", "i", cent }, 863 { "cent.k", S(EVAL),0, 2, "k", "k", NULL, cent }, 864 { "cent.a", S(EVAL),0, 2, "a", "a", NULL, acent }, 865 { "db.i", S(EVAL),0, 1, "i", "i", db }, 866 { "db.k", S(EVAL),0, 2, "k", "k", NULL, db }, 867 { "db.a", S(EVAL),0, 2, "a", "a", NULL, dba }, 868 { "midichn", S(MIDICHN),0, 1, "i", "", midichn, NULL, NULL }, 869 { "pgmassign",S(PGMASSIGN),0, 1, "", "iio", pgmassign, NULL, NULL }, 870 { "pgmassign.S",S(PGMASSIGN),0, 1, "", "iSo", pgmassign_S, NULL, NULL }, 871 { "midiin", S(MIDIIN),0, 3, "kkkk", "", midiin_set, midiin, NULL }, 872 { "pgmchn", S(PGMIN),0, 3, "kk", "o", pgmin_set, pgmin, NULL }, 873 { "ctlchn", S(CTLIN),0, 3, "kkk", "oo", ctlin_set, ctlin, NULL }, 874 { "miditempo", S(MIDITEMPO),0, 3, "k", "", 875 (SUBR) midiTempoOpcode, (SUBR) midiTempoOpcode, NULL }, 876 { "midifilestatus", S(MIDITEMPO),0, 2, "k", "", 877 NULL, (SUBR) midiFileStatus, NULL }, 878 { "midinoteoff", S(MIDINOTEON),0,3 ,"", "xx", midinoteoff, midinoteoff, }, 879 { "midinoteonkey", S(MIDINOTEON),0,3, "", "xx", midinoteonkey, midinoteonkey }, 880 { "midinoteoncps", S(MIDINOTEON),0, 3, "", "xx", midinoteoncps,midinoteoncps }, 881 { "midinoteonoct", S(MIDINOTEON),0, 3, "", "xx", midinoteonoct,midinoteonoct }, 882 { "midinoteonpch", S(MIDINOTEON),0, 3, "", "xx", midinoteonpch, midinoteonpch }, 883 { "midipolyaftertouch", S(MIDIPOLYAFTERTOUCH),0, 884 3, "", "xxoh", midipolyaftertouch, midipolyaftertouch}, 885 { "midicontrolchange", S(MIDICONTROLCHANGE),0, 886 3, "", "xxoh",midicontrolchange, midicontrolchange }, 887 { "midiprogramchange", S(MIDIPROGRAMCHANGE),0, 888 3, "", "x", midiprogramchange, midiprogramchange }, 889 { "midichannelaftertouch", S(MIDICHANNELAFTERTOUCH),0, 890 3, "", "xoh",midichannelaftertouch, midichannelaftertouch }, 891 { "midipitchbend", S(MIDIPITCHBEND),0,3, "", "xoh", 892 midipitchbend, midipitchbend }, 893 { "mididefault", S(MIDIDEFAULT),0, 3, "", "xx", mididefault, mididefault }, 894 //{ "invalue", 0xFFFF, _CR, 0, NULL, NULL, NULL, NULL }, 895 { "invalue.k", S(INVAL),_CR, 3, "k", "i", (SUBR) invalset,(SUBR)kinval, NULL }, 896 { "invalue.i", S(INVAL),_CR, 1, "i", "i", (SUBR) invalsetgo, NULL, NULL }, 897 { "invalue.iS", S(INVAL),_CR, 1, "i", "S", (SUBR) invalsetSgo, NULL, NULL }, 898 { "invalue.kS", S(INVAL),_CR, 3, "k", "S",(SUBR) invalset_S,(SUBR)kinval, NULL }, 899 { "invalue.S", S(INVAL),_CR, 3, "S", "i", 900 (SUBR) invalset_string, (SUBR)kinvalS, NULL }, 901 { "invalue.SS", S(INVAL),_CR, 3, "S", "S", 902 (SUBR) invalset_string_S, (SUBR)kinvalS, NULL }, 903 { "outvalue", S(OUTVAL), _CW, 3, "", "ik", (SUBR) outvalset, (SUBR)koutval, NULL}, 904 { "outvalue.i", S(OUTVAL), _CW, 1, "", "ii", (SUBR) outvalsetgo, NULL, NULL}, 905 { "outvalue.Si", S(OUTVAL), _CW, 1, "", "Si", 906 (SUBR) outvalsetSgo, NULL, NULL}, 907 { "outvalue.k", S(OUTVAL), _CW, 3, "", "Sk", 908 (SUBR) outvalset_S, (SUBR)koutval, NULL}, 909 { "outvalue.S", S(OUTVAL), _CW, 3, "", "iS", 910 (SUBR) outvalset_string, (SUBR)koutvalS, NULL}, 911 { "outvalue.SS", S(OUTVAL), _CW, 3, "", "SS", 912 (SUBR) outvalset_string_S, (SUBR)koutvalS, NULL}, 913 /* IV - Oct 20 2002 */ 914 { "subinstr", S(SUBINST),0, 3, "mmmmmmmm", "SN", subinstrset_S, subinstr }, 915 { "subinstrinit", S(SUBINST),0, 1, "", "SN", subinstrset_S, NULL, NULL }, 916 { "subinstr.i", S(SUBINST),0, 3, "mmmmmmmm", "iN", subinstrset, subinstr }, 917 { "subinstrinit.i", S(SUBINST),0, 1, "", "iN", subinstrset, NULL, NULL }, 918 { "nstrnum", S(NSTRNUM),0, 1, "i", "S", nstrnumset_S, NULL, NULL }, 919 { "nstrnum.i", S(NSTRNUM),0, 1, "i", "i", nstrnumset, NULL, NULL }, 920 { "nstrstr", S(NSTRSTR),0, 1, "S", "i", nstrstr, NULL, NULL }, 921 { "nstrstr.k", S(NSTRSTR),0, 2, "S", "k", NULL, nstrstr, NULL }, 922 //{ "turnoff2", 0xFFFB, _CW, 0, NULL, NULL, NULL, NULL, NULL }, 923 { "turnoff2.S",S(TURNOFF2),_CW,2, "", "Skk", NULL, turnoff2S, NULL }, 924 { "turnoff2.c",S(TURNOFF2),_CW,2, "", "ikk", NULL, turnoff2k, NULL }, 925 { "turnoff2.k",S(TURNOFF2),_CW,2, "", "kkk", NULL, turnoff2k, NULL }, 926 { "turnoff2.i",S(TURNOFF2),_CW,2, "", "ikk", NULL, turnoff2k, NULL }, 927 { "turnoff2.r",S(TURNOFF2),_CW,2, "", "ikk", NULL, turnoff2k, NULL }, 928 { "cngoto", S(CGOTO),0, 3, "", "Bl", ingoto, kngoto, NULL }, 929 { "cnkgoto", S(CGOTO),0, 2, "", "Bl", NULL, kngoto, NULL }, 930 { "cingoto", S(CGOTO),0, 1, "", "Bl", ingoto, NULL, NULL }, 931 { "tempoval", S(GTEMPO),0, 2, "k", "", NULL, (SUBR)gettempo, NULL }, 932 { "downsamp",S(DOWNSAMP),0,3, "k", "ao", (SUBR)downset,(SUBR)downsamp }, 933 { "upsamp", S(UPSAMP),0, 2, "a", "k", NULL, (SUBR)upsamp }, 934 /* IV - Sep 5 2002 */ 935 { "interp", S(INTERP),0, 3, "a", "kooo", (SUBR)interpset, (SUBR)interp }, 936 { "a.k", S(INTERP),0, 3, "a", "k", (SUBR)a_k_set, (SUBR)interp }, 937 { "integ", S(INDIFF), 0, 3, "a", "xo", 938 (SUBR)indfset,(SUBR)integrate}, 939 { "integ.k", S(INDIFF), 0, 3, "k", "xo", 940 (SUBR)indfset,(SUBR)kntegrate, NULL}, 941 { "diff", S(INDIFF),0, 3, "a", "xo", (SUBR)indfset, (SUBR)diff }, 942 { "diff.k", S(INDIFF),0, 3, "k", "xo", (SUBR)indfset,(SUBR)kdiff, NULL }, 943 { "samphold",S(SAMPHOLD),0,3, "a", "xxoo", 944 (SUBR)samphset,(SUBR)samphold }, 945 { "samphold.k",S(SAMPHOLD),0,3, "k", "xxoo", 946 (SUBR)samphset,(SUBR)ksmphold,NULL }, 947 { "delay", S(DELAY),0, 3, "a", "aio", (SUBR)delset, (SUBR)delay }, 948 { "delayr", S(DELAYR),0, 3, "aX","io", (SUBR)delrset, (SUBR)delayr }, 949 { "delayw", S(DELAYW),0, 3, "", "a", (SUBR)delwset, (SUBR)delayw }, 950 { "delay1", S(DELAY1),0, 3, "a", "ao", (SUBR)del1set, (SUBR)delay1 }, 951 { "deltap", S(DELTAP),0, 3, "a", "ko", (SUBR)tapset, (SUBR)deltap }, 952 { "deltapi",S(DELTAP),0, 3, "a", "xo", (SUBR)tapset, (SUBR)deltapi }, 953 { "deltapn",S(DELTAP),0, 3, "a", "xo", (SUBR)tapset, (SUBR)deltapn }, 954 { "deltap3",S(DELTAP),0, 3, "a", "xo", (SUBR)tapset, (SUBR)deltap3 }, 955 { "reverb", S(REVERB),0, 3, "a", "ako", (SUBR)rvbset, (SUBR)reverb }, 956 { "vdelay", S(VDEL),0, 3, "a", "axio", (SUBR)vdelset, (SUBR)vdelay }, 957 { "vdelay3", S(VDEL),0, 3, "a", "axio", (SUBR)vdelset, (SUBR)vdelay3 }, 958 { "vdelayxwq",S(VDELXQ),0,3, "aaaa", "aaaaaiio", 959 (SUBR)vdelxqset, (SUBR)vdelayxwq}, 960 { "vdelayxws",S(VDELXS),0,3, "aa", "aaaiio", (SUBR)vdelxsset, 961 (SUBR)vdelayxws }, 962 { "vdelayxw", S(VDELX),0, 3, "a", "aaiio", 963 (SUBR)vdelxset, (SUBR)vdelayxw}, 964 { "vdelayxq", S(VDELXQ),0,3, "aaaa", "aaaaaiio", 965 (SUBR)vdelxqset, (SUBR)vdelayxq}, 966 { "vdelayxs", S(VDELXS),0,3, "aa", "aaaiio", 967 (SUBR)vdelxsset, (SUBR)vdelayxs}, 968 { "vdelayx", S(VDELX),0, 3, "a", "aaiio", (SUBR)vdelxset, (SUBR)vdelayx}, 969 { "deltapx", S(DELTAPX),0,3, "a", "aio", (SUBR)tapxset, (SUBR)deltapx }, 970 { "deltapxw", S(DELTAPX),0,3, "", "aaio", (SUBR)tapxset, (SUBR)deltapxw }, 971 { "multitap", S(MDEL),0, 3, "a", "am", 972 (SUBR)multitap_set,(SUBR)multitap_play}, 973 { "comb", S(COMB),0, 3, "a", "akioo", (SUBR)cmbset, (SUBR)comb }, 974 { "combinv",S(COMB),0, 3, "a", "akioo", (SUBR)cmbset, (SUBR)invcomb }, 975 { "alpass", S(COMB),0, 3, "a", "axioo", (SUBR)cmbset, (SUBR)alpass }, 976 { "strset", S(STRSET_OP),0, 1, "", "iS", 977 (SUBR) strset_init, NULL, NULL }, 978 { "strget", S(STRGET_OP),0, 1, "S", "i", 979 (SUBR) strget_init, NULL, NULL }, 980 { "S", S(STRGET_OP),0, 1, "S", "i", 981 (SUBR) s_opcode, NULL, NULL }, 982 { "S", S(STRGET_OP),0, 3, "S", "k", 983 (SUBR) s_opcode,(SUBR) s_opcode_k, NULL }, 984 { "strcpy", S(STRCPY_OP),0, 1, "S", "S", 985 (SUBR) strcpy_opcode_S, NULL, NULL }, 986 { "strcpy", S(STRGET_OP),0, 1, "S", "i", 987 (SUBR) strcpy_opcode_p, NULL, NULL }, 988 { "strcpyk", S(STRCPY_OP),0, 3, "S", "S", 989 (SUBR) strcpy_opcode_S, (SUBR) strcpy_opcode_S, NULL }, 990 { "strcpyk.k", S(STRGET_OP),0, 3, "S", "k", 991 (SUBR) strcpy_opcode_p, (SUBR) strcpy_opcode_p, NULL }, 992 { "strcat", S(STRCAT_OP),0, 1, "S", "SS", 993 (SUBR) strcat_opcode, NULL, NULL }, 994 { "strcatk", S(STRCAT_OP),0, 3, "S", "SS", 995 (SUBR) strcat_opcode, (SUBR) strcat_opcode, NULL }, 996 { "strcmp", S(STRCMP_OP),0, 1, "i", "SS", 997 (SUBR) strcmp_opcode, NULL, NULL }, 998 { "strcmpk", S(STRCAT_OP),0, 3, "k", "SS", 999 (SUBR) strcmp_opcode, (SUBR) strcmp_opcode, NULL }, 1000 { "sprintf", S(SPRINTF_OP),0, 1, "S", "STN", 1001 (SUBR) sprintf_opcode, NULL, NULL }, 1002 { "sprintfk", S(SPRINTF_OP),WR, 3, "S", "SUN", 1003 (SUBR) sprintf_opcode, (SUBR) sprintf_opcode, NULL }, 1004 { "printf_i", S(PRINTF_OP),0, 1, "", "SiN", /* SiTN */ 1005 (SUBR) printf_opcode_init, NULL, NULL }, 1006 { "printf", S(PRINTF_OP),WR, 3, "", "SkN", /* SkUN */ 1007 (SUBR) printf_opcode_set, (SUBR) printf_opcode_perf, NULL }, 1008 { "puts", S(PUTS_OP),WR, 3, "", "Sko", 1009 (SUBR) puts_opcode_init, (SUBR) puts_opcode_perf, NULL }, 1010 { "strtod", S(STRSET_OP),0, 1, "i", "S", 1011 (SUBR) strtod_opcode_S, NULL, NULL }, 1012 { "strtod", S(STRTOD_OP),0, 1, "i", "i", 1013 (SUBR) strtod_opcode_p, NULL, NULL }, 1014 { "strtodk", S(STRSET_OP),0, 3, "k", "S", 1015 (SUBR) strtod_opcode_S, (SUBR) strtod_opcode_S, NULL }, 1016 { "strtol", S(STRSET_OP),0, 1, "i", "S", 1017 (SUBR) strtol_opcode_S, NULL, NULL }, 1018 { "strtol", S(STRTOD_OP),0, 1, "i", "i", 1019 (SUBR) strtol_opcode_p, NULL, NULL }, 1020 { "strtolk", S(STRSET_OP),0, 3, "k", "S", 1021 (SUBR) strtol_opcode_S, (SUBR) strtol_opcode_S, NULL }, 1022 { "strsub", S(STRSUB_OP),0, 1, "S", "Soj", 1023 (SUBR) strsub_opcode, NULL, NULL }, 1024 { "strsubk", S(STRSUB_OP),0, 3, "S", "Skk", 1025 (SUBR) strsub_opcode, (SUBR) strsub_opcode, NULL }, 1026 { "strchar", S(STRCHAR_OP),0, 1, "i", "So", 1027 (SUBR) strchar_opcode, NULL, NULL }, 1028 { "strchark", S(STRCHAR_OP),0, 3, "k", "SO", 1029 (SUBR) strchar_opcode, (SUBR) strchar_opcode, NULL }, 1030 { "strlen", S(STRLEN_OP),0, 1, "i", "S", 1031 (SUBR) strlen_opcode, NULL, NULL }, 1032 { "strlenk", S(STRLEN_OP),0, 3, "k", "S", 1033 (SUBR) strlen_opcode, (SUBR) strlen_opcode, NULL }, 1034 { "strupper", S(STRUPPER_OP),0, 1, "S", "S", 1035 (SUBR) strupper_opcode, NULL, NULL }, 1036 { "strupperk", S(STRUPPER_OP),0, 3, "S", "S", 1037 (SUBR) strupper_opcode, (SUBR) strupper_opcode, NULL }, 1038 { "strlower", S(STRUPPER_OP),0, 1, "S", "S", 1039 (SUBR) strlower_opcode, NULL, NULL }, 1040 { "strlowerk", S(STRUPPER_OP),0, 3, "S", "S", 1041 (SUBR) strlower_opcode, (SUBR) strlower_opcode, NULL }, 1042 { "getcfg", S(GETCFG_OP),0, 1, "S", "i", 1043 (SUBR) getcfg_opcode, NULL, NULL }, 1044 { "strindex", S(STRINDEX_OP),0, 1, "i", "SS", 1045 (SUBR) strindex_opcode, NULL, NULL }, 1046 { "strindexk", S(STRINDEX_OP),0, 3, "k", "SS", 1047 (SUBR) strindex_opcode, (SUBR) strindex_opcode, NULL }, 1048 { "strrindex", S(STRINDEX_OP),0, 1, "i", "SS", 1049 (SUBR) strrindex_opcode, NULL, NULL }, 1050 { "strrindexk", S(STRINDEX_OP),0, 3, "k", "SS", 1051 (SUBR) strrindex_opcode, (SUBR) strrindex_opcode, NULL }, 1052 { "print_type", S(PRINT_TYPE_OP),0, 1, "", ".", 1053 (SUBR) print_type_opcode, NULL, NULL }, 1054 #ifdef HAVE_CURL 1055 { "strfromurl", S(STRCPY_OP), 0, 1, "S", "S", (SUBR) str_from_url }, 1056 #endif 1057 { "changed.S", S(STRCHGD),_QQ, 3, "k", "S", 1058 (SUBR) str_changed, (SUBR) str_changed_k, NULL }, 1059 { "changed2.S", S(STRCHGD),0, 3, "k", "S", 1060 (SUBR) str_changed, (SUBR) str_changed_k, NULL }, 1061 /* { "loop_lt", 0xfffb }, */ 1062 /* { "loop_le", 0xfffb }, */ 1063 /* { "loop_gt", 0xfffb }, */ 1064 /* { "loop_ge", 0xfffb }, */ 1065 { "loop_lt.i", S(LOOP_OPS),0, 1, "", "iiil", (SUBR) loop_l_i, NULL, NULL }, 1066 { "loop_le.i", S(LOOP_OPS),0, 1, "", "iiil", (SUBR) loop_le_i, NULL, NULL }, 1067 { "loop_gt.i", S(LOOP_OPS),0, 1, "", "iiil", (SUBR) loop_g_i, NULL, NULL }, 1068 { "loop_ge.i", S(LOOP_OPS),0, 1, "", "iiil", (SUBR) loop_ge_i, NULL, NULL }, 1069 { "loop_lt.k", S(LOOP_OPS),0, 2, "", "kkkl", NULL, (SUBR) loop_l_p, NULL }, 1070 { "loop_le.k", S(LOOP_OPS),0, 2, "", "kkkl", NULL, (SUBR) loop_le_p, NULL }, 1071 { "loop_gt.k", S(LOOP_OPS),0, 2, "", "kkkl", NULL, (SUBR) loop_g_p, NULL }, 1072 { "loop_ge.k", S(LOOP_OPS),0, 2, "", "kkkl", NULL, (SUBR) loop_ge_p, NULL }, 1073 { "chnget", 0xFFFF, _CR }, 1074 { "chnget.i", S(CHNGET),_CR, 1, "i", "S", 1075 (SUBR) chnget_opcode_init_i, NULL, NULL }, 1076 { "chnget.k", S(CHNGET),_CR, 3, "k", "S", 1077 (SUBR) chnget_opcode_init_k, (SUBR) notinit_opcode_stub, NULL }, 1078 { "chngeti.i", S(CHNGET),_CR, 1, "i[]", "S[]", 1079 (SUBR) chnget_array_opcode_init_i, NULL, NULL }, 1080 { "chngeta.a", S(CHNGET),_CR, 3, "a[]", "S[]", 1081 (SUBR) chnget_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1082 { "chngets.s", S(CHNGET),_CR, 3, "S[]", "S[]", 1083 (SUBR) chnget_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1084 { "chngetk.k", S(CHNGET),_CR, 3, "k[]", "S[]", 1085 (SUBR) chnget_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1086 { "chnget.a", S(CHNGET),_CR, 3, "a", "S", 1087 (SUBR) chnget_opcode_init_a, (SUBR) notinit_opcode_stub }, 1088 { "chnget.S", S(CHNGET),_CR, 3, "S", "S", 1089 (SUBR) chnget_opcode_init_S, (SUBR) chnget_opcode_perf_S, NULL}, 1090 { "chngetks", S(CHNGET),_CR, 2, "S", "S", 1091 NULL, (SUBR) chnget_opcode_perf_S, NULL}, 1092 //{ "chnset", 0xFFFB, _CW }, 1093 1094 { "chnseti.i", S(CHNGET),_CW, 1, "", "i[]S[]", 1095 (SUBR) chnset_array_opcode_init_i, NULL, NULL }, 1096 { "chnsetk.k", S(CHNGET),_CW, 3, "", "k[]S[]", 1097 (SUBR) chnset_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1098 { "chnseta.a", S(CHNGET),_CW, 3, "", "a[]S[]", 1099 (SUBR) chnset_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1100 { "chnsets.s", S(CHNGET),_CW, 3, "", "S[]S[]", 1101 (SUBR) chnset_array_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1102 1103 { "chnset.i", S(CHNGET),_CW, 1, "", "iS", 1104 (SUBR) chnset_opcode_init_i, NULL, NULL }, 1105 // { "chnset.r", S(CHNGET),0, 1, "", "iS", 1106 // (SUBR) chnset_opcode_init_i, NULL, NULL }, 1107 // { "chnset.c", S(CHNGET),0, 1, "", "iS", 1108 // (SUBR) chnset_opcode_init_i, NULL, NULL }, 1109 { "chnset.k", S(CHNGET),_CW, 3, "", "kS", 1110 (SUBR) chnset_opcode_init_k, (SUBR) notinit_opcode_stub, NULL }, 1111 { "chnset.a", S(CHNGET),_CW, 3, "", "aS", 1112 (SUBR) chnset_opcode_init_a, (SUBR) notinit_opcode_stub }, 1113 { "chnset.S", S(CHNGET),_CW, 3, "", "SS", 1114 (SUBR) chnset_opcode_init_S, (SUBR) chnset_opcode_perf_S, NULL }, 1115 { "chnsetks", S(CHNGET),_CW, 2, "", "SS", 1116 NULL, (SUBR) chnset_opcode_perf_S, NULL }, 1117 { "chnmix", S(CHNGET), _CB, 3, "", "aS", 1118 (SUBR) chnmix_opcode_init, (SUBR) notinit_opcode_stub }, 1119 { "chnclear", S(CHNCLEAR), _CW, 3, "", "W", 1120 (SUBR) chnclear_opcode_init, (SUBR) notinit_opcode_stub }, 1121 { "chn_k", S(CHN_OPCODE_K), _CW, 1, "", "SiooooooooN", 1122 (SUBR) chn_k_opcode_init, NULL, NULL }, 1123 { "chn_k", S(CHN_OPCODE_K), _CW, 1, "", "SSooooooooN", 1124 (SUBR) chn_k_opcode_init_S, NULL, NULL}, 1125 { "chn_a", S(CHN_OPCODE), _CW, 1, "", "Si", 1126 (SUBR) chn_a_opcode_init, NULL, NULL }, 1127 { "chn_S", S(CHN_OPCODE), _CW, 1, "", "Si", 1128 (SUBR) chn_S_opcode_init, NULL, NULL }, 1129 //{ "chnexport", 0xFFFF, 0, 0, NULL, NULL, NULL, NULL }, 1130 { "chnexport.i", S(CHNEXPORT_OPCODE),0, 1, "i", "Sioooo", 1131 (SUBR) chnexport_opcode_init, NULL, NULL }, 1132 { "chnexport.k", S(CHNEXPORT_OPCODE),0, 1, "k", "Sioooo", 1133 (SUBR) chnexport_opcode_init, NULL, NULL }, 1134 { "chnexport.a", S(CHNEXPORT_OPCODE),0, 1, "a", "Si", 1135 (SUBR) chnexport_opcode_init, NULL, NULL }, 1136 { "chnexport.S", S(CHNEXPORT_OPCODE),0, 1, "S", "Si", 1137 (SUBR) chnexport_opcode_init, NULL, NULL }, 1138 { "chnparams", S(CHNPARAMS_OPCODE),_CR, 1, "iiiiii", "S", 1139 (SUBR) chnparams_opcode_init, NULL, NULL }, 1140 /* these opcodes have never been fully implemented 1141 { "chnrecv", S(CHNSEND), _CR, 3, "", "So", 1142 (SUBR) chnrecv_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1143 { "chnsend", S(CHNSEND),0, 3, "", "So", 1144 (SUBR) chnsend_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1145 */ 1146 //{ "chano", 0xFFFD, _CW, 0, NULL, NULL, NULL, NULL }, 1147 { "chano.k", S(ASSIGN),_CW, 2, "", "kk", 1148 NULL, (SUBR) chano_opcode_perf_k, NULL }, 1149 { "chano.a", S(ASSIGN),_CW, 2, "", "ak", 1150 NULL, (SUBR) chano_opcode_perf_a }, 1151 { "pvsout", S(FCHAN),0, 3, "", "fk", 1152 (SUBR) pvsout_init, (SUBR) pvsout_perf, NULL }, 1153 //{ "chani", 0xFFFF, _CR, 0, NULL, NULL, NULL, NULL }, 1154 { "chani.k", S(ASSIGN),_CR, 2, "k", "k", 1155 NULL, (SUBR) chani_opcode_perf_k, NULL }, 1156 { "chani.a", S(ASSIGN),_CR, 2, "a", "k", 1157 NULL, (SUBR) chani_opcode_perf_a }, 1158 { "pvsin", S(FCHAN),0, 3, "f", "kooopo", 1159 (SUBR) pvsin_init, (SUBR) pvsin_perf, NULL }, 1160 { "sense", S(KSENSE),0, 2, "kz", "", 1161 NULL, (SUBR) sensekey_perf, NULL }, 1162 { "sensekey", S(KSENSE),0, 2, "kz", "", 1163 NULL, (SUBR) sensekey_perf, NULL }, 1164 { "remove", S(DELETEIN),0, 1, "", "T", 1165 (SUBR) delete_instr, NULL, NULL }, 1166 // { "##globallock", S(GLOBAL_LOCK_UNLOCK),0, 3, "", "i", 1167 // globallock, globallock, NULL}, 1168 // { "##globalunlock", S(GLOBAL_LOCK_UNLOCK),0, 3, "", "i", 1169 // globalunlock, globalunlock, NULL}, 1170 { "##error",S(ERRFN),0, 1, "i", "i", error_fn, NULL, NULL }, 1171 { "exprandi.i",S(PRANDI),0, 1, "i", "kxx", iexprndi, NULL, NULL }, 1172 { "exprandi.k",S(PRANDI),0, 3, "k", "kxx", exprndiset, kexprndi, NULL }, 1173 { "exprandi.a",S(PRANDI),0, 2, "a", "kxx", exprndiset, aexprndi }, 1174 { "cauchyi.i", S(PRANDI),0, 1, "i", "kxx", icauchyi, NULL, NULL }, 1175 { "cauchyi.k", S(PRANDI),0, 3, "k", "kxx", cauchyiset, kcauchyi, NULL }, 1176 { "cauchyi.a", S(PRANDI),0, 2, "a", "kxx", cauchyiset, acauchyi }, 1177 { "gaussi.i", S(PRANDI),0, 1, "i", "kxx", igaussi, NULL, NULL }, 1178 { "gaussi.k", S(PRANDI),0, 3, "k", "kxx", gaussiset, kgaussi, NULL }, 1179 { "gaussi.a", S(PRANDI),0, 2, "a", "kxx", gaussiset, agaussi }, 1180 { "ftresizei", S(RESIZE), TB, 1, "i", "ii", (SUBR) resize_table, NULL, NULL }, 1181 { "ftresize", S(RESIZE), TB, 2, "k", "kk", NULL, (SUBR) resize_table, NULL }, 1182 { "compileorc", S(COMPILE), 0, 1, "i", "S", (SUBR) compile_orc_i, NULL, NULL }, 1183 { "compilecsd", S(COMPILE), 0, 1, "i", "S", (SUBR) compile_csd_i, NULL, NULL }, 1184 { "compilestr", S(COMPILE), 0, 1, "i", "S", (SUBR) compile_str_i, NULL, NULL }, 1185 { "evalstr", S(COMPILE), 0, 1, "i", "S", (SUBR) eval_str_i, NULL, NULL }, 1186 { "evalstr", S(COMPILE), 0, 2, "k", "Sk", NULL, (SUBR) eval_str_k, NULL }, 1187 { "readscore", S(COMPILE), 0, 1, "i", "S", (SUBR) read_score_i, NULL, NULL }, 1188 { "return", S(RETVAL), 0, 1, "", "i", (SUBR) retval_i, NULL, NULL }, 1189 /* ----------------------------------------------------------------------- */ 1190 { "monitor", sizeof(MONITOR_OPCODE), IB, 3, "mmmmmmmmmmmmmmmmmmmmmmmm", "", 1191 (SUBR) monitor_opcode_init, (SUBR) notinit_opcode_stub, NULL }, 1192 { "outrg", S(OUTRANGE), IR,3, "", "ky", 1193 (SUBR)outRange_i, (SUBR)outRange}, 1194 { "nchnls_hw", S(ASSIGN), 0,1, "ii", "", 1195 (SUBR)hw_channels}, 1196 { "midiarp", S(MIDIARP),0, 3, "kk", "kO", 1197 midiarp_set, midiarp, NULL }, 1198 {"lpcfilter", S(LPCFIL), 0, 3, "a", "akkiiio", 1199 (SUBR) lpfil_init, (SUBR) lpfil_perf}, 1200 {"lpcfilter", S(LPCFIL2), 0, 3, "a", "aakkiio", 1201 (SUBR) lpfil2_init, (SUBR) lpfil2_perf}, 1202 {"allpole", S(LPCFIL3), 0, 3, "a", "ak[]", 1203 (SUBR) lpfil3_init, (SUBR) lpfil3_perf}, 1204 {"lpcanal", S(LPREDA), 0, 3, "k[]kkk", "kkiiio", 1205 (SUBR) lpred_alloc, (SUBR) lpred_run}, 1206 {"lpcanal", S(LPREDA2), 0, 3, "k[]kkk", "akkiio", 1207 (SUBR) lpred_alloc2, (SUBR) lpred_run2}, 1208 {"lpcanal", S(LPREDA), 0, 1, "i[]iii", "iiii", 1209 (SUBR) lpred_i, NULL}, 1210 {"pvslpc", S(LPCPVS), 0, 3, "f", "aiiio", 1211 (SUBR) lpcpvs_init, (SUBR) lpcpvs}, 1212 {"pvscfs", S(PVSCFS), 0, 3, "k[]kk", "fip", 1213 (SUBR) pvscoefs_init, (SUBR) pvscoefs}, 1214 {"apoleparams", S(CF2P), 0, 3, "k[]", "k[]", 1215 (SUBR) coef2parm_init, (SUBR) coef2parm}, 1216 {"resonbnk", S(RESONB), 0, 3, "a", "ak[]kkipoo", 1217 (SUBR) resonbnk_init, (SUBR) resonbnk}, 1218 /* terminate list */ 1219 { NULL, 0, 0, 0, NULL, NULL, NULL, NULL, NULL } 1220 }; 1221