{
  "state": {},
  "graphs": [
    {
      "edges": {
        "oyvi131": {
          "as": "value",
          "from": "oyvi131",
          "to": "gh0zhhd"
        },
        "6g7czys": {
          "as": "value",
          "from": "6g7czys",
          "to": "oyvi131"
        },
        "cqgt8q8": {
          "as": "webaudio",
          "from": "cqgt8q8",
          "to": "6g7czys"
        },
        "hrcfcz5": {
          "as": "mini",
          "from": "hrcfcz5",
          "to": "6g7czys"
        },
        "nkw80ry": {
          "as": "core",
          "from": "nkw80ry",
          "to": "6g7czys"
        }
      },
      "id": "@strudel.lib",
      "name": "@strudel.lib",
      "nodes": {
        "gh0zhhd": {
          "id": "gh0zhhd",
          "name": "@strudel.lib",
          "ref": "return"
        },
        "oyvi131": {
          "id": "oyvi131",
          "ref": "@memory.cache"
        },
        "6g7czys": {
          "id": "6g7czys",
          "ref": "@js.script",
          "value": "webaudio.registerSynthSounds();\nconst initAudio = webaudio.initAudioOnFirstClick();\nconst loadModules = core.evalScope(\n  core.controls, \n  core, \n  webaudio,\n  mini\n)\nconst ctx = webaudio.getAudioContext();\nwebaudio.samples('github:tidalcycles/Dirt-Samples/master')\nconst { scheduler } = core.repl({\n  defaultOutput: webaudio.webaudioOutput,\n  getTime: () => ctx.currentTime\n});\nreturn {loadModules, scheduler, core, initAudio, mini}"
        },
        "nkw80ry": {
          "id": "nkw80ry",
          "ref": "@js.import_module",
          "value": "https://cdn.skypack.dev/@strudel.cycles/core"
        },
        "hrcfcz5": {
          "id": "hrcfcz5",
          "ref": "@js.import_module",
          "value": "https://cdn.skypack.dev/@strudel.cycles/mini"
        },
        "cqgt8q8": {
          "id": "cqgt8q8",
          "ref": "@js.import_module",
          "value": "https://cdn.skypack.dev/@strudel.cycles/webaudio"
        }
      },
      "out": "gh0zhhd",
      "edges_in": {
        "gh0zhhd": {
          "oyvi131": {
            "as": "value",
            "from": "oyvi131",
            "to": "gh0zhhd"
          }
        },
        "oyvi131": {
          "6g7czys": {
            "as": "value",
            "from": "6g7czys",
            "to": "oyvi131"
          }
        },
        "6g7czys": {
          "cqgt8q8": {
            "as": "webaudio",
            "from": "cqgt8q8",
            "to": "6g7czys"
          },
          "hrcfcz5": {
            "as": "mini",
            "from": "hrcfcz5",
            "to": "6g7czys"
          },
          "nkw80ry": {
            "as": "core",
            "from": "nkw80ry",
            "to": "6g7czys"
          }
        },
        "nkw80ry": {},
        "hrcfcz5": {},
        "cqgt8q8": {}
      }
    },
    {
      "category": "templates",
      "edges": {
        "d11fluo": {
          "as": "value",
          "from": "d11fluo",
          "to": "out"
        },
        "np7ly3o": {
          "as": "args",
          "from": "np7ly3o",
          "to": "d11fluo"
        },
        "output_val": {
          "as": "self",
          "from": "output_val",
          "to": "d11fluo"
        },
        "h1g356p": {
          "as": "arg0",
          "from": "h1g356p",
          "to": "np7ly3o"
        }
      },
      "id": "@strudel.mini",
      "nodes": {
        "out": {
          "id": "out",
          "name": "@strudel.mini",
          "ref": "return"
        },
        "d11fluo": {
          "id": "d11fluo",
          "ref": "@js.call"
        },
        "output_val": {
          "id": "output_val",
          "ref": "arg",
          "value": "_lib.strudel.mini.mini"
        },
        "np7ly3o": {
          "id": "np7ly3o",
          "ref": "@data.array"
        },
        "h1g356p": {
          "id": "h1g356p",
          "ref": "arg",
          "value": "__graph_value"
        }
      },
      "out": "out",
      "edges_in": {
        "out": {
          "d11fluo": {
            "as": "value",
            "from": "d11fluo",
            "to": "out"
          }
        },
        "d11fluo": {
          "np7ly3o": {
            "as": "args",
            "from": "np7ly3o",
            "to": "d11fluo"
          },
          "output_val": {
            "as": "self",
            "from": "output_val",
            "to": "d11fluo"
          }
        },
        "output_val": {},
        "np7ly3o": {
          "h1g356p": {
            "as": "arg0",
            "from": "h1g356p",
            "to": "np7ly3o"
          }
        },
        "h1g356p": {}
      }
    },
    {
      "category": "templates",
      "edges": {
        "args": {
          "as": "args",
          "from": "args",
          "to": "out"
        },
        "n0pw8bg": {
          "as": "lib",
          "from": "n0pw8bg",
          "to": "out"
        },
        "oacpf32": {
          "as": "subscribe",
          "from": "oacpf32",
          "to": "out"
        },
        "tg5essa": {
          "as": "display",
          "from": "tg5essa",
          "to": "out"
        },
        "2vnduqy": {
          "as": "graphchange",
          "from": "2vnduqy",
          "to": "oacpf32"
        },
        "gh0zhhd": {
          "as": "strudel",
          "from": "gh0zhhd",
          "to": "n0pw8bg"
        },
        "6nh2e2f": {
          "as": "isPlaying",
          "from": "6nh2e2f",
          "to": "args"
        },
        "zu1315o": {
          "as": "evalTidal",
          "from": "zu1315o",
          "to": "args"
        },
        "8c3kr5m": {
          "as": "fn",
          "from": "8c3kr5m",
          "to": "zu1315o"
        },
        "09r0lic": {
          "as": "scheduler",
          "from": "09r0lic",
          "to": "8c3kr5m"
        },
        "q7iogdh": {
          "as": "pattern",
          "from": "q7iogdh",
          "to": "8c3kr5m"
        },
        "ib1o762": {
          "as": "args",
          "from": "ib1o762",
          "to": "q7iogdh"
        },
        "zozybkk": {
          "as": "self",
          "from": "zozybkk",
          "to": "q7iogdh"
        },
        "a9nl4h4": {
          "as": "args",
          "from": "a9nl4h4",
          "to": "zozybkk"
        },
        "bwo16lt": {
          "as": "self",
          "from": "bwo16lt",
          "to": "zozybkk"
        },
        "5x217tf": {
          "as": "args",
          "from": "5x217tf",
          "to": "bwo16lt"
        },
        "vdf5cue": {
          "as": "self",
          "from": "vdf5cue",
          "to": "bwo16lt"
        },
        "0oi3mhn": {
          "as": "args",
          "from": "0oi3mhn",
          "to": "vdf5cue"
        },
        "iswjcbp": {
          "as": "self",
          "from": "iswjcbp",
          "to": "vdf5cue"
        },
        "1khcqlv": {
          "as": "self",
          "from": "1khcqlv",
          "to": "iswjcbp"
        },
        "eo438fo": {
          "as": "args",
          "from": "eo438fo",
          "to": "iswjcbp"
        },
        "3n4sqj3": {
          "as": "args",
          "from": "3n4sqj3",
          "to": "1khcqlv"
        },
        "5e3sym3": {
          "as": "self",
          "from": "5e3sym3",
          "to": "1khcqlv"
        },
        "pwa3cqd": {
          "as": "args",
          "from": "pwa3cqd",
          "to": "5e3sym3"
        },
        "yb0g0u1": {
          "as": "self",
          "from": "yb0g0u1",
          "to": "5e3sym3"
        },
        "pxhi2ap": {
          "as": "value",
          "from": "pxhi2ap",
          "to": "yb0g0u1"
        },
        "fsohrh3": {
          "as": "arg0",
          "from": "fsohrh3",
          "to": "0oi3mhn"
        },
        "ne4oux4": {
          "as": "arg1",
          "from": "ne4oux4",
          "to": "0oi3mhn"
        },
        "ndgg4kq": {
          "as": "arg0",
          "from": "ndgg4kq",
          "to": "5x217tf"
        }
      },
      "edges_in": {
        "out": {
          "args": {
            "as": "args",
            "from": "args",
            "to": "out"
          },
          "n0pw8bg": {
            "as": "lib",
            "from": "n0pw8bg",
            "to": "out"
          },
          "oacpf32": {
            "as": "subscribe",
            "from": "oacpf32",
            "to": "out"
          },
          "tg5essa": {
            "as": "display",
            "from": "tg5essa",
            "to": "out"
          }
        },
        "tg5essa": {},
        "oacpf32": {
          "2vnduqy": {
            "as": "graphchange",
            "from": "2vnduqy",
            "to": "oacpf32"
          }
        },
        "2vnduqy": {},
        "n0pw8bg": {
          "gh0zhhd": {
            "as": "strudel",
            "from": "gh0zhhd",
            "to": "n0pw8bg"
          }
        },
        "gh0zhhd": {},
        "args": {
          "6nh2e2f": {
            "as": "isPlaying",
            "from": "6nh2e2f",
            "to": "args"
          },
          "zu1315o": {
            "as": "evalTidal",
            "from": "zu1315o",
            "to": "args"
          }
        },
        "zu1315o": {
          "8c3kr5m": {
            "as": "fn",
            "from": "8c3kr5m",
            "to": "zu1315o"
          }
        },
        "8c3kr5m": {
          "09r0lic": {
            "as": "scheduler",
            "from": "09r0lic",
            "to": "8c3kr5m"
          },
          "q7iogdh": {
            "as": "pattern",
            "from": "q7iogdh",
            "to": "8c3kr5m"
          }
        },
        "q7iogdh": {
          "ib1o762": {
            "as": "args",
            "from": "ib1o762",
            "to": "q7iogdh"
          },
          "zozybkk": {
            "as": "self",
            "from": "zozybkk",
            "to": "q7iogdh"
          }
        },
        "zozybkk": {
          "a9nl4h4": {
            "as": "args",
            "from": "a9nl4h4",
            "to": "zozybkk"
          },
          "bwo16lt": {
            "as": "self",
            "from": "bwo16lt",
            "to": "zozybkk"
          }
        },
        "bwo16lt": {
          "5x217tf": {
            "as": "args",
            "from": "5x217tf",
            "to": "bwo16lt"
          },
          "vdf5cue": {
            "as": "self",
            "from": "vdf5cue",
            "to": "bwo16lt"
          }
        },
        "vdf5cue": {
          "0oi3mhn": {
            "as": "args",
            "from": "0oi3mhn",
            "to": "vdf5cue"
          },
          "iswjcbp": {
            "as": "self",
            "from": "iswjcbp",
            "to": "vdf5cue"
          }
        },
        "iswjcbp": {
          "1khcqlv": {
            "as": "self",
            "from": "1khcqlv",
            "to": "iswjcbp"
          },
          "eo438fo": {
            "as": "args",
            "from": "eo438fo",
            "to": "iswjcbp"
          }
        },
        "eo438fo": {},
        "1khcqlv": {
          "3n4sqj3": {
            "as": "args",
            "from": "3n4sqj3",
            "to": "1khcqlv"
          },
          "5e3sym3": {
            "as": "self",
            "from": "5e3sym3",
            "to": "1khcqlv"
          }
        },
        "5e3sym3": {
          "pwa3cqd": {
            "as": "args",
            "from": "pwa3cqd",
            "to": "5e3sym3"
          },
          "yb0g0u1": {
            "as": "self",
            "from": "yb0g0u1",
            "to": "5e3sym3"
          }
        },
        "yb0g0u1": {
          "pxhi2ap": {
            "as": "value",
            "from": "pxhi2ap",
            "to": "yb0g0u1"
          }
        },
        "pxhi2ap": {},
        "pwa3cqd": {},
        "3n4sqj3": {},
        "0oi3mhn": {
          "fsohrh3": {
            "as": "arg0",
            "from": "fsohrh3",
            "to": "0oi3mhn"
          },
          "ne4oux4": {
            "as": "arg1",
            "from": "ne4oux4",
            "to": "0oi3mhn"
          }
        },
        "ne4oux4": {},
        "fsohrh3": {},
        "5x217tf": {
          "ndgg4kq": {
            "as": "arg0",
            "from": "ndgg4kq",
            "to": "5x217tf"
          }
        },
        "ndgg4kq": {},
        "a9nl4h4": {},
        "ib1o762": {},
        "09r0lic": {},
        "6nh2e2f": {}
      },
      "id": "strudel_example",
      "nodes": {
        "out": {
          "id": "out",
          "name": "strudel_example",
          "ref": "return"
        },
        "tg5essa": {
          "edges": {
            "0hmn94c": {
              "as": "arg0",
              "from": "0hmn94c",
              "to": "8xsvmcl"
            },
            "14fji01": {
              "as": "value",
              "from": "14fji01",
              "to": "fbpbkec"
            },
            "30izggp": {
              "as": "fn",
              "from": "30izggp",
              "to": "vqnudp1"
            },
            "8dy573e": {
              "as": "value",
              "from": "8dy573e",
              "to": "tg5essa"
            },
            "8xsvmcl": {
              "as": "children",
              "from": "8xsvmcl",
              "to": "8dy573e"
            },
            "ayi97ve": {
              "as": "props",
              "from": "ayi97ve",
              "to": "0hmn94c"
            },
            "bnwoi8y": {
              "as": "fn",
              "from": "bnwoi8y",
              "to": "ef974nd"
            },
            "ef974nd": {
              "as": "onclick",
              "from": "ef974nd",
              "to": "ayi97ve"
            },
            "fbpbkec": {
              "as": "args",
              "from": "fbpbkec",
              "to": "t8hk4fi"
            },
            "frg006q": {
              "as": "props",
              "from": "frg006q",
              "to": "sku0tcz"
            },
            "hgvjzmr": {
              "as": "children",
              "from": "hgvjzmr",
              "to": "sku0tcz"
            },
            "hssakap": {
              "as": "value",
              "from": "hssakap",
              "to": "14fji01"
            },
            "oxgyr7i": {
              "as": "scheduler",
              "from": "oxgyr7i",
              "to": "30izggp"
            },
            "p3005m9": {
              "as": "arg0",
              "from": "p3005m9",
              "to": "bnwoi8y"
            },
            "sku0tcz": {
              "as": "arg1",
              "from": "sku0tcz",
              "to": "8xsvmcl"
            },
            "t8hk4fi": {
              "as": "arg1",
              "from": "t8hk4fi",
              "to": "bnwoi8y"
            },
            "ucipxuk": {
              "as": "fn",
              "from": "ucipxuk",
              "to": "t8hk4fi"
            },
            "vqnudp1": {
              "as": "onclick",
              "from": "vqnudp1",
              "to": "frg006q"
            },
            "xgh1hd6": {
              "as": "children",
              "from": "xgh1hd6",
              "to": "0hmn94c"
            }
          },
          "edges_in": {
            "0hmn94c": {
              "ayi97ve": {
                "as": "props",
                "from": "ayi97ve",
                "to": "0hmn94c"
              },
              "xgh1hd6": {
                "as": "children",
                "from": "xgh1hd6",
                "to": "0hmn94c"
              }
            },
            "14fji01": {
              "hssakap": {
                "as": "value",
                "from": "hssakap",
                "to": "14fji01"
              }
            },
            "30izggp": {
              "oxgyr7i": {
                "as": "scheduler",
                "from": "oxgyr7i",
                "to": "30izggp"
              }
            },
            "8dy573e": {
              "8xsvmcl": {
                "as": "children",
                "from": "8xsvmcl",
                "to": "8dy573e"
              }
            },
            "8xsvmcl": {
              "0hmn94c": {
                "as": "arg0",
                "from": "0hmn94c",
                "to": "8xsvmcl"
              },
              "sku0tcz": {
                "as": "arg1",
                "from": "sku0tcz",
                "to": "8xsvmcl"
              }
            },
            "ayi97ve": {
              "ef974nd": {
                "as": "onclick",
                "from": "ef974nd",
                "to": "ayi97ve"
              }
            },
            "bnwoi8y": {
              "p3005m9": {
                "as": "arg0",
                "from": "p3005m9",
                "to": "bnwoi8y"
              },
              "t8hk4fi": {
                "as": "arg1",
                "from": "t8hk4fi",
                "to": "bnwoi8y"
              }
            },
            "ef974nd": {
              "bnwoi8y": {
                "as": "fn",
                "from": "bnwoi8y",
                "to": "ef974nd"
              }
            },
            "fbpbkec": {
              "14fji01": {
                "as": "value",
                "from": "14fji01",
                "to": "fbpbkec"
              }
            },
            "frg006q": {
              "vqnudp1": {
                "as": "onclick",
                "from": "vqnudp1",
                "to": "frg006q"
              }
            },
            "sku0tcz": {
              "frg006q": {
                "as": "props",
                "from": "frg006q",
                "to": "sku0tcz"
              },
              "hgvjzmr": {
                "as": "children",
                "from": "hgvjzmr",
                "to": "sku0tcz"
              }
            },
            "t8hk4fi": {
              "fbpbkec": {
                "as": "args",
                "from": "fbpbkec",
                "to": "t8hk4fi"
              },
              "ucipxuk": {
                "as": "fn",
                "from": "ucipxuk",
                "to": "t8hk4fi"
              }
            },
            "tg5essa": {
              "8dy573e": {
                "as": "value",
                "from": "8dy573e",
                "to": "tg5essa"
              }
            },
            "vqnudp1": {
              "30izggp": {
                "as": "fn",
                "from": "30izggp",
                "to": "vqnudp1"
              }
            }
          },
          "id": "tg5essa",
          "name": "start/stop",
          "nodes": {
            "0hmn94c": {
              "id": "0hmn94c",
              "ref": "@html.html_element",
              "value": "button"
            },
            "14fji01": {
              "id": "14fji01",
              "ref": "@data.not"
            },
            "30izggp": {
              "id": "30izggp",
              "ref": "@js.script",
              "value": "scheduler.stop();"
            },
            "8dy573e": {
              "id": "8dy573e",
              "ref": "@html.html_element"
            },
            "8xsvmcl": {
              "id": "8xsvmcl",
              "ref": "@data.array"
            },
            "ayi97ve": {
              "id": "ayi97ve"
            },
            "bnwoi8y": {
              "id": "bnwoi8y",
              "ref": "@data.array"
            },
            "ef974nd": {
              "id": "ef974nd",
              "ref": "@flow.ap"
            },
            "fbpbkec": {
              "id": "fbpbkec"
            },
            "frg006q": {
              "id": "frg006q"
            },
            "hgvjzmr": {
              "id": "hgvjzmr",
              "value": "stop"
            },
            "hssakap": {
              "id": "hssakap",
              "li97vnj": "hbio0za",
              "ref": "arg",
              "value": "isPlaying.value"
            },
            "oxgyr7i": {
              "id": "oxgyr7i",
              "ref": "arg",
              "value": "_lib.strudel.scheduler"
            },
            "p3005m9": {
              "id": "p3005m9",
              "ref": "arg",
              "value": "evalTidal"
            },
            "sku0tcz": {
              "id": "sku0tcz",
              "ref": "@html.html_element",
              "value": "button"
            },
            "t8hk4fi": {
              "id": "t8hk4fi",
              "ref": "@flow.ap",
              "tg5essa": "p5zhf7g"
            },
            "tg5essa": {
              "id": "tg5essa",
              "ref": "return"
            },
            "ucipxuk": {
              "id": "ucipxuk",
              "ref": "arg",
              "value": "isPlaying.set"
            },
            "vqnudp1": {
              "id": "vqnudp1",
              "ref": "@flow.runnable"
            },
            "xgh1hd6": {
              "id": "xgh1hd6",
              "value": "start"
            }
          },
          "out": "tg5essa"
        },
        "oacpf32": {
          "id": "oacpf32"
        },
        "2vnduqy": {
          "edges": {
            "2wwc9y3": {
              "as": "fn",
              "from": "2wwc9y3",
              "to": "io11yuf"
            },
            "ccssezc": {
              "as": "fn",
              "from": "ccssezc",
              "to": "xyvqie5"
            },
            "io11yuf": {
              "as": "value",
              "from": "io11yuf",
              "to": "2vnduqy"
            },
            "jnmmh1p": {
              "as": "pred",
              "from": "jnmmh1p",
              "to": "2wwc9y3"
            },
            "ujem3x0": {
              "as": "run",
              "from": "ujem3x0",
              "to": "xyvqie5"
            },
            "xyvqie5": {
              "as": "true",
              "from": "xyvqie5",
              "to": "2wwc9y3"
            }
          },
          "id": "2vnduqy",
          "name": "rerunOnGraphChange",
          "nodes": {
            "2vnduqy": {
              "id": "2vnduqy",
              "name": "rerunOnGraphChange",
              "ref": "return"
            },
            "2wwc9y3": {
              "id": "2wwc9y3",
              "ref": "@flow.if"
            },
            "ccssezc": {
              "id": "ccssezc",
              "ref": "arg",
              "value": "evalTidal"
            },
            "io11yuf": {
              "id": "io11yuf",
              "ref": "@flow.runnable"
            },
            "jnmmh1p": {
              "id": "jnmmh1p",
              "ref": "arg",
              "value": "isPlaying.value"
            },
            "ujem3x0": {
              "id": "ujem3x0",
              "value": "true"
            },
            "xyvqie5": {
              "id": "xyvqie5",
              "ref": "@flow.ap"
            }
          },
          "out": "2vnduqy"
        },
        "n0pw8bg": {
          "id": "n0pw8bg"
        },
        "gh0zhhd": {
          "id": "gh0zhhd",
          "ref": "@strudel.lib"
        },
        "args": {
          "id": "args"
        },
        "zu1315o": {
          "id": "zu1315o",
          "ref": "@flow.runnable"
        },
        "8c3kr5m": {
          "id": "8c3kr5m",
          "ref": "@js.script",
          "value": "scheduler.setPattern(pattern);\nscheduler.start()"
        },
        "q7iogdh": {
          "id": "q7iogdh",
          "ref": "@js.call",
          "value": "room"
        },
        "zozybkk": {
          "id": "zozybkk",
          "ref": "@js.call",
          "value": "slow"
        },
        "bwo16lt": {
          "id": "bwo16lt",
          "ref": "@js.call",
          "value": "s"
        },
        "vdf5cue": {
          "id": "vdf5cue",
          "ref": "@js.call",
          "value": "sometimesBy"
        },
        "iswjcbp": {
          "id": "iswjcbp",
          "ref": "@js.call",
          "value": "rarely"
        },
        "eo438fo": {
          "id": "eo438fo",
          "ref": "@js.script",
          "value": "return x => x.speed(2)"
        },
        "1khcqlv": {
          "id": "1khcqlv",
          "ref": "@js.call",
          "value": "sometimes"
        },
        "5e3sym3": {
          "id": "5e3sym3",
          "ref": "@js.call",
          "value": "n"
        },
        "yb0g0u1": {
          "id": "yb0g0u1",
          "ref": "@memory.cache"
        },
        "pxhi2ap": {
          "id": "pxhi2ap",
          "ref": "arg",
          "value": "_lib.strudel.core.controls"
        },
        "pwa3cqd": {
          "id": "pwa3cqd",
          "ref": "@strudel.mini",
          "value": "0 1 2 3 4 5 6 7"
        },
        "3n4sqj3": {
          "id": "3n4sqj3",
          "ref": "@js.script",
          "value": "return x => x.ply(2);"
        },
        "0oi3mhn": {
          "id": "0oi3mhn",
          "ref": "@data.array"
        },
        "ne4oux4": {
          "id": "ne4oux4",
          "ref": "@js.script",
          "value": "return x => x.delay(\"0.5\")"
        },
        "fsohrh3": {
          "id": "fsohrh3",
          "value": "0.4"
        },
        "5x217tf": {
          "id": "5x217tf",
          "ref": "@data.array"
        },
        "ndgg4kq": {
          "id": "ndgg4kq",
          "value": "amencutup"
        },
        "a9nl4h4": {
          "id": "a9nl4h4",
          "value": "2"
        },
        "ib1o762": {
          "id": "ib1o762",
          "value": ".5"
        },
        "09r0lic": {
          "id": "09r0lic",
          "ref": "arg",
          "value": "_lib.strudel.scheduler"
        },
        "6nh2e2f": {
          "id": "6nh2e2f",
          "ref": "@memory.reference"
        }
      },
      "out": "out"
    }
  ]
}
