{
  "metadata": {
    "name": "Deep Bass",
    "description": "Thick sub bass with sawtooth oscillator (polyphonic)",
    "author": "Lightningbeam",
    "version": 2,
    "tags": ["bass", "sub", "synth"]
  },
  "midi_targets": [0],
  "output_node": 2,
  "nodes": [
    {
      "id": 0,
      "node_type": "MidiInput",
      "name": "MIDI In",
      "parameters": {},
      "position": [100.0, 150.0]
    },
    {
      "id": 1,
      "node_type": "VoiceAllocator",
      "name": "Voice Allocator",
      "parameters": {
        "0": 8.0
      },
      "position": [400.0, 150.0],
      "template_graph": {
        "metadata": {
          "name": "Voice Template",
          "description": "Per-voice synth patch",
          "author": "Lightningbeam",
          "version": 1,
          "tags": []
        },
        "midi_targets": [0],
        "output_node": 6,
        "nodes": [
          {
            "id": 0,
            "node_type": "TemplateInput",
            "name": "Template Input",
            "parameters": {},
            "position": [-200.0, 0.0]
          },
          {
            "id": 1,
            "node_type": "MidiToCV",
            "name": "MIDI→CV",
            "parameters": {},
            "position": [100.0, 0.0]
          },
          {
            "id": 2,
            "node_type": "Oscillator",
            "name": "Osc",
            "parameters": {
              "0": 110.0,
              "1": 0.7,
              "2": 1.0
            },
            "position": [400.0, -100.0]
          },
          {
            "id": 3,
            "node_type": "ADSR",
            "name": "Amp Env",
            "parameters": {
              "0": 0.005,
              "1": 0.2,
              "2": 0.8,
              "3": 0.3
            },
            "position": [400.0, 200.0]
          },
          {
            "id": 4,
            "node_type": "Gain",
            "name": "VCA",
            "parameters": {
              "0": 1.0
            },
            "position": [700.0, 0.0]
          },
          {
            "id": 5,
            "node_type": "Filter",
            "name": "LP Filter",
            "parameters": {
              "0": 800.0,
              "1": 1.5,
              "2": 0.0
            },
            "position": [900.0, 0.0]
          },
          {
            "id": 6,
            "node_type": "TemplateOutput",
            "name": "Template Output",
            "parameters": {},
            "position": [1100.0, 0.0]
          }
        ],
        "connections": [
          { "from_node": 0, "from_port": 0, "to_node": 1, "to_port": 0 },
          { "from_node": 1, "from_port": 0, "to_node": 2, "to_port": 0 },
          { "from_node": 1, "from_port": 1, "to_node": 3, "to_port": 0 },
          { "from_node": 2, "from_port": 0, "to_node": 4, "to_port": 0 },
          { "from_node": 3, "from_port": 0, "to_node": 4, "to_port": 1 },
          { "from_node": 4, "from_port": 0, "to_node": 5, "to_port": 0 },
          { "from_node": 5, "from_port": 0, "to_node": 6, "to_port": 0 }
        ]
      }
    },
    {
      "id": 2,
      "node_type": "AudioOutput",
      "name": "Out",
      "parameters": {},
      "position": [700.0, 150.0]
    }
  ],
  "connections": [
    { "from_node": 0, "from_port": 0, "to_node": 1, "to_port": 0 },
    { "from_node": 1, "from_port": 0, "to_node": 2, "to_port": 0 }
  ]
}
