{
  "format": "forge.graph/0",
  "name": "Sync Wah",
  "author": "Chirp",
  "license": "CC-BY-4.0",
  "remixed_from": null,
  "description": "An auto-wah that rocks in time with the song: a resonant band-pass filter swept by a note-value LFO. Smooth rocks back and forth like a foot on a wah; Up and Down sweep once per note, for a funky quack or a backwards whoosh.",
  "tags": ["wah", "filter", "modulation", "tempo"],
  "face": {
    "display": { "kind": "trace", "label": "Sweep", "source": "shape", "range": [-1, 1] },
    "knobs": [
      { "id": "range", "label": "Range", "default": 0.7,
        "controls": [ { "target": "mods.sweep", "from": 200, "to": 900 } ] },
      { "id": "peak", "label": "Peak", "default": 0.5,
        "controls": [ { "target": "wah.q", "from": 1.5, "to": 8, "curve": "exp" } ] },
      { "id": "mix", "label": "Mix", "default": 0.85,
        "controls": [ { "target": "mixer.mix", "from": 0, "to": 1 } ] },
      { "id": "level", "label": "Level", "default": 0.5,
        "controls": [ { "target": "level.amount", "from": 0.5, "to": 1.5 } ] }
    ],
    "menus": [
      { "id": "division", "label": "Division", "options": ["1/2", "1/4", "1/8", "1/16"], "default": 1,
        "controls": [ { "target": "rock.rate", "unit": "per_beat", "values": [0.5, 1, 2, 4] },
                      { "target": "steps.rate", "unit": "per_beat", "values": [0.5, 1, 2, 4] } ] },
      { "id": "shape", "label": "Shape", "options": ["Smooth", "Up", "Down"], "default": 0,
        "controls": [ { "target": "shape.choice" } ] }
    ]
  },
  "nodes": {
    "rock": { "block": "lfo", "mono": true },
    "steps": { "block": "rhythm", "mono": true, "set": { "steps": 1, "pattern": 1 } },
    "up": { "block": "formula", "mono": true, "set": { "expr": "a * 2 - 1" }, "in": { "a": "steps:ramp" } },
    "down": { "block": "formula", "mono": true, "set": { "expr": "1 - a * 2" }, "in": { "a": "steps:ramp" } },
    "shape": { "block": "select", "mono": true, "in": { "a": "rock:sine", "b": "up", "c": "down" } },
    "wah": { "block": "svf", "set": { "freq": 1100 }, "in": { "x": "in" } },
    "mixer": { "block": "blend", "in": { "dry": "in", "wet": "wah:bp" } },
    "level": { "block": "gain", "in": { "x": "mixer" } }
  },
  "mods": {
    "sweep": { "from": "shape", "target": "wah.freq", "amount": 0 }
  },
  "out": "level"
}
