{
  "format": "forge.graph/0",
  "name": "Doubler",
  "author": "Chirp",
  "license": "CC-BY-4.0",
  "remixed_from": null,
  "description": "Sounds like the part was played twice and panned apart, as studios did with automatic double tracking: a copy slightly out of tune, a few milliseconds late and drifting a little, on the other side from the original. Width spreads them apart; at zero both sit in the middle for a thick mono double.",
  "tags": ["doubler", "pitch", "detune", "stereo", "adt"],
  "face": {
    "knobs": [
      { "id": "detune", "label": "Detune", "default": 0.4,
        "controls": [ { "target": "shift.ratio", "from": 1.002, "to": 1.016, "curve": "exp" } ] },
      { "id": "delay", "label": "Delay", "default": 0.35,
        "controls": [ { "target": "late.time", "from": 0.012, "to": 0.06 } ] },
      { "id": "drift", "label": "Drift", "default": 0.4,
        "controls": [ { "target": "mods.wander", "from": 0, "to": 0.004 } ] },
      { "id": "width", "label": "Width", "default": 0.75,
        "controls": [ { "target": "dry_side.right", "from": 1, "to": 0 },
                      { "target": "copy_side.left", "from": 1, "to": 0 } ] },
      { "id": "mix", "label": "Double", "default": 0.75,
        "controls": [ { "target": "copy.amount", "from": 0, "to": 1 } ] }
    ]
  },
  "nodes": {
    "shift": { "block": "pitch", "set": { "window": 0.03 }, "in": { "x": "in" } },
    "late": { "block": "delay", "set": { "max": 0.07, "glide": 30 }, "in": { "x": "shift" } },
    "drift_src": { "block": "random", "mono": true, "set": { "rate": 0.6, "seed": 7 } },
    "copy": { "block": "gain", "in": { "x": "late" } },
    "copy_side": { "block": "sides", "in": { "x": "copy" } },
    "dry_side": { "block": "sides", "in": { "x": "in" } },
    "sum": { "block": "gain", "set": { "amount": 0.8 }, "in": { "x": ["dry_side", "copy_side"] } }
  },
  "mods": {
    "wander": { "from": "drift_src", "target": "late.time", "amount": 0 }
  },
  "out": "sum"
}
