mercury-lang
Version:
Parser for the mercury live coding language
497 lines (496 loc) • 7.23 kB
JSON
{
"parseTree": {
"global": {
"randomSeed": [
9123
],
"highPass": [
800,
5000
],
"lowPass": [
5000,
100
],
"silence": false,
"signature": [
"11/16"
],
"tempo": [
143
]
},
"variables": {
"smps": [
"hat_909",
"kick_909",
"snare_909",
"clap_909",
"hat_808",
"kick_808",
"snare_808",
"clap_808",
"hat_626",
"kick_626",
"snare_626",
"clap_626"
]
},
"objects": {
"27P28YNP": {
"object": "sample",
"type": [
"kick_min",
"snare_dub"
],
"functions": {
"group": [],
"time": [
"1/16"
],
"speed": [
1
],
"env": [
1,
"1/32",
2
],
"beat": [
[
1,
0.2,
0.5
]
],
"amp": [
0.9
],
"stretch": [
0,
1,
1
],
"add_fx": [],
"name": [
"27P28YNP"
]
}
},
"brk": {
"object": "loop",
"type": "amen_break",
"functions": {
"group": [],
"time": [
"1/16"
],
"speed": [
[
0.719508428353751,
0.46189701007071093,
0.8734314450008935,
0.4106777082097434,
0.8797003883106698,
0.03732536597283791,
0.6970319717804423,
0.6456736424925157,
0.07679357420927707,
0.06973614457125117
]
],
"env": [
-1
],
"beat": [
1
],
"amp": [
0.9
],
"stretch": [
[
1,
1,
1,
1,
1,
1,
1,
2,
2,
2,
2,
2,
2,
3,
3,
3,
3,
3,
3,
4
]
],
"add_fx": [
[
"delay",
"5/16",
"7/16",
0.4
]
],
"name": [
"brk"
]
}
}
},
"groups": {
"all": [
"brk"
]
},
"print": [
[
"hat_909",
"kick_909",
"snare_909",
"clap_909",
"hat_808",
"kick_808",
"snare_808",
"clap_808",
"hat_626",
"kick_626",
"snare_626",
"clap_626"
]
],
"display": [],
"comments": [
"// set timeSignature 3/4",
"// set tempo 143",
"// set randomSeed 9123",
"// set highPass 800 5000",
"// set lowPass 5000 100"
]
},
"syntaxTree": {
"@main": [
{
"@object": {
"@set": {
"@name": "timeSig",
"@functions": [
{
"@division": "11/16"
}
]
}
}
},
{
"@global": {
"@comment": "// set timeSignature 3/4"
}
},
{
"@object": {
"@set": {
"@name": "bpm",
"@functions": [
{
"@number": 143
}
]
}
}
},
{
"@global": {
"@comment": "// set tempo 143"
}
},
{
"@object": {
"@set": {
"@name": "seed",
"@functions": [
{
"@number": 9123
}
]
}
}
},
{
"@global": {
"@comment": "// set randomSeed 9123"
}
},
{
"@object": {
"@set": {
"@name": "hipass",
"@functions": [
{
"@number": 800
},
{
"@number": 5000
}
]
}
}
},
{
"@global": {
"@comment": "// set highPass 800 5000"
}
},
{
"@object": {
"@set": {
"@name": "lopass",
"@functions": [
{
"@number": 5000
},
{
"@number": 100
}
]
}
}
},
{
"@global": {
"@comment": "// set lowPass 5000 100"
}
},
{
"@object": {
"@new": {
"@inst": "sample",
"@type": {
"@array": [
{
"@identifier": "kick_min"
},
{
"@identifier": "snare_dub"
}
]
},
"@functions": [
{
"@function": {
"@name": "time",
"@args": [
{
"@division": "1/16"
}
]
}
},
{
"@function": {
"@name": "env",
"@args": [
{
"@number": 1
},
{
"@division": "1/32"
},
{
"@number": 2
}
]
}
},
{
"@function": {
"@name": "beat",
"@args": [
{
"@array": [
{
"@number": 1
},
{
"@number": 0.2
},
{
"@number": 0.5
}
]
}
]
}
}
]
}
}
},
{
"@object": {
"@new": {
"@inst": "loop",
"@type": {
"@identifier": "amen_break"
},
"@functions": [
{
"@function": {
"@name": "name",
"@args": [
{
"@identifier": "brk"
}
]
}
}
]
}
}
},
{
"@object": {
"@set": {
"@name": "brk",
"@functions": [
{
"@function": {
"@name": "time",
"@args": [
{
"@division": "1/16"
}
]
}
},
{
"@function": {
"@name": "add_fx",
"@args": [
{
"@identifier": "delay"
},
{
"@division": "5/16"
},
{
"@division": "7/16"
},
{
"@number": 0.4
}
]
}
},
{
"@function": {
"@name": "stretch",
"@args": [
{
"@function": {
"@name": "stretch",
"@args": [
{
"@array": [
{
"@number": 1
},
{
"@number": 2
},
{
"@number": 3
},
{
"@number": 4
}
]
},
{
"@number": 20
}
]
}
}
]
}
},
{
"@function": {
"@name": "speed",
"@args": [
{
"@function": {
"@name": "randomFloat",
"@args": [
{
"@number": 10
}
]
}
}
]
}
}
]
}
}
},
{
"@list": {
"@name": "smps",
"@params": {
"@function": {
"@name": "clone",
"@args": [
{
"@array": [
{
"@identifier": "hat"
},
{
"@identifier": "kick"
},
{
"@identifier": "snare"
},
{
"@identifier": "clap"
}
]
},
{
"@identifier": "_909"
},
{
"@identifier": "_808"
},
{
"@identifier": "_626"
}
]
}
}
}
},
{
"@global": {
"@print": [
{
"@identifier": "smps"
}
]
}
}
]
},
"errors": []
}