{
  "$type": "at.atmosynth.module",
  "descriptionVersion": 1,
  "moduleId": "lfo",
  "versionKey": "1",
  "name": "LFO",
  "description": "A slow wave that moves something else rather than being heard itself. Patch its output into another module's modulation input — an oscillator's Detune, say — and that input rises and falls at the rate set here. How far it moves is set where it arrives. Its own rate is a modulation input too, so a second LFO patched into Rate speeds this one up and slows it down; how far, Rate amount sets.",
  "audioInputs": [
    {
      "id": "rate",
      "label": "Rate"
    }
  ],
  "audioOutputs": [
    {
      "id": "out",
      "label": "Out"
    }
  ],
  "midiInputs": [],
  "nodes": [
    {
      "id": "osc",
      "kind": "oscillator",
      "options": {
        "type": "sine"
      }
    },
    {
      "id": "out",
      "kind": "moduleOutput",
      "options": {
        "output": "out"
      }
    },
    {
      "id": "ratein",
      "kind": "moduleInput",
      "options": {
        "input": "rate"
      }
    },
    {
      "id": "ratedepth",
      "kind": "gain"
    }
  ],
  "connections": [
    {
      "from": {
        "node": "osc",
        "output": 0
      },
      "to": {
        "node": "out",
        "input": 0
      }
    },
    {
      "from": {
        "node": "ratein",
        "output": 0
      },
      "to": {
        "node": "ratedepth",
        "input": 0
      }
    },
    {
      "from": {
        "node": "ratedepth",
        "output": 0
      },
      "to": {
        "node": "osc",
        "param": "frequency"
      }
    }
  ],
  "automation": [],
  "parameters": [
    {
      "id": "rate",
      "label": "Rate (Hz)",
      "range": {
        "min": "0.01",
        "max": "40"
      },
      "default": "2",
      "targets": [
        {
          "node": "osc",
          "param": "frequency"
        }
      ]
    },
    {
      "id": "rateAmount",
      "label": "Rate amount (Hz)",
      "range": {
        "min": "0",
        "max": "20"
      },
      "default": "1",
      "targets": [
        {
          "node": "ratedepth",
          "param": "gain"
        }
      ]
    },
    {
      "id": "shape",
      "label": "Shape",
      "values": [
        "sine",
        "triangle",
        "sawtooth",
        "square"
      ],
      "default": "sine",
      "targets": [
        {
          "node": "osc",
          "option": "type"
        }
      ]
    }
  ],
  "sampleSlots": [],
  "createdAt": "2026-08-29T00:00:00.000Z"
}