{
  "format": "forge.graph/0",
  "name": "Ping-Pong Tape",
  "author": "Chirp",
  "license": "CC-BY-4.0",
  "remixed_from": {
    "id": "b0d7136f746af74d",
    "name": "Tape Echo",
    "author": "Chirp",
    "note": "Bounces the repeats from side to side, on the knob that was Wow: the dry signal goes into the left side of the echo and a cross-feed swaps the sides on every repeat. Wow stays on at a gentle fixed amount."
  },
  "description": "Tape Echo whose repeats bounce between left and right. Bounce at zero is the original's stereo echo; all the way up, each repeat lands on the other side.",
  "tags": [
    "delay",
    "tape",
    "ping-pong",
    "stereo"
  ],
  "face": {
    "knobs": [
      {
        "id": "time",
        "label": "Time",
        "default": 0.62,
        "controls": [
          {
            "target": "line.time",
            "from": 0.02,
            "to": 2.0,
            "curve": "exp"
          }
        ]
      },
      {
        "id": "feedback",
        "label": "Repeats",
        "default": 0.45,
        "controls": [
          {
            "target": "fb.amount",
            "from": 0,
            "to": 0.97
          }
        ]
      },
      {
        "id": "mix",
        "label": "Mix",
        "default": 0.4,
        "controls": [
          {
            "target": "mixer.mix",
            "from": 0,
            "to": 1
          }
        ]
      },
      {
        "id": "tone",
        "label": "Tone",
        "default": 0.45,
        "controls": [
          {
            "target": "echo.cutoff",
            "from": 700,
            "to": 15839,
            "curve": "exp"
          }
        ]
      },
      {
        "id": "bounce",
        "label": "Bounce",
        "default": 0.8,
        "controls": [
          {
            "target": "bounce.amount",
            "from": 0,
            "to": 1
          },
          {
            "target": "feed.pos",
            "from": 0,
            "to": -1
          }
        ]
      },
      {
        "id": "saturation",
        "label": "Drive",
        "default": 0.5,
        "controls": [
          {
            "target": "tape.drive",
            "from": 1,
            "to": 3
          },
          {
            "target": "tape.level",
            "from": 1,
            "to": 1.3
          },
          {
            "target": "mods.stretch",
            "from": 0,
            "to": 0.0015
          }
        ]
      }
    ],
    "menus": [
      {
        "id": "path",
        "label": "Repeats",
        "options": [
          "Clean",
          "Saturate",
          "Lo-fi",
          "Dark"
        ],
        "default": 1,
        "controls": [
          {
            "target": "path.choice"
          }
        ]
      }
    ]
  },
  "nodes": {
    "feed": {
      "block": "balance",
      "in": {
        "x": "in"
      }
    },
    "line": {
      "block": "delay",
      "set": {
        "glide": 250
      },
      "in": {
        "x": [
          "feed",
          "bounce"
        ]
      }
    },
    "tape": {
      "block": "saturate",
      "in": {
        "x": "line"
      }
    },
    "echo": {
      "block": "onepole",
      "in": {
        "x": "tape"
      }
    },
    "hot": {
      "block": "saturate",
      "set": {
        "drive": 1.8,
        "level": 1.1134
      },
      "in": {
        "x": "echo"
      }
    },
    "crush": {
      "block": "crush",
      "set": {
        "bits": 7,
        "rate_hz": 12000
      },
      "in": {
        "x": "echo"
      }
    },
    "lofi": {
      "block": "onepole",
      "set": {
        "cutoff": 3500
      },
      "in": {
        "x": "crush"
      }
    },
    "dark_hp": {
      "block": "onepole",
      "set": {
        "cutoff": 300
      },
      "in": {
        "x": "echo"
      }
    },
    "dark": {
      "block": "onepole",
      "set": {
        "cutoff": 2200
      },
      "in": {
        "x": "dark_hp:hp"
      }
    },
    "path": {
      "block": "select",
      "in": {
        "a": "echo",
        "b": "hot",
        "c": "lofi",
        "d": "dark"
      }
    },
    "fb": {
      "block": "gain",
      "in": {
        "x": "path"
      }
    },
    "bounce": {
      "block": "cross",
      "in": {
        "x": "fb"
      }
    },
    "mixer": {
      "block": "blend",
      "in": {
        "dry": "in",
        "wet": "echo"
      }
    },
    "drift": {
      "block": "random",
      "mono": true,
      "set": {
        "rate": 0.8,
        "seed": 11
      }
    },
    "flutter": {
      "block": "lfo",
      "mono": true,
      "set": {
        "rate": 6.5
      }
    },
    "tape_drift": {
      "block": "random",
      "mono": true,
      "set": {
        "rate": 0.5,
        "seed": 23
      }
    }
  },
  "mods": {
    "wow": {
      "from": "drift",
      "target": "line.time",
      "amount": 0.0009
    },
    "flutter": {
      "from": "flutter:sine",
      "target": "line.time",
      "amount": 0.0001
    },
    "stretch": {
      "from": "tape_drift",
      "target": "line.time",
      "amount": 0
    }
  },
  "out": "mixer"
}
