summaryrefslogtreecommitdiff
path: root/tests/lexers/sc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/sc')
-rw-r--r--tests/lexers/sc/example.txt574
1 files changed, 574 insertions, 0 deletions
diff --git a/tests/lexers/sc/example.txt b/tests/lexers/sc/example.txt
new file mode 100644
index 00000000..80b5964a
--- /dev/null
+++ b/tests/lexers/sc/example.txt
@@ -0,0 +1,574 @@
+---input---
+Instr("cs.fm.BasicFM", {
+ arg freq = 440,
+ amp = 0.9,
+ gate = 0,
+ carrierFreqRatio = 1.0,
+ modulatorFreqRatio = 1.0,
+ // not sure if having these defaults here actually does anything.
+ modEnvShape = Env.adsr(
+ attackTime: 0.05,
+ decayTime: 0.1,
+ sustainLevel: 0.5 * amp,
+ releaseTime: 0.1,
+ peakLevel: amp,
+ curve: [4, -4, -2]
+ ),
+ carrierEnvShape = Env.adsr(
+ attackTime: 0.05,
+ decayTime: 0.1,
+ sustainLevel: 0.5 * amp,
+ releaseTime: 0.1,
+ peakLevel: amp,
+ curve: [4, -4, -2]
+ );
+
+ var carrier,
+ modulator,
+ carrierEnv,
+ modEnv,
+ out;
+
+ modEnv = EnvGen.kr(
+ envelope: modEnvShape,
+ gate: gate
+ );
+
+ modulator = modEnv * SinOsc.ar(freq * modulatorFreqRatio);
+
+ // carrier sustains until noteoff
+ carrierEnvShape.releaseNode = 2;
+
+ carrierEnv = EnvGen.kr(
+ envelope: carrierEnvShape,
+ gate: gate
+ );
+
+ carrier = carrierEnv * SinOsc.ar(
+ (freq * carrierFreqRatio) + (modulator * freq)
+ );
+
+ // free synth when both carrier and modulator envelopes are done
+ FreeSelf.kr(Done.kr(carrierEnv) + Done.kr(modEnv) - 1);
+
+ out = amp * carrier;
+}, [
+ \freq.asSpec(),
+ \amp.asSpec(),
+ \nil,
+ ControlSpec(0.1, 10),
+ ControlSpec(0.1, 10),
+ EnvSpec(Env.adsr(
+ attackTime: 0.05,
+ decayTime: 0.1,
+ sustainLevel: 0.8,
+ releaseTime: 0.1,
+ peakLevel: 1.0,
+ curve: [4, -4, -2]
+ )),
+ EnvSpec(Env.adsr(
+ attackTime: 0.05,
+ decayTime: 0.1,
+ sustainLevel: 0.8,
+ releaseTime: 0.1,
+ peakLevel: 1.0,
+ curve: [4, -4, -2]
+ ))
+]);
+
+---tokens---
+'Instr' Name.Other
+'(' Punctuation
+'"cs.fm.BasicFM"' Literal.String.Double
+',' Punctuation
+' ' Text
+'{' Punctuation
+'\n ' Text
+'arg' Keyword.Declaration
+' ' Text
+'freq' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'440' Literal.Number.Integer
+',' Punctuation
+'\n ' Text
+'amp' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0.9' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'gate' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+',' Punctuation
+'\n ' Text
+'carrierFreqRatio' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'1.0' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'modulatorFreqRatio' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'1.0' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'// not sure if having these defaults here actually does anything.\n' Comment.Single
+
+' ' Text
+'modEnvShape' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'Env' Name.Other
+'.' Punctuation
+'adsr' Name.Other
+'(' Punctuation
+'\n ' Text
+'attackTime' Name.Other
+':' Operator
+' ' Text
+'0.05' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'decayTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'sustainLevel' Name.Other
+':' Operator
+' ' Text
+'0.5' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'amp' Name.Other
+',' Punctuation
+'\n ' Text
+'releaseTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'peakLevel' Name.Other
+':' Operator
+' ' Text
+'amp' Name.Other
+',' Punctuation
+'\n ' Text
+'curve' Name.Other
+':' Operator
+' ' Text
+'[' Punctuation
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+'\n ' Text
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'carrierEnvShape' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'Env' Name.Other
+'.' Punctuation
+'adsr' Name.Other
+'(' Punctuation
+'\n ' Text
+'attackTime' Name.Other
+':' Operator
+' ' Text
+'0.05' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'decayTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'sustainLevel' Name.Other
+':' Operator
+' ' Text
+'0.5' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'amp' Name.Other
+',' Punctuation
+'\n ' Text
+'releaseTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'peakLevel' Name.Other
+':' Operator
+' ' Text
+'amp' Name.Other
+',' Punctuation
+'\n ' Text
+'curve' Name.Other
+':' Operator
+' ' Text
+'[' Punctuation
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+'\n ' Text
+')' Punctuation
+';' Punctuation
+'\n\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'carrier' Name.Other
+',' Punctuation
+'\n ' Text
+'modulator' Name.Other
+',' Punctuation
+'\n ' Text
+'carrierEnv' Name.Other
+',' Punctuation
+'\n ' Text
+'modEnv' Name.Other
+',' Punctuation
+'\n ' Text
+'out' Name.Other
+';' Punctuation
+'\n\n ' Text
+'modEnv' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'EnvGen' Name.Other
+'.' Punctuation
+'kr' Name.Other
+'(' Punctuation
+'\n ' Text
+'envelope' Name.Other
+':' Operator
+' ' Text
+'modEnvShape' Name.Other
+',' Punctuation
+'\n ' Text
+'gate' Name.Other
+':' Operator
+' ' Text
+'gate' Name.Other
+'\n ' Text
+')' Punctuation
+';' Punctuation
+'\n \n ' Text
+'modulator' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'modEnv' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'SinOsc' Name.Other
+'.' Punctuation
+'ar' Name.Other
+'(' Punctuation
+'freq' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'modulatorFreqRatio' Name.Other
+')' Punctuation
+';' Punctuation
+'\n \n ' Text
+'// carrier sustains until noteoff\n' Comment.Single
+
+' ' Text
+'carrierEnvShape' Name.Other
+'.' Punctuation
+'releaseNode' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'2' Literal.Number.Integer
+';' Punctuation
+'\n\n ' Text
+'carrierEnv' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'EnvGen' Name.Other
+'.' Punctuation
+'kr' Name.Other
+'(' Punctuation
+'\n ' Text
+'envelope' Name.Other
+':' Operator
+' ' Text
+'carrierEnvShape' Name.Other
+',' Punctuation
+'\n ' Text
+'gate' Name.Other
+':' Operator
+' ' Text
+'gate' Name.Other
+'\n ' Text
+')' Punctuation
+';' Punctuation
+'\n\n ' Text
+'carrier' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'carrierEnv' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'SinOsc' Name.Other
+'.' Punctuation
+'ar' Name.Other
+'(' Punctuation
+'\n ' Text
+'(' Punctuation
+'freq' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'carrierFreqRatio' Name.Other
+')' Punctuation
+' ' Text
+'+' Operator
+' ' Text
+'(' Punctuation
+'modulator' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'freq' Name.Other
+')' Punctuation
+'\n ' Text
+')' Punctuation
+';' Punctuation
+'\n\n ' Text
+'// free synth when both carrier and modulator envelopes are done\n' Comment.Single
+
+' ' Text
+'FreeSelf' Name.Other
+'.' Punctuation
+'kr' Name.Other
+'(' Punctuation
+'Done' Name.Other
+'.' Punctuation
+'kr' Name.Other
+'(' Punctuation
+'carrierEnv' Name.Other
+')' Punctuation
+' ' Text
+'+' Operator
+' ' Text
+'Done' Name.Other
+'.' Punctuation
+'kr' Name.Other
+'(' Punctuation
+'modEnv' Name.Other
+')' Punctuation
+' ' Text
+'-' Operator
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n\n ' Text
+'out' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'amp' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'carrier' Name.Other
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+',' Punctuation
+' ' Text
+'[' Punctuation
+'\n ' Text
+'\\freq' Literal.String.Symbol
+'.' Punctuation
+'asSpec' Name.Other
+'(' Punctuation
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'\\amp' Literal.String.Symbol
+'.' Punctuation
+'asSpec' Name.Other
+'(' Punctuation
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'\\nil' Literal.String.Symbol
+',' Punctuation
+'\n ' Text
+'ControlSpec' Name.Other
+'(' Punctuation
+'0.1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'10' Literal.Number.Integer
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'ControlSpec' Name.Other
+'(' Punctuation
+'0.1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'10' Literal.Number.Integer
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'EnvSpec' Name.Other
+'(' Punctuation
+'Env' Name.Other
+'.' Punctuation
+'adsr' Name.Other
+'(' Punctuation
+'\n ' Text
+'attackTime' Name.Other
+':' Operator
+' ' Text
+'0.05' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'decayTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'sustainLevel' Name.Other
+':' Operator
+' ' Text
+'0.8' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'releaseTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'peakLevel' Name.Other
+':' Operator
+' ' Text
+'1.0' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'curve' Name.Other
+':' Operator
+' ' Text
+'[' Punctuation
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+'\n ' Text
+')' Punctuation
+')' Punctuation
+',' Punctuation
+'\n ' Text
+'EnvSpec' Name.Other
+'(' Punctuation
+'Env' Name.Other
+'.' Punctuation
+'adsr' Name.Other
+'(' Punctuation
+'\n ' Text
+'attackTime' Name.Other
+':' Operator
+' ' Text
+'0.05' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'decayTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'sustainLevel' Name.Other
+':' Operator
+' ' Text
+'0.8' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'releaseTime' Name.Other
+':' Operator
+' ' Text
+'0.1' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'peakLevel' Name.Other
+':' Operator
+' ' Text
+'1.0' Literal.Number.Float
+',' Punctuation
+'\n ' Text
+'curve' Name.Other
+':' Operator
+' ' Text
+'[' Punctuation
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'-' Operator
+'2' Literal.Number.Integer
+']' Punctuation
+'\n ' Text
+')' Punctuation
+')' Punctuation
+'\n' Text
+
+']' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text