{
  "format": "forge.graph/0",
  "name": "Shimmer Cloud",
  "author": "Chirp",
  "license": "CC-BY-4.0",
  "remixed_from": null,
  "description": "A reverb built from scratch: three diffusers smear the input, then two delays feed each other through a damping filter and a crossfeed. Shimmer blends an octave-up shifter into the loop, so each pass of the tail rises an octave into a glowing pad.",
  "tags": ["reverb", "shimmer", "ambient", "experimental"],
  "face": {
    "knobs": [
      { "id": "decay", "label": "Decay", "default": 0.55,
        "controls": [ { "target": "loop_gain.amount", "from": 0.3, "to": 0.9 } ] },
      { "id": "mix", "label": "Mix", "default": 0.35,
        "controls": [ { "target": "mixer.mix", "from": 0, "to": 1 } ] },
      { "id": "predelay", "label": "Pre-dly", "default": 0.2,
        "controls": [ { "target": "pre.time", "from": 0.001, "to": 0.15 } ] },
      { "id": "tone", "label": "Tone", "default": 0.5,
        "controls": [ { "target": "damp.cutoff", "from": 1500, "to": 9000, "curve": "exp" } ] },
      { "id": "shimmer", "label": "Shimmer", "default": 0.4,
        "controls": [ { "target": "shim_amount.v", "from": 0, "to": 0.8 } ] }
    ]
  },
  "nodes": {
    "pre": { "block": "delay", "set": { "max": 0.2, "glide": 200 }, "in": { "x": "in" } },
    "diff1": { "block": "allpass", "set": { "time": 0.0107, "g": 0.7 }, "in": { "x": "pre" } },
    "diff2": { "block": "allpass", "set": { "time": 0.0153, "g": 0.7 }, "in": { "x": "diff1" } },
    "diff3": { "block": "allpass", "set": { "time": 0.0221, "g": 0.65 }, "in": { "x": "diff2" } },

    "tank_a": { "block": "delay", "set": { "time": 0.1493, "max": 0.2 }, "in": { "x": ["diff3", "loop"] } },
    "damp": { "block": "onepole", "in": { "x": "tank_a" } },
    "tank_diff": { "block": "allpass", "set": { "time": 0.0297, "g": -0.5 }, "in": { "x": "damp" } },
    "tank_b": { "block": "delay", "set": { "time": 0.1131, "max": 0.2 }, "in": { "x": "tank_diff" } },
    "up": { "block": "pitch", "set": { "ratio": 2, "window": 0.06 }, "in": { "x": "tank_b" } },
    "shim_amount": { "block": "value", "mono": true },
    "shimmered": { "block": "formula", "set": { "expr": "mix(a, b, c)" }, "in": { "a": "tank_b", "b": "up", "c": "shim_amount" } },
    "loop_gain": { "block": "gain", "in": { "x": "shimmered" } },
    "loop": { "block": "cross", "set": { "amount": 0.35 }, "in": { "x": "loop_gain" } },

    "drift": { "block": "random", "set": { "rate": 0.5, "seed": 31 } },
    "wet": { "block": "gain", "set": { "amount": 0.7 }, "in": { "x": ["damp", "tank_b"] } },
    "mixer": { "block": "blend", "in": { "dry": "in", "wet": "wet" } }
  },
  "mods": {
    "wander": { "from": "drift", "target": "tank_a.time", "amount": 0.0006 }
  },
  "out": "mixer"
}
