mercury-lang
Version:
Parser for the mercury live coding language
538 lines (537 loc) • 7.53 kB
JSON
{
"parseTree": {
"global": {
"randomSeed": [
0
],
"highPass": [
5,
0
],
"lowPass": [
18000,
0
],
"silence": false,
"tempo": [
143
]
},
"variables": {
"notes": [
0,
2,
4,
7,
9,
9,
7,
4,
2,
0
]
},
"objects": {
"5U192EQN": {
"object": "synth",
"type": "saw",
"functions": {
"group": [],
"time": [
"1/1",
0
],
"note": [
0,
0
],
"env": [
1,
250
],
"beat": [
1
],
"amp": [
0.7
],
"wave2": [
"saw",
0
],
"add_fx": [],
"%": [
"1/4",
"1/8"
],
"#": [
[
0,
2,
4,
7,
9,
9,
7,
4,
2,
0
],
1
],
"^": [
1,
300
],
"!": [
0.2
],
"}": [
"sn",
"bass"
],
"~": [
"lfo",
"1/4",
"up"
],
"name": [
"5U192EQN"
]
}
},
"LSVV4Y4P": {
"object": "sample",
"type": "kick_min",
"functions": {
"group": [],
"time": [
"1/1",
0
],
"speed": [
1
],
"env": [
-1
],
"beat": [
1
],
"amp": [
0.9
],
"stretch": [
0,
1,
1
],
"add_fx": [],
"%": [
"1/16"
],
"^": [
1,
"1/32",
2
],
"@": [
"kick"
],
"*": [
1.1
],
"name": [
"LSVV4Y4P"
]
}
},
"TB34M2J8": {
"object": "sample",
"type": "violin_g",
"functions": {
"group": [],
"time": [
"3/16"
],
"speed": [
0.5
],
"env": [
5,
150
],
"beat": [
0.9
],
"amp": [
0.4
],
"stretch": [
0,
1,
1
],
"add_fx": [],
"note": [
7,
1
],
"pan": [
-0.3
],
"name": [
"TB34M2J8"
]
}
}
},
"groups": {
"all": []
},
"print": [],
"display": [],
"comments": []
},
"syntaxTree": {
"@main": [
{
"@object": {
"@set": {
"@name": "tempo",
"@functions": [
{
"@number": 143
}
]
}
}
},
{
"@list": {
"@name": "notes",
"@params": {
"@function": {
"@name": "palin",
"@args": [
{
"@function": {
"@name": "spread",
"@args": [
{
"@number": 5
},
{
"@number": 0
},
{
"@number": 12
}
]
}
}
]
}
}
}
},
{
"@object": {
"@new": {
"@inst": "synth",
"@type": {
"@identifier": "saw"
},
"@functions": [
{
"@function": {
"@name": "%",
"@args": [
{
"@division": "1/4"
},
{
"@division": "1/8"
}
]
}
},
{
"@function": {
"@name": "#",
"@args": [
{
"@identifier": "notes"
},
{
"@number": 1
}
]
}
},
{
"@function": {
"@name": "^",
"@args": [
{
"@number": 1
},
{
"@number": 300
}
]
}
},
{
"@function": {
"@name": "!",
"@args": [
{
"@number": 0.2
}
]
}
},
{
"@function": {
"@name": "}",
"@args": [
{
"@identifier": "sn"
},
{
"@identifier": "bass"
}
]
}
},
{
"@function": {
"@name": "~",
"@args": [
{
"@identifier": "reverb"
},
{
"@number": 0.9
},
{
"@number": 11
}
]
}
},
{
"@function": {
"@name": "~",
"@args": [
{
"@identifier": "lfo"
},
{
"@division": "1/4"
},
{
"@identifier": "up"
}
]
}
}
]
}
}
},
{
"@object": {
"@new": {
"@inst": "sample",
"@type": {
"@identifier": "kick_min"
},
"@functions": [
{
"@function": {
"@name": "%",
"@args": [
{
"@division": "1/16"
}
]
}
},
{
"@function": {
"@name": "^",
"@args": [
{
"@number": 1
},
{
"@division": "1/32"
},
{
"@number": 2
}
]
}
},
{
"@function": {
"@name": "@",
"@args": [
{
"@identifier": "kick"
}
]
}
},
{
"@function": {
"@name": "*",
"@args": [
{
"@number": 1.1
}
]
}
}
]
}
}
},
{
"@object": {
"@set": {
"@name": "kick",
"@functions": [
{
"@function": {
"@name": "!",
"@args": [
{
"@function": {
"@name": "euclid",
"@args": [
{
"@number": 16
},
{
"@number": 5
}
]
}
}
]
}
},
{
"@function": {
"@name": "~",
"@args": [
{
"@identifier": "drive"
},
{
"@number": 4
}
]
}
}
]
}
}
},
{
"@object": {
"@new": {
"@inst": "sample",
"@type": {
"@identifier": "violin_g"
},
"@functions": [
{
"@function": {
"@name": "time",
"@args": [
{
"@division": "3/16"
}
]
}
},
{
"@function": {
"@name": "beat",
"@args": [
{
"@number": 0.9
}
]
}
},
{
"@function": {
"@name": "note",
"@args": [
{
"@number": 7
},
{
"@number": 1
}
]
}
},
{
"@function": {
"@name": "env",
"@args": [
{
"@number": 5
},
{
"@number": 150
}
]
}
},
{
"@function": {
"@name": "amp",
"@args": [
{
"@number": 0.4
}
]
}
},
{
"@function": {
"@name": "pan",
"@args": [
{
"@number": -0.3
}
]
}
},
{
"@function": {
"@name": "speed",
"@args": [
{
"@number": 0.5
}
]
}
}
]
}
}
}
]
},
"errors": [
"Unkown instrument or setting: kick"
]
}