{
  "format": "forge.graph/0",
  "name": "Backwards",
  "author": "Chirp",
  "license": "CC-BY-4.0",
  "remixed_from": null,
  "description": "Plays what you just played in reverse, in chunks you set with Length: swelling, sucked-in phrases like a tape flipped over. Feedback sends the reversed sound back in to be reversed again, so repeats alternate forwards and backwards.",
  "tags": ["reverse", "delay", "experimental"],
  "face": {
    "knobs": [
      { "id": "length", "label": "Length", "default": 0.5,
        "controls": [ { "target": "rev.chunk", "from": 0.15, "to": 1.0, "curve": "exp" } ] },
      { "id": "feedback", "label": "Repeats", "default": 0.3,
        "controls": [ { "target": "fb.amount", "from": 0, "to": 0.6 } ] },
      { "id": "mix", "label": "Mix", "default": 0.45,
        "controls": [ { "target": "mixer.mix", "from": 0, "to": 1 } ] },
      { "id": "tone", "label": "Tone", "default": 0.6,
        "controls": [ { "target": "tone.cutoff", "from": 1500, "to": 12000, "curve": "exp" } ] },
      { "id": "splice", "label": "Splice", "default": 0.2,
        "controls": [ { "target": "rev.sharpness", "from": 0, "to": 1 } ] }
    ]
  },
  "nodes": {
    "memory": { "block": "delay", "set": { "time": 0.01 }, "in": { "x": ["in", "fb"] } },
    "rev": { "block": "reverse", "in": { "of": "memory" } },
    "tone": { "block": "onepole", "in": { "x": "rev" } },
    "fb": { "block": "gain", "in": { "x": "tone" } },
    "mixer": { "block": "blend", "in": { "dry": "in", "wet": "tone" } }
  },
  "out": "mixer"
}
