> module Haskore.Interface.CSound.OrchestraFunction where
>
> elemSorted :: (Ord a) => a -> [a] -> Bool
> elemSorted x ys =
> case dropWhile (GT==) (map (compare x) ys) of
> EQ:_ -> True
> _ -> False
> allowedArgs :: [(String, [Int])] -> String -> Int -> Bool
> allowedArgs table name count =
> maybe True (elemSorted count) (lookup name table)
>
> argCountTable :: [(String, [Int])]
> argCountTable = [("=", [1]),
> ("-", [1]),
> ("a", [1]),
> ("abs", [1]),
> ("active", [1]),
> ("adsr", [4, 5]),
> ("adsyn", [4]),
> ("adsynt", [6, 7]),
> ("aftouch", [0..2]),
> ("alpass", [3..5]),
> ("ampdb", [1]),
> ("ampdbfs", [1]),
> ("ampmidi", [1, 2]),
> ("areson", [3..5]),
> ("aresonk", [3..5]),
> ("atone", [2, 3]),
> ("atonek", [2, 3]),
> ("atonex", [2..4]),
> ("babo", [7..9]),
> ("balance", [2..4]),
> ("bamboo", [2..8]),
> ("bbcutm", [6..9]),
> ("bbcuts", [7..10]),
> ("betarand", [3]),
> ("bexprnd", [1]),
> ("biquad", [7, 8]),
> ("biquada", [7, 8]),
> ("birnd", [1]),
> ("bqrez", [3..5]),
> ("butterbp", [3, 4]),
> ("butterbr", [3, 4]),
> ("butterhp", [2, 3]),
> ("butterlp", [2, 3]),
> ("button", [1]),
> ("buzz", [4, 5]),
> ("cabasa", [2..5]),
> ("cauchy", [1]),
> ("cent", [1]),
> ("chanctrl", [2..4]),
> ("changed", [1..]),
> ("checkbox", [1]),
> ("clear", [1..]),
> ("clfilt", [4..8]),
> ("clip", [3, 4]),
> ("clockoff", [1]),
> ("clockon", [1]),
> ("comb", [3..5]),
> ("control", [1]),
> ("convolve", [2, 3]),
> ("cos", [1]),
> ("cosh", [1]),
> ("cosinv", [1]),
> ("cps2pch", [2]),
> ("cpsmidi", [0]),
> ("cpsmidib", [0, 1]),
> ("cpsoct", [1]),
> ("cpspch", [1]),
> ("cpstmid", [1]),
> ("cpstun", [3]),
> ("cpstuni", [2]),
> ("cpsxpch", [4]),
> ("cpuprc", [2]),
> ("cross2", [6]),
> ("crunch", [2..5]),
> ("ctrl14", [5, 6]),
> ("ctrl21", [6, 7]),
> ("ctrl7", [4, 5]),
> ("ctrlinit", [3, 5..65]),
> ("cuserrnd", [3]),
> ("dam", [6]),
> ("db", [1]),
> ("dbamp", [1]),
> ("dbfsamp", [1]),
> ("dcblock", [1, 2]),
> ("dconv", [3]),
> ("delay", [1, 2]),
> ("delay1", [1, 2]),
> ("delayr", [1]),
> ("delayw", [1]),
> ("deltap", [1]),
> ("deltap3", [1]),
> ("deltapi", [1]),
> ("deltapn", [1]),
> ("deltapx", [2]),
> ("deltapxw", [3]),
> ("diff", [1, 2]),
> ("diskin", [2..6]),
> ("dispfft", [3..6]),
> ("display", [2..4]),
> ("distort", [5]),
> ("divz", [3]),
> ("downsamp", [1, 2]),
> ("dripwater", [2..8]),
> ("dumpk", [4]),
>
> ("duserrnd", [1]),
> ("envlpx", [7, 8]),
> ("envlpxr", [6..8]),
>
> ("exp", [1]),
> ("expon", [3]),
> ("exprand", [1]),
> ("expseg", [3, 5..]),
> ("expsega", [3, 5..]),
> ("expsegr", [5, 7..]),
> ("filelen", [1]),
> ("filenchnls", [1]),
> ("filepeak", [1, 2]),
> ("filesr", [1]),
> ("filter2", [3..]),
> ("fin", [4..]),
> ("fini", [4..]),
> ("fink", [4..]),
> ("fiopen", [2]),
> ("flanger", [3, 4]),
> ("flashtxt", [2]),
>
> ("fmb3", [11]),
> ("fmbell", [11]),
> ("fmmetal", [11]),
> ("fmpercfl", [11]),
> ("fmrhode", [11]),
> ("fmvoice", [11]),
> ("fmwurlie", [11]),
> ("fof", [12..15]),
> ("fof2", [14, 15]),
> ("fofilter", [4, 5]),
> ("fog", [13..16]),
> ("fold", [2]),
> ("follow", [2]),
> ("follow2", [3]),
> ("foscil", [6, 7]),
> ("focsili", [6, 7]),
> ("fout", [3..]),
> ("fouti", [4..]),
> ("foutir", [4..]),
> ("foutk", [3..]),
> ("fprintks", [2..]),
> ("fprints", [2..]),
> ("frac", [1]),
> ("ftchnls", [1]),
> ("ftgen", [5..]),
> ("ftlen", [1]),
> ("ftload", [3..]),
> ("ftloadk", [4..]),
> ("ftlptim", [1]),
> ("ftmorf", [3]),
> ("ftsave", [3..]),
> ("ftsavek", [4..]),
> ("ftsr", [1]),
> ("gain", [2..4]),
> ("gauss", [1]),
> ("gbuzz", [6, 7]),
> ("gogobel", [8]),
> ("grain", [9, 10]),
> ("grain2", [6..9]),
> ("grain3", [11..13]),
> ("granule", [17..23]),
> ("guiro", [2..7]),
> ("harmon", [8]),
> ("hilbert", [1]),
> ("hrtfer", [4]),
> ("hsboscil", [6..8]),
> ("i", [1]),
> ("ihold", [0]),
> ("in", [0]),
> ("in32", [0]),
> ("inch", [1]),
> ("inh", [0]),
> ("init", [1]),
> ("initc14", [4]),
> ("initc21", [5]),
> ("initc7", [3]),
> ("ino", [0]),
> ("inq", [0]),
> ("ins", [0]),
> ("int", [1]),
> ("integ", [1, 2]),
> ("invalue", [1]),
> ("inx", [0]),
> ("inz", [1]),
> ("jitter", [3]),
> ("jitter2", [7]),
> ("jspline", [3]),
> ("ktableseg", [3, 5..]),
> ("lfo", [2, 3]),
> ("limit", [3]),
> ("line", [3]),
> ("linen", [4]),
> ("linenr", [4]),
> ("lineto", [2]),
> ("linrand", [1]),
> ("linseg", [3, 5..]),
> ("linsegr", [5, 7..]),
> ("locsend", [0]),
> ("locsig", [4]),
> ("log", [1]),
> ("log10", [1]),
> ("logbtwo", [1]),
> ("loopseg", [4, 6..]),
> ("lorenz", [8, 9]),
> ("loscil", [3..10]),
> ("loscil3", [3..10]),
> ("lowpass2", [3, 4]),
> ("lowres", [3, 4]),
> ("lowresx", [3..5]),
> ("lpf18", [3]),
> ("lpfreson", [2]),
> ("lphasor", [1..6]),
> ("lpinterp", [3]),
> ("lposcil", [5, 6]),
> ("lposcil3", [5, 6]),
> ("lpread", [2..4]),
> ("lpreson", [1]),
> ("lpshold", [4, 6..]),
> ("lpslot", [1]),
> ("mac", [2, 4..]),
> ("maca", [1..]),
> ("madsr", [4..6]),
> ("mandel", [4]),
> ("mandol", [7, 8]),
> ("marimba", [9..11]),
> ("massign", [2]),
> ("maxalloc", [2]),
> ("max_k", [3]),
> ("mclock", [1]),
> ("mdelay", [5]),
> ("metro", [1, 2]),
> ("midic14", [4, 5]),
> ("midic21", [5, 6]),
> ("midic7", [3, 4]),
> ("midichannelaftertouch", [1..3]),
> ("midichn", [0]),
> ("midicontrolchange", [2..4]),
> ("midictrl", [1..3]),
> ("mididefault", [2]),
> ("midiin", [0]),
> ("midinoteoff", [2]),
> ("midinoteoncps", [2]),
> ("midinoteonkey", [2]),
> ("midinoteonoct", [2]),
> ("midinoteonpch", [2]),
> ("midion", [3]),
> ("midion2", [4]),
> ("midiout", [4]),
> ("midipitchbend", [1..3]),
> ("midipolyaftertouch", [2..4]),
> ("midiprogramchange", [1]),
> ("mirror", [3]),
> ("moog", [9]),
> ("moogladder", [3, 4]),
> ("moogvcf", [3..5]),
> ("moscil", [5]),
> ("mpulse", [2, 3]),
> ("mrtmsg", [1]),
> ("multitap", [1, 3..]),
> ("mute", [1, 2]),
> ("mxadsr", [4..6]),
> ("nestedap", [5, 7, 9, 10]),
> ("nlfilt", [6]),
> ("noise", [2]),
> ("noteoff", [3]),
> ("noteon", [3]),
> ("noteondur", [4]),
> ("noteondur2", [4]),
> ("notnum", [0]),
> ("nreverb", [3..8]),
> ("nrpn", [3]),
> ("nsamp", [1]),
> ("nstrnum", [1]),
> ("ntrpol", [3..5]),
> ("octave", [1]),
> ("octcps", [1]),
> ("octmidi", [0]),
> ("octmidib", [0, 1]),
> ("octpch", [1]),
> ("oscbnk", [19..26]),
> ("oscil", [3, 4]),
> ("oscil1", [4]),
> ("oscil1i", [4]),
> ("oscil3", [3, 4]),
> ("oscili", [3, 4]),
> ("oscilikt", [3..5]),
> ("osciliktp", [3, 4]),
> ("oscilikts", [5, 6]),
> ("osciln", [4]),
> ("oscils", [3, 4]),
> ("oscilx", [4]),
> ("out", [1]),
> ("out32", [32]),
> ("outc", [1..]),
> ("outch", [2, 4..]),
> ("outh", [6]),
> ("outiat", [4]),
> ("outic", [5]),
> ("outic14", [6]),
> ("outipat", [5]),
> ("outipb", [4]),
> ("outipc", [4]),
> ("outkat", [4]),
> ("outkc", [5]),
> ("outkc14", [6]),
> ("outkpat", [5]),
> ("outkpb", [4]),
> ("outkpc", [4]),
> ("outo", [8]),
> ("outq", [4]),
> ("outq1", [1]),
> ("outq2", [1]),
> ("outq3", [1]),
> ("outq4", [1]),
> ("outs", [2]),
> ("outs1", [1]),
> ("outs2", [1]),
> ("outvalue", [2]),
> ("outx", [16]),
> ("outz", [1]),
> ("p", [1]),
> ("pan", [4..6]),
> ("pareq", [4..6]),
> ("pcauchy", [1]),
> ("pchbend", [0..2]),
> ("pchmidi", [0]),
> ("pchmidib", [0, 1]),
> ("pchoct", [1]),
> ("peak", [1]),
> ("pgmassign", [2]),
> ("phaser1", [4, 5]),
> ("phaser2", [7]),
> ("phasor", [1, 2]),
> ("phasorbnk", [3, 4]),
> ("pinkish", [1..5]),
> ("pitch", [5..13]),
> ("pitchamdf", [3..8]),
> ("planet", [10..12]),
> ("pluck", [5..7]),
> ("poisson", [1]),
> ("polyaft", [1..3]),
> ("port", [2, 3]),
> ("portk", [2, 3]),
> ("poscil", [3, 4]),
> ("poscil3", [3, 4]),
> ("pow", [2, 3]),
> ("powoftwo", [1]),
> ("prealloc", [2]),
> ("print", [1..]),
> ("printk", [2, 3]),
> ("printk2", [1, 2]),
> ("printks", [2..]),
> ("prints", [1..]),
> ("product", [2..]),
> ("pset", [1..]),
> ("pvadd", [5..10]),
> ("pvbufread", [2]),
> ("pvcross", [5, 6]),
> ("pvinterp", [9]),
> ("pvoc", [3..7]),
> ("pvread", [3]),
>
> ("rand", [1..4]),
> ("randh", [2..5]),
> ("randi", [2..5]),
> ("random", [2]),
> ("randomh", [3]),
> ("randomi", [3]),
> ("readclock", [1]),
> ("readk", [3, 4]),
>
> ("reinit", [1]),
> ("release", [0]),
> ("repluck", [6]),
> ("reson", [3..5]),
> ("resonk", [3..5]),
> ("resonr", [3..5]),
> ("resonx", [3..6]),
> ("resonxk", [3, 6]),
> ("resony", [5..8]),
> ("resonz", [3..5]),
> ("reverb", [2, 3]),
> ("rezzy", [3, 5]),
> ("rms", [1..3]),
> ("rnd", [1]),
> ("rnd31", [2, 3]),
> ("rspline", [4]),
> ("rtclock", [0]),
> ("s16b14", [1, 7..]),
> ("s32b14", [1, 7..]),
> ("samphold", [2..4]),
> ("sandpaper", [2..5]),
> ("scanhammer", [4]),
> ("scans", [4, 5]),
> ("scantable", [7]),
> ("scanu", [18]),
> ("schedkwhen", [6..]),
> ("schedkwhennamed", [6..]),
> ("schedule", [3..]),
> ("schedwhen", [4..]),
> ("seed", [1]),
> ("sekere", [2..5]),
> ("semitone", [1]),
> ("sense", [0]),
> ("sensekey", [0]),
> ("seqtime", [5]),
> ("setctrl", [3]),
> ("setksmps", [1]),
> ("sfilist", [1]),
> ("sfinstr", [6..8]),
> ("sfinstr3", [6..8]),
> ("sfinstr3m", [6..8]),
> ("sfinstrm", [6..8]),
> ("sfload", [1]),
> ("sfpassign", [2]),
> ("sfplay", [5..7]),
> ("sfplay3", [5..7]),
> ("sfplay3m", [5..7]),
> ("sfplaym", [5..7]),
> ("sfplist", [1]),
> ("sfpreset", [4]),
> ("shaker", [5, 6]),
> ("sin", [1]),
> ("sinh", [1]),
> ("sininv", [1]),
> ("sleighbells", [2..8]),
> ("slider16", [1, 6..]),
>
> ("sndwarp", [10]),
> ("sndwarpst", [10]),
> ("soundin", [1..4]),
> ("soundout", [2, 3]),
> ("space", [6]),
> ("spat3d", [9, 10]),
> ("spat3di", [7, 8]),
> ("spat3dt", [8, 9]),
> ("spdist", [4]),
> ("specaddm", [2, 3]),
> ("specdiff", [1]),
> ("specdisp", [2, 3]),
> ("specfilt", [2]),
> ("spechist", [1]),
> ("specptrk", [8..13]),
> ("specscap", [3]),
> ("specsum", [1, 2]),
> ("spectrum", [4..9]),
> ("splitrig", [5..]),
> ("spsend", [0]),
> ("sqrt", [1]),
> ("statevar", [3, 5]),
> ("stix", [2..5]),
> ("streson", [3]),
> ("strset", [2]),
> ("subinstr", [1..]),
> ("subinstrinit", [1..]),
> ("sum", [1..]),
> ("svfilter", [3, 4]),
> ("syncgrain", [8]),
> ("table", [2..5]),
> ("table3", [2..5]),
> ("tablecopy", [2]),
> ("tablegpw", [1]),
> ("tablei", [2..5]),
> ("tableicopy", [2]),
> ("tableigpw", [1]),
> ("tableikt", [2..5]),
> ("tableimix", [9]),
> ("tableiw", [3..6]),
> ("tablekt", [2..5]),
> ("tablemix", [9]),
> ("tableng", [1]),
> ("tablera", [3]),
> ("tableseg", [3, 5..]),
> ("tablew", [3..6]),
> ("tablewa", [3]),
> ("tablewkt", [3..6]),
> ("tablexkt", [4..7]),
> ("tablexseg", [3, 5..]),
> ("tambourine", [2..8]),
> ("tan", [1]),
> ("tanh", [1]),
> ("taninv", [1]),
> ("taninv2", [2]),
> ("tbvcf", [5, 6]),
> ("tempest", [10..12]),
> ("tempo", [2]),
> ("tempoval", [0]),
> ("timeinstk", [0]),
> ("timeinsts", [0]),
> ("timek", [0]),
> ("times", [0]),
> ("tival", [0]),
> ("tlineto", [3]),
> ("tone", [2, 3]),
> ("tonek", [2, 3]),
> ("tonex", [2..4]),
> ("transeg", [4, 7..]),
> ("trigger", [3]),
> ("trigseq", [6..]),
> ("trirand", [1]),
> ("turnoff", [0]),
> ("turnon", [1, 2]),
> ("unirand", [1]),
> ("upsamp", [1]),
> ("urd", [1]),
> ("vadd", [3]),
> ("valpass", [4..6]),
> ("vbap16", [2..4]),
>
> ("vco", [4..10]),
> ("vco2", [2..6]),
> ("vco2ft", [2, 3]),
> ("vco2ift", [2, 3]),
> ("vco2init", [1..6]),
> ("vcomb", [4..6]),
> ("vdelay", [3, 4]),
> ("vdelay3", [3, 4]),
> ("vdelayx", [4, 5]),
> ("vdelayxq", [7, 8]),
> ("vdelayxs", [5, 6]),
> ("vdelayxw", [4, 5]),
> ("vdelayxwq", [7, 8]),
> ("vdelayxqs", [5, 6]),
> ("veloc", [0..2]),
> ("vexp", [3]),
> ("vexpseg", [5, 7..]),
> ("vibes", [9]),
> ("vibr", [3]),
> ("vibrato", [9, 10]),
> ("vincr", [2]),
> ("vlowres", [5]),
> ("vlinseg", [5, 7..]),
> ("vmult", [3]),
> ("voice", [8]),
> ("vpow", [3]),
>
> ("vpvoc", [3..5]),
> ("waveset", [2, 3]),
> ("weibull", [2]),
> ("wgbow", [7, 8]),
> ("wgbowedbar", [5..9]),
> ("wgbrass", [7, 8]),
> ("wgclar", [9, 10]),
> ("wgflute", [9..12]),
> ("wgpluck", [7]),
> ("wgpluck2", [5]),
> ("wguide1", [4]),
> ("wguide2", [7]),
> ("wrap", [3]),
> ("wterrain", [8]),
> ("xadsr", [4, 5]),
> ("xin", [0]),
> ("xout", [1..]),
> ("xscanmap", [3, 4]),
> ("xscansmap", [5, 6]),
> ("xscans", [4, 5]),
> ("xscanu", [18]),
> ("xtratim", [1]),
> ("xyin", [5..7]),
> ("zacl", [2]),
> ("zakinit", [2]),
> ("zamod", [2]),
> ("zar", [1]),
> ("zarg", [2]),
> ("zaw", [2]),
> ("zawm", [2, 3]),
> ("zfilter2", [5..]),
> ("zir", [1]),
> ("ziw", [2]),
> ("ziwm", [2, 3]),
> ("zkcl", [2]),
> ("zkmod", [2]),
> ("zkr", [1]),
> ("zkw", [2]),
> ("zkwm", [2, 3])
> ]