{
 "parseTree": {
  "global": {
   "randomSeed": [
    9876
   ],
   "highPass": [
    500,
    3000
   ],
   "lowPass": [
    2000,
    500
   ],
   "silence": true,
   "tempo": [
    "hiphop",
    "uptempo"
   ],
   "scale": [
    "major",
    "g#"
   ],
   "crossFade": [
    100
   ]
  },
  "variables": {
   "arr1": 3.141592654,
   "arr2": [
    1,
    2,
    3.141592654
   ],
   "arr3": [
    1,
    2,
    [
     1,
     2,
     3.141592654
    ],
    56,
    7.89e-13
   ],
   "arr4": [
    "hat_dub",
    "hat_dub_open",
    "hat_909"
   ],
   "arr5": [
    "hello world",
    "foo bar"
   ],
   "arr6": [
    1,
    2,
    [
     3,
     4
    ],
    5,
    [
     6,
     [
      7,
      8
     ],
     9
    ],
    10,
    11
   ],
   "beat": [
    1,
    0,
    1,
    0,
    1,
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    0,
    1,
    0,
    1
   ],
   "grv": [
    "hat",
    "snare",
    "hat",
    "hat",
    "kick",
    "hat",
    "snare",
    "kick"
   ],
   "arpMel": [
    0,
    2,
    4,
    7,
    9,
    9,
    7,
    4,
    2,
    0,
    0,
    2,
    4,
    7,
    9,
    9,
    7,
    4,
    2,
    0,
    7,
    9,
    11,
    14,
    16,
    16,
    14,
    11,
    9,
    7,
    3,
    5,
    7,
    10,
    12,
    12,
    10,
    7,
    5,
    3
   ],
   "join": [
    [
     18,
     17,
     17,
     15
    ],
    [
     7,
     8,
     10,
     0
    ]
   ],
   "notes": [
    "c4",
    "e4",
    "f4",
    "d#4",
    "gb5",
    "gb5",
    "d#4",
    "f4",
    "e4",
    "c4"
   ]
  },
  "objects": {
   "33GEZSXS": {
    "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": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "33GEZSXS"
     ]
    }
   },
   "QNHP9S5T": {
    "object": "sample",
    "type": "hat",
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "speed": [
      1
     ],
     "env": [
      -1
     ],
     "beat": [
      1
     ],
     "amp": [
      0.9
     ],
     "stretch": [
      0,
      1,
      1
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "QNHP9S5T"
     ]
    }
   },
   "Q7HQCAX8": {
    "object": "midi",
    "type": "default",
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "note": [
      0,
      0
     ],
     "env": [
      100
     ],
     "out": [
      1
     ],
     "chord": "off",
     "sync": "off",
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "Q7HQCAX8"
     ]
    }
   },
   "RDLC3T3M": {
    "object": "loop",
    "type": "amen",
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "speed": [
      1
     ],
     "env": [
      -1
     ],
     "beat": [
      1
     ],
     "amp": [
      0.9
     ],
     "stretch": [
      1,
      1,
      1
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "RDLC3T3M"
     ]
    }
   },
   "Y6HZN2T3": {
    "object": "polySynth",
    "type": "sine",
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "note": [
      0,
      0
     ],
     "env": [
      1,
      250
     ],
     "beat": [
      1
     ],
     "amp": [
      0.7
     ],
     "wave2": [
      "saw",
      0
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "Y6HZN2T3"
     ]
    }
   },
   "8W6VAFDF": {
    "object": "polySample",
    "type": "kick",
    "functions": {
     "group": [],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "8W6VAFDF"
     ]
    }
   },
   "FGS65O42": {
    "object": "osc",
    "type": "address",
    "functions": {
     "group": [],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "FGS65O42"
     ]
    }
   },
   "GU411TDT": {
    "object": "sample",
    "type": [
     "hat",
     "kick",
     "snare"
    ],
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "speed": [
      1
     ],
     "env": [
      -1
     ],
     "beat": [
      1
     ],
     "amp": [
      0.9
     ],
     "stretch": [
      0,
      1,
      1
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "GU411TDT"
     ]
    }
   },
   "NQT0O8F3": {
    "object": "synth",
    "type": [
     "saw",
     "triangle",
     "sine"
    ],
    "functions": {
     "group": [],
     "time": [
      "1/1",
      0
     ],
     "note": [
      0,
      0
     ],
     "env": [
      1,
      250
     ],
     "beat": [
      1
     ],
     "amp": [
      0.7
     ],
     "wave2": [
      "saw",
      0
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "NQT0O8F3"
     ]
    }
   },
   "bob": {
    "object": "synth",
    "type": "saw",
    "functions": {
     "group": [],
     "time": [
      "1/8"
     ],
     "note": [
      [
       0,
       3,
       7
      ],
      0
     ],
     "env": [
      1,
      50
     ],
     "beat": [
      1
     ],
     "amp": [
      0.7
     ],
     "wave2": [
      "saw",
      0
     ],
     "add_fx": [
      [
       "double"
      ],
      [
       "delay",
       "3/16",
       0.7
      ],
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "bob"
     ]
    }
   },
   "alice": {
    "object": "sample",
    "type": "kick",
    "functions": {
     "group": [],
     "time": [
      0.25,
      0.5
     ],
     "speed": [
      1
     ],
     "env": [
      -1
     ],
     "beat": [
      [
       1,
       0,
       1,
       1
      ]
     ],
     "amp": [
      0.9
     ],
     "stretch": [
      0,
      1,
      1
     ],
     "add_fx": [
      [
       "drive"
      ],
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "alice"
     ]
    }
   },
   "ZZLP3PRT": {
    "object": "synth",
    "type": "square",
    "functions": {
     "group": [],
     "time": [
      "1/16"
     ],
     "note": [
      [
       6,
       0,
       10,
       8,
       0,
       8,
       10,
       0
      ]
     ],
     "env": [
      1,
      250
     ],
     "beat": [
      [
       1,
       0,
       1,
       0,
       1,
       1,
       0,
       1
      ]
     ],
     "amp": [
      0.7
     ],
     "wave2": [
      "saw",
      0
     ],
     "add_fx": [
      [
       "reverb",
       0.5,
       5
      ]
     ],
     "name": [
      "ZZLP3PRT"
     ]
    }
   }
  },
  "groups": {
   "all": [
    "bob",
    "alice"
   ]
  },
  "print": [
   [
    12,
    34,
    -56,
    7.89,
    1011.121,
    0.4321
   ],
   [
    "a",
    "A",
    "b",
    "B",
    "c",
    "C",
    "d",
    "D",
    "e",
    "E",
    "f",
    "F",
    "g",
    "G"
   ],
   [
    "a#",
    "B#",
    "C#",
    "Dx",
    "Gb",
    "fbb"
   ],
   [
    "a1",
    "A0",
    "b2b",
    "B4#",
    "c1",
    "C2bb",
    "d4##",
    "D3",
    "e2",
    "E1",
    "f4#",
    "F5",
    "g6",
    "G2"
   ],
   [
    "1/4",
    "3/16",
    "7/16",
    "4/5",
    "3/1"
   ],
   [
    "7/8",
    "3/2",
    "1/5"
   ],
   [
    "hello world",
    "also a string",
    "and another!",
    "this works?"
   ],
   "1 +2 /3.14* 45.67",
   [
    "Kick_dub",
    "dub_15",
    "foLey-02.wav",
    "-negative"
   ],
   [
    "~mySig",
    "~my-sig",
    "~my_Sig",
    "~23sig",
    "~sig423"
   ]
  ],
  "display": [],
  "comments": [
   "// Parsing numbers",
   "// Parse note names",
   "// Parse rhythmic division values",
   "// Parse comments",
   "// valid strings start and end with: \"\" '' ``",
   "// or a combination of those works as well",
   "// Parse identifier/name",
   "// valid identifiers start with characters [a-zA-Z]",
   "// can have _ - . and numbers [0-9]",
   "// Parse Signal modulation strings TODO",
   "// Parsing osc type strings TODO",
   "// print [ /oscString/param /oscString/temp  /anotherOsc/param ]",
   "// lists can have single values, arrays, keywords and strings",
   "// lists can be generated with functions",
   "// generate a synth, sample, loop or midi",
   "// an instrument can have an array",
   "// instruments can have functions",
   "// functions can have functions",
   "// set functions to named instruments",
   "// set functions to all instruments",
   "// set global settings"
  ]
 },
 "syntaxTree": {
  "@main": [
   {
    "@global": {
     "@comment": "// Parsing numbers"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@number": 12
        },
        {
         "@number": 34
        },
        {
         "@number": -56
        },
        {
         "@number": 7.89
        },
        {
         "@number": 1011.121
        },
        {
         "@number": 0.4321
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parse note names"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@note": "a"
        },
        {
         "@note": "A"
        },
        {
         "@note": "b"
        },
        {
         "@note": "B"
        },
        {
         "@note": "c"
        },
        {
         "@note": "C"
        },
        {
         "@note": "d"
        },
        {
         "@note": "D"
        },
        {
         "@note": "e"
        },
        {
         "@note": "E"
        },
        {
         "@note": "f"
        },
        {
         "@note": "F"
        },
        {
         "@note": "g"
        },
        {
         "@note": "G"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@note": "a#"
        },
        {
         "@note": "B#"
        },
        {
         "@note": "C#"
        },
        {
         "@note": "Dx"
        },
        {
         "@note": "Gb"
        },
        {
         "@note": "fbb"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@note": "a1"
        },
        {
         "@note": "A0"
        },
        {
         "@identifier": "b2b"
        },
        {
         "@identifier": "B4#"
        },
        {
         "@note": "c1"
        },
        {
         "@identifier": "C2bb"
        },
        {
         "@identifier": "d4##"
        },
        {
         "@note": "D3"
        },
        {
         "@note": "e2"
        },
        {
         "@note": "E1"
        },
        {
         "@identifier": "f4#"
        },
        {
         "@note": "F5"
        },
        {
         "@note": "g6"
        },
        {
         "@note": "G2"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parse rhythmic division values"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@division": "1/4"
        },
        {
         "@division": "3/16"
        },
        {
         "@division": "7/16"
        },
        {
         "@division": "4/5"
        },
        {
         "@division": "3/1"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@division": "7/8"
        },
        {
         "@division": "3/2"
        },
        {
         "@division": "1/5"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parse comments"
    }
   },
   {
    "@global": {
     "@comment": "// valid strings start and end with: \"\" '' ``"
    }
   },
   {
    "@global": {
     "@comment": "// or a combination of those works as well"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@string": "hello world"
        },
        {
         "@string": "also a string"
        },
        {
         "@string": "and another!"
        },
        {
         "@string": "this works?"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@string": "1 +2 /3.14* 45.67"
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parse identifier/name"
    }
   },
   {
    "@global": {
     "@comment": "// valid identifiers start with characters [a-zA-Z]"
    }
   },
   {
    "@global": {
     "@comment": "// can have _ - . and numbers [0-9]"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@identifier": "Kick_dub"
        },
        {
         "@identifier": "dub_15"
        },
        {
         "@identifier": "foLey-02.wav"
        },
        {
         "@identifier": "-negative"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parse Signal modulation strings TODO"
    }
   },
   {
    "@global": {
     "@print": [
      {
       "@array": [
        {
         "@signal": "~mySig"
        },
        {
         "@signal": "~my-sig"
        },
        {
         "@signal": "~my_Sig"
        },
        {
         "@signal": "~23sig"
        },
        {
         "@signal": "~sig423"
        }
       ]
      }
     ]
    }
   },
   {
    "@global": {
     "@comment": "// Parsing osc type strings TODO"
    }
   },
   {
    "@global": {
     "@comment": "// print [ /oscString/param /oscString/temp  /anotherOsc/param ]"
    }
   },
   {
    "@global": {
     "@comment": "// lists can have single values, arrays, keywords and strings"
    }
   },
   {
    "@list": {
     "@name": "arr1",
     "@params": {
      "@number": 3.141592654
     }
    }
   },
   {
    "@list": {
     "@name": "arr2",
     "@params": {
      "@array": [
       {
        "@number": 1
       },
       {
        "@number": 2
       },
       {
        "@identifier": "arr1"
       }
      ]
     }
    }
   },
   {
    "@list": {
     "@name": "arr3",
     "@params": {
      "@array": [
       {
        "@number": 1
       },
       {
        "@number": 2
       },
       {
        "@identifier": "arr2"
       },
       {
        "@number": 56
       },
       {
        "@number": 7.89e-13
       }
      ]
     }
    }
   },
   {
    "@list": {
     "@name": "arr4",
     "@params": {
      "@array": [
       {
        "@identifier": "hat_dub"
       },
       {
        "@identifier": "hat_dub_open"
       },
       {
        "@identifier": "hat_909"
       }
      ]
     }
    }
   },
   {
    "@list": {
     "@name": "arr5",
     "@params": {
      "@array": [
       {
        "@string": "hello world"
       },
       {
        "@string": "foo bar"
       }
      ]
     }
    }
   },
   {
    "@list": {
     "@name": "arr6",
     "@params": {
      "@array": [
       {
        "@number": 1
       },
       {
        "@number": 2
       },
       {
        "@array": [
         {
          "@number": 3
         },
         {
          "@number": 4
         }
        ]
       },
       {
        "@number": 5
       },
       {
        "@array": [
         {
          "@number": 6
         },
         {
          "@array": [
           {
            "@number": 7
           },
           {
            "@number": 8
           }
          ]
         },
         {
          "@number": 9
         }
        ]
       },
       {
        "@number": 10
       },
       {
        "@number": 11
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// lists can be generated with functions"
    }
   },
   {
    "@list": {
     "@name": "beat",
     "@params": {
      "@function": {
       "@name": "euclid",
       "@args": [
        {
         "@number": 16
        },
        {
         "@number": 9
        },
        {
         "@number": 0
        }
       ]
      }
     }
    }
   },
   {
    "@list": {
     "@name": "grv",
     "@params": {
      "@function": {
       "@name": "choose",
       "@args": [
        {
         "@number": 8
        },
        {
         "@array": [
          {
           "@identifier": "hat"
          },
          {
           "@identifier": "kick"
          },
          {
           "@identifier": "snare"
          }
         ]
        }
       ]
      }
     }
    }
   },
   {
    "@list": {
     "@name": "arpMel",
     "@params": {
      "@function": {
       "@name": "clone",
       "@args": [
        {
         "@function": {
          "@name": "palin",
          "@args": [
           {
            "@function": {
             "@name": "spread",
             "@args": [
              {
               "@number": 5
              },
              {
               "@number": 0
              },
              {
               "@number": 12
              }
             ]
            }
           }
          ]
         }
        },
        {
         "@number": 0
        },
        {
         "@number": 0
        },
        {
         "@number": 7
        },
        {
         "@number": 3
        }
       ]
      }
     }
    }
   },
   {
    "@list": {
     "@name": "join",
     "@params": {
      "@array": [
       {
        "@function": {
         "@name": "random",
         "@args": [
          {
           "@number": 4
          },
          {
           "@number": 10
          },
          {
           "@number": 20
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "urn",
         "@args": [
          {
           "@number": 4
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@list": {
     "@name": "notes",
     "@params": {
      "@function": {
       "@name": "palin",
       "@args": [
        {
         "@array": [
          {
           "@note": "c4"
          },
          {
           "@note": "e4"
          },
          {
           "@note": "f4"
          },
          {
           "@note": "d#4"
          },
          {
           "@note": "gb5"
          }
         ]
        }
       ]
      }
     }
    }
   },
   {
    "@global": {
     "@comment": "// generate a synth, sample, loop or midi"
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "synth",
      "@type": {
       "@identifier": "saw"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "sample",
      "@type": {
       "@identifier": "hat"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "midi",
      "@type": {
       "@identifier": "default"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "loop",
      "@type": {
       "@identifier": "amen"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "polySynth",
      "@type": {
       "@identifier": "sine"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "polySample",
      "@type": {
       "@identifier": "kick"
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "osc",
      "@type": {
       "@identifier": "address"
      }
     }
    }
   },
   {
    "@global": {
     "@comment": "// an instrument can have an array"
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "sample",
      "@type": {
       "@array": [
        {
         "@identifier": "hat"
        },
        {
         "@identifier": "kick"
        },
        {
         "@identifier": "snare"
        }
       ]
      }
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "synth",
      "@type": {
       "@array": [
        {
         "@identifier": "saw"
        },
        {
         "@identifier": "triangle"
        },
        {
         "@identifier": "sine"
        }
       ]
      }
     }
    }
   },
   {
    "@global": {
     "@comment": "// instruments can have functions"
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "synth",
      "@type": {
       "@identifier": "saw"
      },
      "@functions": [
       {
        "@function": {
         "@name": "note",
         "@args": [
          {
           "@array": [
            {
             "@number": 0
            },
            {
             "@number": 3
            },
            {
             "@number": 7
            }
           ]
          },
          {
           "@number": 0
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "time",
         "@args": [
          {
           "@division": "1/8"
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "env",
         "@args": [
          {
           "@number": 1
          },
          {
           "@number": 50
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "name",
         "@args": [
          {
           "@identifier": "bob"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "sample",
      "@type": {
       "@identifier": "kick"
      },
      "@functions": [
       {
        "@function": {
         "@name": "time",
         "@args": [
          {
           "@number": 0.25
          },
          {
           "@number": 0.5
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "beat",
         "@args": [
          {
           "@array": [
            {
             "@number": 1
            },
            {
             "@number": 0
            },
            {
             "@number": 1
            },
            {
             "@number": 1
            }
           ]
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "name",
         "@args": [
          {
           "@identifier": "alice"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// functions can have functions"
    }
   },
   {
    "@object": {
     "@new": {
      "@inst": "synth",
      "@type": {
       "@identifier": "square"
      },
      "@functions": [
       {
        "@function": {
         "@name": "note",
         "@args": [
          {
           "@function": {
            "@name": "sine",
            "@args": [
             {
              "@number": 8
             },
             {
              "@number": 5.512
             },
             {
              "@number": 0
             },
             {
              "@number": 12
             }
            ]
           }
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "beat",
         "@args": [
          {
           "@function": {
            "@name": "euclid",
            "@args": [
             {
              "@number": 8
             },
             {
              "@number": 5
             }
            ]
           }
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "time",
         "@args": [
          {
           "@division": "1/16"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// set functions to named instruments"
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "bob",
      "@functions": [
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "double"
          }
         ]
        }
       },
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "delay"
          },
          {
           "@division": "3/16"
          },
          {
           "@number": 0.7
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "alice",
      "@functions": [
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "drive"
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// set functions to all instruments"
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "all",
      "@functions": [
       {
        "@function": {
         "@name": "add_fx",
         "@args": [
          {
           "@identifier": "reverb"
          },
          {
           "@number": 0.5
          },
          {
           "@number": 5
          }
         ]
        }
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@comment": "// set global settings"
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "randomSeed",
      "@functions": [
       {
        "@number": 9876
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "tempo",
      "@functions": [
       {
        "@number": 143
       },
       {
        "@number": 1000
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "scale",
      "@functions": [
       {
        "@identifier": "major"
       },
       {
        "@note": "g#"
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "hipass",
      "@functions": [
       {
        "@number": 500
       },
       {
        "@number": 3000
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "lopass",
      "@functions": [
       {
        "@number": 2000
       },
       {
        "@number": 500
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "crossFade",
      "@functions": [
       {
        "@number": 100
       }
      ]
     }
    }
   },
   {
    "@object": {
     "@set": {
      "@name": "tempo",
      "@functions": [
       {
        "@identifier": "hiphop"
       },
       {
        "@identifier": "uptempo"
       }
      ]
     }
    }
   },
   {
    "@global": {
     "@settings": {
      "@identifier": "silence"
     }
    }
   }
  ]
 },
 "errors": [
  "Unknown instrument type: polySample",
  "Unknown instrument type: osc",
  "Error at line 83: Unexpected divider: '/' at new sample bell gain(/<-"
 ]
}
