{
 "parseTree": {
  "global": {
   "randomSeed": [
    0
   ],
   "highPass": [
    5,
    0
   ],
   "lowPass": [
    18000,
    0
   ],
   "silence": false,
   "tempo": [
    140
   ]
  },
  "variables": {
   "myBeat": [
    1,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    1,
    0
   ],
   "drives": [
    1,
    2,
    2,
    3,
    4,
    6,
    9,
    3,
    11,
    2
   ]
  },
  "objects": {
   "s1": {
    "object": "synth",
    "type": "saw",
    "functions": {
     "group": [],
     "time": [
      "1/8"
     ],
     "note": [
      [
       "c3",
       "gb3"
      ]
     ],
     "env": [
      1,
      250
     ],
     "beat": [
      [
       1,
       0,
       0,
       0,
       0,
       1,
       0,
       0,
       1,
       0,
       0,
       0,
       1,
       0,
       1,
       0
      ]
     ],
     "amp": [
      0.7
     ],
     "wave2": [
      "saw",
      0
     ],
     "add_fx": [
      [
       "reverb",
       0.9,
       7
      ],
      [
       "drive",
       [
        1,
        2,
        2,
        3,
        4,
        6,
        9,
        3,
        11,
        2
       ]
      ]
     ],
     "name": [
      "s1"
     ]
    }
   }
  },
  "groups": {
   "all": [
    "s1"
   ]
  },
  "print": [
   [
    0,
    1,
    1,
    2,
    3,
    5,
    8,
    0,
    8,
    8,
    3,
    11,
    1,
    12,
    0,
    12,
    12,
    11,
    10,
    8,
    5,
    0,
    5,
    5,
    10,
    2,
    12,
    1
   ]
  ],
  "display": [],
  "comments": [
   "// A small example for the Mercury parser",
   "// list notes random 16 0 12)"
  ]
 },
 "syntaxTree": {
  "@main": [
   {
    "@global": {
     "@comment": "// A small example for the Mercury parser"
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "tempo",
      "@functions": [
       {
        "@number": 140
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@function": {
        "@name": "pisano",
        "@args": [
         {
          "@number": 13
         }
        ]
       }
      }
     ]
    }
   },
   {
    "@list": {
     "@name": "myBeat",
     "@params": {
      "@function": {
       "@name": "clave",
       "@args": [
        {
         "@number": 16
        },
        {
         "@number": 5
        },
        {
         "@number": 2
        }
       ]
      }
     }
    }
   },
   {
    "@list": {
     "@name": "drives",
     "@params": {
      "@function": {
       "@name": "add",
       "@args": [
        {
         "@function": {
          "@name": "pisano",
          "@args": [
           {
            "@number": 11
           }
          ]
         }
        },
        {
         "@number": 1
        }
       ]
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "synth",
      "@type": {
       "@identifier": "saw"
      },
      "@functions": [
       {
        "@function": {
         "@name": "time",
         "@args": [
          {
           "@division": "1/8"
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "beat",
         "@args": [
          {
           "@identifier": "myBeat"
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "name",
         "@args": [
          {
           "@identifier": "s1"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "s1",
      "@functions": [
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "reverb"
          },
          {
           "@number": 0.9
          },
          {
           "@number": 7
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "drive"
          },
          {
           "@identifier": "drives"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "s1",
      "@functions": [
       {
        "@function": {
         "@name": "note",
         "@args": [
          {
           "@array": [
            {
             "@note": "c3"
            },
            {
             "@note": "gb3"
            }
           ]
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// list notes random 16 0 12)"
    }
   }
  ]
 },
 "errors": []
}
