{
  "$type": "at.atmosynth.module",
  "descriptionVersion": 1,
  "moduleId": "sampler",
  "versionKey": "1",
  "name": "Sample oscillator",
  "description": "Plays a sample as its sound source, pitched by the note against the sample’s reference pitch: a note an octave up plays it at twice the rate.",
  "audioInputs": [],
  "audioOutputs": [
    {
      "id": "out",
      "label": "Out"
    }
  ],
  "midiInputs": [
    {
      "id": "midi",
      "label": "Note"
    }
  ],
  "nodes": [
    {
      "id": "note",
      "kind": "midiInput",
      "options": {
        "midiInput": "midi"
      }
    },
    {
      "id": "source",
      "kind": "audioBufferSource",
      "options": {
        "loop": false,
        "referencePitch": 60
      }
    },
    {
      "id": "out",
      "kind": "moduleOutput",
      "options": {
        "output": "out"
      }
    }
  ],
  "connections": [
    {
      "from": {
        "node": "source",
        "output": 0
      },
      "to": {
        "node": "out",
        "input": 0
      }
    }
  ],
  "automation": [],
  "parameters": [
    {
      "id": "referencePitch",
      "label": "Reference pitch (MIDI note)",
      "range": {
        "min": "0",
        "max": "127"
      },
      "default": "60",
      "targets": [
        {
          "node": "source",
          "option": "referencePitch"
        }
      ]
    },
    {
      "id": "loop",
      "label": "Loop",
      "values": [
        "off",
        "on"
      ],
      "default": "off",
      "targets": [
        {
          "node": "source",
          "option": "loop"
        }
      ]
    },
    {
      "id": "detune",
      "label": "Detune (cents)",
      "range": {
        "min": "-1200",
        "max": "1200"
      },
      "default": "0",
      "targets": [
        {
          "node": "source",
          "param": "detune"
        }
      ]
    }
  ],
  "sampleSlots": [
    {
      "id": "sample",
      "label": "Sample",
      "node": "source",
      "property": "buffer"
    }
  ],
  "createdAt": "2026-08-28T00:00:00.000Z"
}