{ "scopeName": "source.csound", "fileTypes": [ "orc", "udo" ], "name": "Csound", "patterns": [ { "include": "#commentsAndMacroCalls" }, { "name": "meta.instrument-block.csound", "begin": "\\b(?=instr\\b)", "end": "\\bendin\\b", "endCaptures": { "0": { "name": "keyword.other.csound" } }, "patterns": [ { "name": "meta.instrument-declaration.csound", "begin": "instr", "beginCaptures": { "0": { "name": "keyword.function.csound" } }, "end": "\\n", "patterns": [ { "name": "entity.name.function.csound", "match": "\\d+|[A-Z_a-z]\\w*" }, { "include": "#commentsAndMacroCalls" } ] }, { "include": "#commentsAndMacroCalls" }, { "include": "#labels" }, { "include": "#partialExpressions" } ] }, { "name": "meta.opcode-definition.csound", "begin": "\\b(?=opcode\\b)", "end": "\\bendop\\b", "endCaptures": { "0": { "name": "keyword.other.csound" } }, "patterns": [ { "name": "meta.opcode-declaration.csound", "begin": "opcode", "beginCaptures": { "0": { "name": "keyword.function.csound" } }, "end": "\\n", "patterns": [ { "name": "meta.opcode-details.csound", "begin": "[A-Z_a-z]\\w*\\b", "beginCaptures": { "0": { "name": "entity.name.function.opcode.csound" } }, "end": "(?=\\n)", "patterns": [ { "name": "meta.opcode-argument-types.csound", "begin": "\\b(?:0|[afijkKoOpPStV\\[\\]]+)\\b", "beginCaptures": { "0": { "name": "storage.type.csound" } }, "end": ",|(?=\\n)", "patterns": [ { "include": "#commentsAndMacroCalls" } ] }, { "include": "#commentsAndMacroCalls" } ] }, { "include": "#commentsAndMacroCalls" } ] }, { "include": "#commentsAndMacroCalls" }, { "include": "#labels" }, { "include": "#partialExpressions" } ] }, { "include": "#labels" }, { "include": "#partialExpressions" } ], "repository": { "comments": { "patterns": [ { "name": "comment.block.csound", "begin": "/\\*", "beginCaptures": { "0": { "name": "punctuation.definition.comment.begin.csound" } }, "end": "\\*/", "endCaptures": { "0": { "name": "punctuation.definition.comment.end.csound" } } }, { "name": "comment.line.csound", "begin": "//|;", "beginCaptures": { "0": { "name": "punctuation.definition.comment.line.csound" } }, "end": "(?=\\n)" } ] }, "commentsAndMacroCalls": { "patterns": [ { "include": "#comments" }, { "include": "#macroCalls" } ] }, "escapeSequences": { "patterns": [ { "name": "constant.character.escape.csound", "match": "\\\\(?:[abfnrtv\"\\\\]|[0-7]{1,3})" } ] }, "labels": { "patterns": [ { "match": "^[ \\t]*(\\w+)(:)", "captures": { "1": { "name": "entity.name.label.csound" }, "2": { "name": "entity.punctuation.label.csound" } } } ] }, "macroCalls": { "patterns": [ { "name": "entity.name.function.preprocessor.csound", "match": "\\$\\w+(?:\\.|\\b)" } ] }, "numbers": { "patterns": [ { "name": "constant.numeric.float.csound", "match": "(?:\\d+e[+-]?\\d+)|(?:\\d+\\.\\d*|\\d*\\.\\d+)(?:e[+-]?\\d+)?" }, { "name": "constant.numeric.integer.hexadecimal.csound", "match": "0[Xx][a-fA-F0-9]+" }, { "name": "constant.numeric.integer.decimal.csound", "match": "\\d+" } ] }, "partialExpressions": { "patterns": [ { "include": "#preprocessorDirectives" }, { "name": "variable.other.readwrite.global.csound", "match": "\\b(?:0dbfs|k(?:r|smps)|nchnls(?:_i)?|sr)\\b" }, { "include": "#numbers" }, { "name": "keyword.operator.csound", "match": "[+\\-*/%^!=&|<>#~¬?:]" }, { "include": "#quotedStrings" }, { "name": "string.braced.csound", "begin": "\\{\\{", "end": "\\}\\}", "patterns": [ { "include": "#escapeSequences" } ] }, { "name": "keyword.control.csound", "match": "\\b(?:do|else(?:if)?|end(?:if|until)|fi|i(?:f|then)|kthen|od|r(?:ir)?eturn|then|until|while)\\b" }, { "begin": "\\b((?:c(?:g|in?|k|nk?)goto)|goto|igoto|kgoto|loop_[gl][et]|r(?:einit|igoto)|ti(?:goto|mout))\\b", "beginCaptures": { "1": { "name": "keyword.control.csound" } }, "end": "(\\w+)\\s*((//|;).*)?\\n", "endCaptures": { "1": { "name": "entity.name.label.csound" }, "2": { "name": "comment.line.csound" }, "3": { "name": "punctuation.definition.comment.line.csound" } }, "patterns": [ { "include": "#commentsAndMacroCalls" }, { "include": "#partialExpressions" } ] }, { "begin": "\\b(scoreline(?:_i)?)[ \\t]*(\\{\\{)", "beginCaptures": { "1": { "name": "support.function.csound" }, "2": { "name": "string.braced.csound" } }, "end": "\\}\\}", "endCaptures": { "0": { "name": "string.braced.csound" } }, "patterns": [ { "include": "source.csound-score" } ] }, { "begin": "\\b(pyl?run[it]?)[ \\t]*(\\{\\{)", "beginCaptures": { "1": { "name": "support.function.csound" }, "2": { "name": "string.braced.csound" } }, "end": "\\}\\}", "endCaptures": { "0": { "name": "string.braced.csound" } }, "patterns": [ { "include": "source.python" } ] }, { "begin": "\\b(lua_exec)[ \\t]*(\\{\\{)", "beginCaptures": { "1": { "name": "support.function.csound" }, "2": { "name": "string.braced.csound" } }, "end": "\\}\\}", "endCaptures": { "0": { "name": "string.braced.csound" } }, "patterns": [ { "include": "source.lua" } ] }, { "begin": "\\blua_opdef", "beginCaptures": { "0": { "name": "support.function.csound" } }, "end": "\\}\\}", "endCaptures": { "0": { "name": "string.braced.csound" } }, "patterns": [ { "include": "#quotedStrings" }, { "begin": "\\{\\{", "beginCaptures": { "0": { "name": "string.braced.csound" } }, "end": "(?=\\}\\})", "patterns": [ { "include": "source.lua" } ] } ] }, { "name": "support.variable.csound", "match": "\\bp\\d+\\b" }, { "name": "support.function.csound", "match": "\\b(ATS(?:add(?:(?:nz)?)|bufread|cross|in(?:fo|terpread)|partialtap|read(?:(?:nz)?)|sinnoi)|FL(?:b(?:ox|ut(?:Bank|ton))|c(?:loseButton|o(?:lor(?:(?:2)?)|unt))|execButton|g(?:etsnap|roup(?:(?:(?:E|_e)nd)?))|h(?:ide|vsBox(?:(?:SetValue)?))|joy|k(?:eyIn|nob)|l(?:abel|oadsnap)|mouse|p(?:a(?:ck(?:(?:(?:E|_e)nd)?)|nel(?:(?:(?:E|_e)nd)?))|rintk(?:(?:2)?))|r(?:oller|un)|s(?:avesnap|croll(?:(?:(?:E|_e)nd)?)|et(?:Align|Box|Color(?:(?:2)?)|Font|Position|S(?:ize|napGroup)|Text(?:(?:Color|(?:Siz|Typ)e)?)|Val(?:(?:(?:(?:_)?)i)?)|snap)|how|lid(?:Bnk(?:(?:2(?:(?:Set(?:(?:k)?))?)|GetHandle|Set(?:(?:k)?))?)|er))|t(?:abs(?:(?:(?:E|_e)nd)?)|ext)|update|v(?:alue|keybd|slidBnk(?:(?:2)?))|xyin)|Mixer(?:Clear|GetLevel|Receive|Se(?:nd|tLevel(?:(?:_i)?)))|OSC(?:init|listen|send)|a(?:bs|ctive|ds(?:r|yn(?:(?:t(?:(?:2)?))?))|ftouch|l(?:pass|wayson)|mp(?:db(?:(?:fs)?)|midi(?:(?:d)?))|r(?:eson(?:(?:k)?)|ray)|tone(?:(?:[kx])?))|b(?:a(?:bo|lance|mboo|rmodel)|bcut(?:[ms])|e(?:(?:tara|xpr)nd)|form(?:dec(?:(?:1)?)|enc(?:(?:1)?))|i(?:nit|quad(?:(?:a)?)|rnd)|qrez|u(?:chla|t(?:b(?:[pr])|hp|lp|t(?:er(?:b(?:[pr])|(?:[hl])p)|on))|zz))|c(?:2r|a(?:basa|uchy(?:(?:i)?))|e(?:il|ll|nt(?:(?:roid)?)|ps(?:(?:inv)?))|h(?:an(?:ctrl|ged(?:(?:2)?)|[io])|e(?:byshevpoly|ckbox)|n(?:_(?:[Sak])|clear|export|get|mix|params|set)|uap)|l(?:ear|filt|ip|ocko(?:ff|n))|mplxprod|o(?:m(?:b(?:(?:inv)?)|p(?:ile(?:csd|orc|str)|ress(?:(?:2)?)))|n(?:nect|trol|v(?:(?:l|olv)e))|py(?:a2ftab|f2array)|s(?:(?:h|inv|seg(?:(?:[br])?))?))|p(?:s(?:2pch|midi(?:(?:b|nn)?)|oct|pch|t(?:mid|un(?:(?:i)?))|xpch)|uprc)|r(?:oss(?:2|fm(?:(?:i|pm(?:(?:i)?))?)|pm(?:(?:i)?))|unch)|t(?:lchn|rl(?:14|21|7|init))|userrnd)|d(?:a(?:m|te(?:(?:s)?))|b(?:(?:(?:(?:fs)?)amp)?)|c(?:block(?:(?:2)?)|onv)|e(?:l(?:ay(?:(?:[1krw])?)|tap(?:(?:xw|[3inx])?))|norm)|i(?:ff|rectory|s(?:k(?:grain|in(?:(?:2)?))|p(?:fft|lay)|tort(?:(?:1)?))|vz)|o(?:ppler|wnsamp)|ripwater|u(?:mpk(?:(?:[234])?)|s(?:errnd|t(?:(?:2)?))))|e(?:nvlpx(?:(?:r)?)|phasor|qfil|v(?:alstr|ent(?:(?:_i)?))|x(?:citer|itnow|p(?:(?:curve|on|rand(?:(?:i)?)|seg(?:(?:ba|[abr])?))?)))|f(?:a(?:reylen(?:(?:i)?)|ust(?:audio|c(?:ompile|tl)|gen))|ft(?:(?:inv)?)|i(?:close|l(?:e(?:bit|len|nchnls|peak|s(?:cal|r)|valid)|larray|ter2)|n(?:(?:[ik])?)|open)|l(?:a(?:nger|shtxt)|oo(?:per(?:(?:2)?)|r)|uid(?:AllOut|C(?:C(?:[ik])|ontrol)|Engine|Load|Note|Out|ProgramSelect|SetInterpMethod))|m(?:b(?:3|ell)|metal|percfl|(?:rhod|voic|wurli)e)|o(?:f(?:2|ilter)|l(?:d|low(?:(?:2)?))|scil(?:(?:i)?)|ut(?:(?:ir|[ik])?)|[fg])|print(?:(?:(?:k)?)s)|r(?:a(?:c(?:(?:talnoise)?)|mebuffer)|eeverb)|t(?:c(?:hnls|onv|ps)|free|gen(?:(?:once|tmp)?)|l(?:en|oad(?:(?:k)?)|ptim)|morf|resize(?:(?:i)?)|s(?:a(?:mplebank|ve(?:(?:k)?))|r)))|g(?:a(?:in(?:(?:slider)?)|uss(?:(?:i|trig)?))|buzz|e(?:n(?:array(?:(?:_i)?)|dy(?:(?:[cx])?))|t(?:c(?:fg|ol)|row|seed))|ogobel|ra(?:in(?:(?:[23])?)|nule)|uiro)|h(?:armon(?:(?:[234])?)|df5(?:read|write)|ilbert|rtf(?:e(?:arly|r)|move(?:(?:2)?)|reverb|stat)|sboscil|vs(?:[123]))|i(?:hold|mage(?:create|free|getpixel|load|s(?:ave|etpixel|ize))|n(?:(?:32|ch|it(?:(?:c(?:14|21|7))?)|let(?:kid|[afkv])|rg|s(?:global|remot)|te(?:g|rp)|value|[hoqstxz])?))|j(?:itter(?:(?:2)?)|spline)|ktableseg|l(?:enarray|fo|i(?:mit|n(?:e(?:(?:n(?:(?:r)?)|to)?)|rand|seg(?:(?:[br])?)))|o(?:cs(?:end|ig)|g(?:(?:10|2|btwo|curve)?)|op(?:seg(?:(?:p)?)|(?:[tx])seg)|renz|scil(?:(?:[3x])?)|w(?:pass2|res(?:(?:x)?)))|p(?:f(?:18|orm|reson)|hasor|interp|oscil(?:(?:sa(?:(?:2)?)|[3a])?)|re(?:ad|son)|s(?:hold(?:(?:p)?)|lot))|ua_(?:exec|opdef))|m(?:a(?:ca|dsr|gs|nd(?:(?:[eo])l)|parray(?:(?:_i)?)|rimba|ssign|x(?:_k|a(?:bs(?:(?:accum)?)|ccum|lloc|rray))|[cx])|clock|delay|e(?:dian(?:(?:k)?)|tro)|i(?:d(?:global|i(?:c(?:14|21|7|h(?:annelaftertouch|n)|ontrolchange|trl)|default|filestatus|in|noteo(?:ff|n(?:cps|key|oct|pch))|o(?:n(?:(?:2)?)|ut)|p(?:gm|itchbend|olyaftertouch|rogramchange)|tempo)|remot)|n(?:(?:a(?:bs(?:(?:accum)?)|ccum|rray)|cer)?)|rror)|o(?:d(?:e|matrix)|nitor|og(?:(?:ladder(?:(?:2)?)|vcf(?:(?:2)?))?)|scil)|p(?:3(?:bitrate|in|len|nchnls|s(?:cal(?:(?:_(?:check|load(?:(?:2)?)|play(?:(?:2)?)))?)|r))|ulse)|rtmsg|u(?:ltitap|te)|vc(?:hpf|lpf(?:[1234]))|xadsr)|n(?:chnls_hw|estedap|l(?:alp|filt(?:(?:2)?))|o(?:ise|t(?:eo(?:ff|n(?:(?:dur(?:(?:2)?))?))|num))|r(?:everb|pn)|s(?:amp|t(?:ance|rnum))|trpol)|o(?:ct(?:ave|cps|midi(?:(?:b|nn)?)|pch)|labuffer|sc(?:bnk|il(?:(?:1i|ikt(?:(?:[ps])?)|[13insx])?))|ut(?:(?:32|ch|i(?:at|c(?:(?:14)?)|p(?:at|[bc]))|k(?:at|c(?:(?:14)?)|p(?:at|[bc]))|let(?:kid|[afkv])|q(?:[1234])|rg|s(?:[12])|value|[choqsxz])?))|p(?:a(?:n(?:(?:2)?)|r(?:eq|t(?:2txt|i(?:als|kkel(?:(?:get|s(?:et|ync))?))))|ssign|ulstretch)|c(?:auchy|h(?:bend|midi(?:(?:b|nn)?)|oct)|o(?:nvolve|unt))|d(?:clip|half(?:(?:y)?))|eak|gm(?:(?:assig|ch)n)|h(?:as(?:er(?:[12])|or(?:(?:bnk)?))|s)|i(?:n(?:dex|k(?:er|ish))|tch(?:(?:a(?:c|mdf))?))|l(?:a(?:net|terev)|(?:ltra|u)ck)|o(?:isson|l(?:2rect|y(?:aft|nomial))|p_f|rt(?:(?:k)?)|scil(?:(?:3)?)|w(?:ershape|oftwo)|[pw])|r(?:e(?:alloc|piano)|int(?:(?:_type|f_i|k(?:s2|[2s])|[fks])?)|oduct)|set|t(?:able(?:(?:iw|[3iw])?)|rack)|u(?:sh(?:(?:_f)?)|ts)|v(?:add|bufread|cross|interp|oc|read|s(?:2(?:array|tab)|a(?:dsyn|nal|rp)|b(?:and(?:[pr])|in|lur|uf(?:fer|read(?:(?:2)?)))|c(?:ale|e(?:nt|ps)|ross)|d(?:emix|is(?:kin|p))|envftw|f(?:ilter|r(?:e(?:ad|eze)|omarray)|t(?:[rw])|write)|g(?:ain|endy)|hift|i(?:fd|n(?:(?:fo|it)?))|lock|m(?:aska|ix|o(?:(?:ot|rp)h))|o(?:sc|ut)|pitch|t(?:(?:ana|enci)l)|voc|warp|ynth))|wd|y(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|init|l(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|run(?:(?:[it])?))|run(?:(?:[it])?)))|q(?:inf|nan)|r(?:2c|and(?:(?:om(?:(?:[hi])?)|[hi])?)|bjeq|e(?:ad(?:clock|fi|k(?:[234s])|sc(?:ore|ratch)|[fk])|ct2pol|init|lease|mo(?:teport|ve)|pluck|s(?:on(?:(?:xk|[krxyz])?)|yn)|verb(?:(?:2|sc)?)|windscore|zzy)|fft|ifft|ms|nd(?:(?:31)?)|ound|spline|tclock)|s(?:16b14|32b14|a(?:mphold|ndpaper)|c(?:a(?:le(?:(?:array)?)|n(?:hammer|table|[su]))|hed(?:kwhen(?:(?:named)?)|ule|when)|oreline(?:(?:_i)?))|e(?:ed|kere|mitone|nse(?:(?:key)?)|qtime(?:(?:2)?)|rial(?:Begin|End|Flush|Print|Read|Write(?:(?:_i)?))|t(?:c(?:(?:o|tr)l)|ksmps|row|scorepos))|f(?:i(?:list|nstr(?:(?:3m|[3m])?))|lo(?:ad|oper)|p(?:assign|l(?:ay(?:(?:3m|[3m])?)|ist)|reset))|h(?:aker|ift(?:in|out))|i(?:gn(?:alflowgraph|um)|n(?:(?:h|inv|syn)?))|l(?:eighbells|i(?:cearray|der(?:16(?:(?:f|table(?:(?:f)?))?)|32(?:(?:f|table(?:(?:f)?))?)|64(?:(?:f|table(?:(?:f)?))?)|8(?:(?:f|table(?:(?:f)?))?)|Kawai)))|nd(?:lo(?:ad|op)|warp(?:(?:st)?))|o(?:ck(?:recv(?:(?:s)?)|send(?:(?:s)?))|und(?:in|out(?:(?:s)?)))|p(?:a(?:ce|t3d(?:(?:[it])?))|dist|ec(?:addm|di(?:ff|sp)|filt|hist|ptrk|s(?:cal|um)|trum)|litrig|rintf(?:(?:k)?)|send)|qrt|t(?:a(?:ck|tevar)|ix|r(?:c(?:at(?:(?:k)?)|har(?:(?:k)?)|mp(?:(?:k)?)|py(?:(?:k)?))|e(?:cv|son)|fromurl|get|index(?:(?:k)?)|l(?:en(?:(?:k)?)|ower(?:(?:k)?))|rindex(?:(?:k)?)|s(?:et|ub(?:(?:k)?))|to(?:(?:[dl])k|[dl])|upper(?:(?:k)?))|send)|u(?:binstr(?:(?:init)?)|m(?:(?:array)?))|vfilter|y(?:nc(?:grain|loop|phasor)|stem(?:(?:_i)?)))|t(?:a(?:b(?:2pvs|_i|ifd|le(?:(?:3kt|copy|filter(?:(?:i)?)|gpw|i(?:copy|gpw|kt|mix|w)|kt|mix|ng|ra|s(?:eg|huffle(?:(?:i)?))|w(?:a|kt)|x(?:kt|seg)|[3iw])?)|morph(?:(?:ak|[ai])?)|play|rec|sum|w(?:(?:_i)?))|mbourine|n(?:h|inv(?:(?:2)?))|[bn])|b(?:0_init|1(?:(?:(?:[012345])?)_init|[012345])|2_init|3_init|4_init|5_init|6_init|7_init|8_init|9_init|vcf|[0123456789])|emp(?:est|o(?:(?:(?:sc|v)al)?))|i(?:me(?:dseq|inst(?:[ks])|[ks])|val)|lineto|one(?:(?:[kx])?)|r(?:a(?:dsyn|n(?:dom|seg(?:(?:[br])?)))|cross|filter|highest|i(?:g(?:ger|seq)|rand)|lowest|mix|s(?:cale|(?:hif|pli)t))|urno(?:ff(?:(?:2)?)|n))|u(?:n(?:irand|wrap)|psamp|r(?:andom|d))|v(?:a(?:ctrol|dd(?:(?:_i|v(?:(?:_i)?))?)|get|lpass|set)|bap(?:(?:16|4move|8move|gmove|lsinit|(?:(?:z)?)move|[48gz])?)|c(?:ella|o(?:(?:2(?:(?:(?:f|i(?:f|ni))t)?)|mb|py(?:(?:_i)?))?))|d(?:el(?:_k|ay(?:(?:x(?:w(?:[qs])|[qsw])|[3kx])?))|ivv(?:(?:_i)?))|e(?:cdelay|loc|xp(?:(?:_i|seg|v(?:(?:_i)?))?))|i(?:b(?:es|r(?:(?:ato)?))|ncr)|l(?:i(?:mit|nseg)|owres)|m(?:ap|irror|ult(?:(?:_i|v(?:(?:_i)?))?))|o(?:ice|sim)|p(?:haseseg|o(?:rt|w(?:(?:_i|v(?:(?:_i)?))?))|voc)|rand(?:[hi])|subv(?:(?:_i)?)|tab(?:le(?:1k|w(?:[aik])|[aik])|w(?:[aik])|[aik])|wrap)|w(?:aveset|eibull|g(?:b(?:ow(?:(?:edbar)?)|rass)|clar|flute|pluck(?:(?:2)?)|uide(?:[12]))|i(?:i(?:connect|data|range|send)|ndow)|r(?:ap|itescratch)|terrain)|x(?:adsr|in|out|scan(?:map|smap|[su])|tratim|yin)|z(?:a(?:cl|kinit|mod|rg|wm|[rw])|filter2|i(?:wm|[rw])|k(?:cl|mod|wm|[rw]))|[Saikp])\\b" }, { "name": "meta.other.csound", "match": "\\b[a-zA-Z_]\\w*\\b" } ] }, "preprocessorDirectives": { "patterns": [ { "name": "keyword.preprocessor.csound", "match": "\\#(?:e(?:lse\\b|nd(?:if)?\\b)|i(?:fn?def)|undef|\\#\\#)|@+[ \\t]*\\d*" }, { "begin": "\\#include", "beginCaptures": { "0": { "name": "keyword.include.preprocessor.csound" } }, "end": "\\n", "patterns": [ { "include": "#commentsAndMacroCalls" }, { "name": "string.quoted.include.csound", "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.csound" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.csound" } } } ] }, { "begin": "\\#[ \\t]*define", "beginCaptures": { "0": { "name": "keyword.define.preprocessor.csound" } }, "end": "(?<=^\\#)|(?<=[^\\\\]\\#)", "patterns": [ { "include": "#commentsAndMacroCalls" }, { "name": "entity.name.function.preprocessor.csound", "match": "[a-zA-Z_]\\w*" }, { "begin": "\\(", "end": "\\)", "patterns": [ { "name": "variable.parameter.preprocessor.csound", "match": "\\w+\\b" } ] }, { "begin": "\\#", "beginCaptures": { "0": { "name": "punctuation.definition.macro.begin.csound" } }, "end": "(?