{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "audiocn-solid",
  "homepage": "https://github.com/jhomra21/audiocn-solid",
  "items": [
    {
      "name": "core",
      "type": "registry:lib",
      "title": "Audio core",
      "description": "Framework-neutral audio primitives plus the Solid compatibility helpers used by the installable components.",
      "dependencies": [
        "solid-js@^1.9.15",
        "cn"
      ],
      "files": [
        {
          "path": "lib/audio/types.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/decibels.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/ballistics.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/zones.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/taper.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/bands.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/bar-levels.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/wave-line.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/time.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/frame-loop.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/frame-source.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/history.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/history-playback.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audio/click.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/accessor.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/context.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/props.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/ref.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/style.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/jsx-types.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/utils.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/number.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ],
      "cssVars": {
        "theme": {
          "color-meter-ok": "var(--meter-ok)",
          "color-meter-warn": "var(--meter-warn)",
          "color-meter-clip": "var(--meter-clip)",
          "color-channel-mute": "var(--channel-mute)",
          "color-channel-solo": "var(--channel-solo)",
          "color-channel-monitor": "var(--channel-monitor)",
          "color-meter-ok-foreground": "var(--meter-ok-foreground)",
          "color-meter-warn-foreground": "var(--meter-warn-foreground)",
          "color-meter-clip-foreground": "var(--meter-clip-foreground)",
          "color-channel-mute-foreground": "var(--channel-mute-foreground)",
          "color-channel-solo-foreground": "var(--channel-solo-foreground)",
          "color-channel-monitor-foreground": "var(--channel-monitor-foreground)"
        },
        "light": {
          "meter-ok": "oklch(0.696 0.17 162.48)",
          "meter-warn": "oklch(0.795 0.184 86.047)",
          "meter-clip": "var(--destructive)",
          "channel-mute": "var(--destructive)",
          "channel-solo": "oklch(0.795 0.184 86.047)",
          "channel-monitor": "oklch(0.623 0.214 259.815)",
          "meter-ok-foreground": "color-mix(in oklch, var(--meter-ok), black 40%)",
          "meter-warn-foreground": "color-mix(in oklch, var(--meter-warn), black 40%)",
          "meter-clip-foreground": "color-mix(in oklch, var(--meter-clip), black 40%)",
          "channel-mute-foreground": "color-mix(in oklch, var(--channel-mute), black 40%)",
          "channel-solo-foreground": "color-mix(in oklch, var(--channel-solo), black 40%)",
          "channel-monitor-foreground": "color-mix(in oklch, var(--channel-monitor), black 40%)"
        },
        "dark": {
          "meter-ok": "oklch(0.765 0.177 163.223)",
          "meter-warn": "oklch(0.852 0.199 91.936)",
          "meter-clip": "var(--destructive)",
          "channel-mute": "var(--destructive)",
          "channel-solo": "oklch(0.852 0.199 91.936)",
          "channel-monitor": "oklch(0.707 0.165 254.624)",
          "meter-ok-foreground": "var(--meter-ok)",
          "meter-warn-foreground": "var(--meter-warn)",
          "meter-clip-foreground": "var(--meter-clip)",
          "channel-mute-foreground": "var(--channel-mute)",
          "channel-solo-foreground": "var(--channel-solo)",
          "channel-monitor-foreground": "var(--channel-monitor)"
        }
      }
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Solid button primitive using the same base-rhea styling as the site.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority",
        "cn"
      ],
      "files": [
        {
          "path": "components/ui/button.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/solid/jsx-types.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/props.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/ref.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/utils.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-frame-source",
      "type": "registry:hook",
      "title": "useFrameSource",
      "description": "Subscribe to a frame source with automatic Solid lifecycle cleanup.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-frame-source.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-clip-hold",
      "type": "registry:hook",
      "title": "useClipHold",
      "description": "Clip detection with hold time, count, and reset.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-clip-hold.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-reduced-motion",
      "type": "registry:hook",
      "title": "useReducedMotion",
      "description": "Tracks the operating system reduced-motion preference.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "files": [
        {
          "path": "hooks/use-reduced-motion.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-visibility",
      "type": "registry:hook",
      "title": "useVisibility",
      "description": "Tracks whether an element intersects the viewport.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "files": [
        {
          "path": "hooks/use-visibility.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-demo-signal",
      "type": "registry:hook",
      "title": "useDemoSignal",
      "description": "Synthetic speech, music, tone, or noise frame sources for demos and tests.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-demo-signal.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-audio-context",
      "type": "registry:hook",
      "title": "useAudioContext",
      "description": "A shared AudioContext with a provider for supplying an existing context.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "files": [
        {
          "path": "hooks/use-audio-context.tsx",
          "type": "registry:hook"
        },
        {
          "path": "lib/solid/context.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/solid/jsx-types.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-audio-analyser",
      "type": "registry:hook",
      "title": "useAudioAnalyser",
      "description": "Meter and visual frame sources backed by Web Audio AnalyserNode.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-context"
      ],
      "files": [
        {
          "path": "hooks/use-audio-analyser.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-microphone",
      "type": "registry:hook",
      "title": "useMicrophone",
      "description": "Open a microphone MediaStream with browser processing disabled by default.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "files": [
        {
          "path": "hooks/use-microphone.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/solid/effect.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-audio-config",
      "type": "registry:hook",
      "title": "useAudioConfig",
      "description": "Shared meter and control configuration context.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-audio-config.tsx",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "db-scale",
      "type": "registry:ui",
      "title": "dB Scale",
      "description": "Tick marks and labels for a decibel range.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config"
      ],
      "files": [
        {
          "path": "components/ui/db-scale.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "db-readout",
      "type": "registry:ui",
      "title": "dB Readout",
      "description": "A stable-width numeric level readout.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source"
      ],
      "files": [
        {
          "path": "components/ui/db-readout.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "clip-indicator",
      "type": "registry:ui",
      "title": "Clip Indicator",
      "description": "A clip light with hold, count, and reset behavior.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-clip-hold",
        "@audiocn-solid/use-frame-source"
      ],
      "files": [
        {
          "path": "components/ui/clip-indicator.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "level-meter",
      "type": "registry:ui",
      "title": "Level Meter",
      "description": "Composable peak and RMS level meter with stereo, hold, scale, readout, and clip indication.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/db-scale",
        "@audiocn-solid/db-readout",
        "@audiocn-solid/clip-indicator",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/level-meter.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "fader",
      "type": "registry:ui",
      "title": "Fader",
      "description": "A composable decibel fader with tapering, detents, keyboard stepping, reset, editable values, and optional wheel control.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/db-scale"
      ],
      "files": [
        {
          "path": "components/ui/fader.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/solid/kobalte-slider.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "parameter-slider",
      "type": "registry:ui",
      "title": "Parameter Slider",
      "description": "A labelled parameter slider with a numeric input, units, marks, reset, linear or log scaling, and unit scrubbing.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config"
      ],
      "files": [
        {
          "path": "components/ui/parameter-slider.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/solid/kobalte-slider.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "knob",
      "type": "registry:ui",
      "title": "Knob",
      "description": "A composable rotary parameter control with linear or circular dragging, keyboard and wheel input, editable values, scales, metal caps, and optional detent clicks.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/use-audio-context"
      ],
      "files": [
        {
          "path": "components/ui/knob.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "lcd-display",
      "type": "registry:ui",
      "title": "LCD Display",
      "description": "A themeable dot-matrix screen in a bezel, backlit in light themes and glowing in dark themes, with dropdown rows.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/select"
      ],
      "files": [
        {
          "path": "components/ui/lcd-display.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "pan-control",
      "type": "registry:ui",
      "title": "Pan Control",
      "description": "A left/right pan slider with a center fill, center detent, keyboard controls, accessible pan text, and double-click reset.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config"
      ],
      "files": [
        {
          "path": "components/ui/pan-control.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/solid/kobalte-slider.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "channel-toggle",
      "type": "registry:ui",
      "title": "Channel Toggle",
      "description": "Audio channel toggle buttons with neutral, mute, solo, and monitor tones plus inherited disabled state.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config"
      ],
      "files": [
        {
          "path": "components/ui/channel-toggle.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "volume-control",
      "type": "registry:ui",
      "title": "Volume Control",
      "description": "A composable volume control with mute restore, perceptual or linear curves, horizontal and vertical sliders, and accessible level text.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config"
      ],
      "files": [
        {
          "path": "components/ui/volume-control.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/solid/kobalte-slider.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "A compact status badge with default, secondary, destructive, outline, ghost, and link variants.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/badge.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "channel-strip",
      "type": "registry:ui",
      "title": "Channel Strip",
      "description": "A composable horizontal or console-style channel strip with shared audio config, status parts, responsive layout, and clipping reflection.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/badge"
      ],
      "files": [
        {
          "path": "components/ui/channel-strip.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "mixer",
      "type": "registry:ui",
      "title": "Mixer",
      "description": "A horizontal or console-style mixer layout with shared audio configuration, empty state, master area, and keyboard focus navigation between channel controls.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/channel-strip"
      ],
      "files": [
        {
          "path": "components/ui/mixer.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Accessible popover with focus restoration and outside dismissal.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/button"
      ],
      "files": [
        {
          "path": "components/ui/popover.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "bar-visualizer",
      "type": "registry:ui",
      "title": "Bar Visualizer",
      "description": "Frequency-band bars with idle, loading and mirrored modes.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/bar-visualizer.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "smooth-waveform",
      "type": "registry:ui",
      "title": "Smooth Waveform",
      "description": "A smooth frequency-band wave or oscilloscope trace.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/smooth-waveform.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "live-waveform",
      "type": "registry:ui",
      "title": "Live Waveform",
      "description": "Live signal canvas with scrolling history, bars, mirrors and lines.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/live-waveform.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "electric",
      "type": "registry:lib",
      "title": "Electric drawing",
      "description": "Shared electric canvas colors, sparks and geometry.",
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "lib/electric.ts",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ],
      "dependencies": []
    },
    {
      "name": "electric-bar-visualizer",
      "type": "registry:ui",
      "title": "Electric Bar Visualizer",
      "description": "Frequency-band bars drawn as crackling filaments.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/electric",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/electric-bar-visualizer.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "electric-waveform",
      "type": "registry:ui",
      "title": "Electric Waveform",
      "description": "An electric wave or oscilloscope trace with forks and sparks.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/electric",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/electric-waveform.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "spectrum",
      "type": "registry:ui",
      "title": "Spectrum",
      "description": "A frequency spectrum analyser with axes, grid and peak hold.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-reduced-motion",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/spectrum.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "waveform",
      "type": "registry:ui",
      "title": "Waveform",
      "description": "A clip waveform with seeking, hover, regions and markers.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-visibility"
      ],
      "files": [
        {
          "path": "components/ui/waveform.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "track-list",
      "type": "registry:ui",
      "title": "Track List",
      "description": "Track rows with active, playing and disabled states.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/track-list.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Keyboard shortcut",
      "description": "Keyboard shortcut labels and groups.",
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/kbd.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ],
      "dependencies": []
    },
    {
      "name": "sound-pad",
      "type": "registry:ui",
      "title": "Sound Pad",
      "description": "Sound triggers with modes, hotkeys and progress.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/kbd",
        "@audiocn-solid/use-frame-source"
      ],
      "files": [
        {
          "path": "components/ui/sound-pad.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-audio-player",
      "type": "registry:hook",
      "title": "useAudioPlayer",
      "description": "Owned media playback with reactive controls and smooth time frames.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-audio-player.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-sound",
      "type": "registry:hook",
      "title": "useSound",
      "description": "Cached decoding and low-latency short sound playback.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-context",
        "@audiocn-solid/use-gain-node"
      ],
      "files": [
        {
          "path": "hooks/use-sound.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-waveform-data",
      "type": "registry:hook",
      "title": "useWaveformData",
      "description": "Decode files or audio buffers into cached waveform peaks.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-context",
        "@audiocn-solid/use-sound"
      ],
      "files": [
        {
          "path": "hooks/use-waveform-data.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-web-audio-mixer",
      "type": "registry:hook",
      "title": "useWebAudioMixer",
      "description": "Mixer graph with gain, pan, monitoring, limiting and ducking.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-context",
        "@audiocn-solid/use-audio-analyser",
        "@audiocn-solid/use-mixer"
      ],
      "files": [
        {
          "path": "hooks/use-web-audio-mixer.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-level",
      "type": "registry:hook",
      "title": "useLevel",
      "description": "Samples a meter source for reactive level labels.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-frame-source"
      ],
      "files": [
        {
          "path": "hooks/use-level.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-gain-node",
      "type": "registry:hook",
      "title": "useGainNode",
      "description": "Stable gain routing with click-free changes and connection cleanup.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-context"
      ],
      "files": [
        {
          "path": "hooks/use-gain-node.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-audio-devices",
      "type": "registry:hook",
      "title": "useAudioDevices",
      "description": "Audio devices and permission state with live updates.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-audio-devices.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-system-audio",
      "type": "registry:hook",
      "title": "useSystemAudio",
      "description": "Capture system or tab audio with cancellation and track cleanup.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-system-audio.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-mixer",
      "type": "registry:hook",
      "title": "useMixer",
      "description": "Mixer state controller for channel gain, mute, solo, pan, monitoring, master controls, audibility, dynamic channels, reset, controlled state, and optional localStorage persistence.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-mixer.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "Accessible selection with Kobalte keyboard navigation.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/select.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "audio-device-select",
      "type": "registry:ui",
      "title": "Audio Device Select",
      "description": "Audio device picker with permission, loading and disconnected states.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/button",
        "@audiocn-solid/select"
      ],
      "files": [
        {
          "path": "components/ui/audio-device-select.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "audio-player",
      "type": "registry:ui",
      "title": "Audio Player",
      "description": "Composable transport, seeking, time, volume, rate and loop controls.",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/volume-control",
        "@audiocn-solid/use-audio-player",
        "@audiocn-solid/use-frame-source"
      ],
      "files": [
        {
          "path": "components/ui/audio-player.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/card.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/alert.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/empty.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/label.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/separator.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/switch.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/toggle.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/label",
        "@audiocn-solid/separator"
      ],
      "files": [
        {
          "path": "components/ui/field.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "kobalte-dom-collection",
      "type": "registry:lib",
      "title": "Kobalte Dom Collection",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "lib/solid/kobalte-dom-collection.tsx",
          "type": "registry:lib"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "context-menu",
      "type": "registry:ui",
      "title": "Context Menu",
      "dependencies": [
        "solid-js@^1.9.15",
        "@kobalte/core@https://github.com/jhomra21/kobalte/releases/download/kobalte-solid1-audiocn-e0e3bf095f05c7e61230a251b79181c6d834d408/kobalte-core-0.13.14-audiocn.0.e0e3bf09.tgz"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/kobalte-dom-collection"
      ],
      "files": [
        {
          "path": "components/ui/context-menu.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "components/ui/tabs.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "music-player",
      "type": "registry:block",
      "title": "Music Player",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/audio-player",
        "@audiocn-solid/waveform",
        "@audiocn-solid/track-list",
        "@audiocn-solid/card",
        "@audiocn-solid/empty",
        "@audiocn-solid/label",
        "@audiocn-solid/parameter-slider",
        "@audiocn-solid/switch",
        "@audiocn-solid/toggle",
        "@audiocn-solid/volume-control",
        "@audiocn-solid/use-audio-analyser",
        "@audiocn-solid/use-audio-context",
        "@audiocn-solid/use-audio-player",
        "@audiocn-solid/use-frame-source",
        "@audiocn-solid/use-waveform-data"
      ],
      "files": [
        {
          "path": "components/blocks/music-player/music-player.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "soundboard",
      "type": "registry:block",
      "title": "Soundboard",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/alert",
        "@audiocn-solid/button",
        "@audiocn-solid/context-menu",
        "@audiocn-solid/empty",
        "@audiocn-solid/label",
        "@audiocn-solid/sound-pad",
        "@audiocn-solid/switch",
        "@audiocn-solid/volume-control",
        "@audiocn-solid/use-gain-node",
        "@audiocn-solid/use-sound"
      ],
      "files": [
        {
          "path": "components/blocks/soundboard/soundboard.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "mic-setup",
      "type": "registry:block",
      "title": "Mic Setup",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/alert",
        "@audiocn-solid/audio-device-select",
        "@audiocn-solid/button",
        "@audiocn-solid/card",
        "@audiocn-solid/db-readout",
        "@audiocn-solid/field",
        "@audiocn-solid/level-meter",
        "@audiocn-solid/live-waveform",
        "@audiocn-solid/parameter-slider",
        "@audiocn-solid/switch",
        "@audiocn-solid/use-audio-analyser",
        "@audiocn-solid/use-audio-devices",
        "@audiocn-solid/use-gain-node",
        "@audiocn-solid/use-microphone"
      ],
      "files": [
        {
          "path": "components/blocks/mic-setup/mic-setup.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "system-audio-settings",
      "type": "registry:block",
      "title": "System Audio Settings",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/alert",
        "@audiocn-solid/badge",
        "@audiocn-solid/card",
        "@audiocn-solid/field",
        "@audiocn-solid/level-meter",
        "@audiocn-solid/parameter-slider",
        "@audiocn-solid/switch",
        "@audiocn-solid/use-audio-analyser",
        "@audiocn-solid/use-audio-context",
        "@audiocn-solid/use-gain-node",
        "@audiocn-solid/use-system-audio"
      ],
      "files": [
        {
          "path": "components/blocks/system-audio-settings/system-audio-settings.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "quick-audio-popover",
      "type": "registry:block",
      "title": "Quick Audio Popover",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/audio-device-select",
        "@audiocn-solid/bar-visualizer",
        "@audiocn-solid/button",
        "@audiocn-solid/field",
        "@audiocn-solid/popover",
        "@audiocn-solid/separator",
        "@audiocn-solid/switch",
        "@audiocn-solid/use-audio-analyser",
        "@audiocn-solid/use-audio-devices",
        "@audiocn-solid/use-microphone",
        "@audiocn-solid/use-system-audio"
      ],
      "files": [
        {
          "path": "components/blocks/quick-audio-popover/quick-audio-popover.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "system-audio-mixer",
      "type": "registry:block",
      "title": "System Audio Mixer",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/audio-device-select",
        "@audiocn-solid/button",
        "@audiocn-solid/channel-strip",
        "@audiocn-solid/channel-toggle",
        "@audiocn-solid/fader",
        "@audiocn-solid/level-meter",
        "@audiocn-solid/mixer",
        "@audiocn-solid/popover",
        "@audiocn-solid/sound-pad",
        "@audiocn-solid/switch",
        "@audiocn-solid/tabs",
        "@audiocn-solid/use-audio-devices",
        "@audiocn-solid/use-audio-player",
        "@audiocn-solid/use-gain-node",
        "@audiocn-solid/use-microphone",
        "@audiocn-solid/use-mixer",
        "@audiocn-solid/use-sound",
        "@audiocn-solid/use-system-audio",
        "@audiocn-solid/use-web-audio-mixer"
      ],
      "files": [
        {
          "path": "components/blocks/system-audio-mixer/system-audio-mixer.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/blocks/system-audio-mixer/mixer-source-strip.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/blocks/system-audio-mixer/mixer-master-strip.tsx",
          "type": "registry:block"
        },
        {
          "path": "components/icons/phosphor.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "lcd-meter",
      "type": "registry:ui",
      "title": "LCD Meter",
      "description": "Recorder-style segmented level meter for an LCD display.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/level-meter",
        "@audiocn-solid/lcd-display"
      ],
      "files": [
        {
          "path": "components/ui/lcd-meter.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "tempo-control",
      "type": "registry:ui",
      "title": "Tempo Control",
      "description": "Editable BPM control with tap tempo.",
      "dependencies": [
        "solid-js@^1.9.15",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@audiocn-solid/core",
        "@audiocn-solid/use-audio-config",
        "@audiocn-solid/use-tap-tempo"
      ],
      "files": [
        {
          "path": "components/ui/tempo-control.tsx",
          "type": "registry:ui"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    },
    {
      "name": "use-tap-tempo",
      "type": "registry:hook",
      "title": "useTapTempo",
      "description": "Tap tempo with rolling average and idle reset.",
      "dependencies": [
        "solid-js@^1.9.15"
      ],
      "registryDependencies": [
        "@audiocn-solid/core"
      ],
      "files": [
        {
          "path": "hooks/use-tap-tempo.ts",
          "type": "registry:hook"
        },
        {
          "path": "lib/audiocn-license.txt",
          "type": "registry:file",
          "target": "@lib/audiocn-license.txt"
        }
      ]
    }
  ]
}
