{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "metal-pot-2",
  "type": "registry:block",
  "title": "Metal Pot 2",
  "author": "Kenney <https://kenney.nl>",
  "description": "A slightly shorter, resonant metal pot sound, good for a lighter impact or item interaction in a game or interactive application.",
  "files": [
    {
      "path": "registry/soundcn/sounds/metal-pot-2/metal-pot-2.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const metalPot2Sound: SoundAsset = {\n  name: \"metal-pot-2\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.938,\n  format: \"mp3\",\n  license: \"CC0\",\n  author: \"Kenney\",\n};\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-types.ts",
      "content": "export interface SoundAsset {\r\n  /** Unique identifier for the sound */\r\n  name: string;\r\n  /** Base64-encoded data URI (data:audio/mpeg;base64,...) */\r\n  dataUri: string;\r\n  /** Duration in seconds */\r\n  duration: number;\r\n  /** Audio format */\r\n  format: \"mp3\" | \"wav\" | \"ogg\";\r\n  /** License identifier */\r\n  license: \"CC0\" | \"OGA-BY\" | \"MIT\";\r\n  /** Original author/creator */\r\n  author: string;\r\n}\r\n\r\nexport interface UseSoundOptions {\r\n  /** Volume level from 0 to 1. Default: 1 */\r\n  volume?: number;\r\n  /** Playback speed multiplier. Default: 1 */\r\n  playbackRate?: number;\r\n  /** If true, calling play() stops current playback first. Default: false */\r\n  interrupt?: boolean;\r\n  /** If false, play() does nothing. Useful for user preferences. Default: true */\r\n  soundEnabled?: boolean;\r\n  /** Called when playback starts */\r\n  onPlay?: () => void;\r\n  /** Called when playback ends naturally */\r\n  onEnd?: () => void;\r\n  /** Called when pause() is called */\r\n  onPause?: () => void;\r\n  /** Called when stop() is called */\r\n  onStop?: () => void;\r\n}\r\n\r\nexport type PlayFunction = (overrides?: {\r\n  volume?: number;\r\n  playbackRate?: number;\r\n}) => void;\r\n\r\nexport interface SoundControls {\r\n  stop: () => void;\r\n  pause: () => void;\r\n  isPlaying: boolean;\r\n  duration: number | null;\r\n  sound: SoundAsset;\r\n}\r\n\r\nexport type UseSoundReturn = readonly [PlayFunction, SoundControls];\r\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-engine.ts",
      "content": "let audioContext: AudioContext | null = null;\nconst bufferCache = new Map<string, AudioBuffer>();\n\nexport function getAudioContext(): AudioContext {\n  if (!audioContext) {\n    audioContext = new AudioContext();\n  }\n  return audioContext;\n}\n\nexport async function decodeAudioData(dataUri: string): Promise<AudioBuffer> {\n  const cached = bufferCache.get(dataUri);\n  if (cached) return cached;\n\n  const ctx = getAudioContext();\n  const base64 = dataUri.split(\",\")[1];\n  const binaryString = atob(base64);\n  const bytes = new Uint8Array(binaryString.length);\n  for (let i = 0; i < binaryString.length; i++) {\n    bytes[i] = binaryString.charCodeAt(i);\n  }\n\n  const audioBuffer = await ctx.decodeAudioData(bytes.buffer.slice(0));\n  bufferCache.set(dataUri, audioBuffer);\n  return audioBuffer;\n}\n\nexport interface PlaySoundOptions {\n  volume?: number;\n  playbackRate?: number;\n  onEnd?: () => void;\n}\n\nexport interface SoundPlayback {\n  stop: () => void;\n}\n\nexport async function playSound(\n  dataUri: string,\n  options: PlaySoundOptions = {}\n): Promise<SoundPlayback> {\n  const { volume = 1, playbackRate = 1, onEnd } = options;\n  const ctx = getAudioContext();\n  if (ctx.state === \"suspended\") {\n    await ctx.resume();\n  }\n\n  const buffer = await decodeAudioData(dataUri);\n  const source = ctx.createBufferSource();\n  const gain = ctx.createGain();\n\n  source.buffer = buffer;\n  source.playbackRate.value = playbackRate;\n  gain.gain.value = volume;\n\n  source.connect(gain);\n  gain.connect(ctx.destination);\n\n  source.onended = () => {\n    onEnd?.();\n  };\n\n  source.start(0);\n\n  return {\n    stop: () => {\n      try {\n        source.stop();\n      } catch {\n        // No-op if already stopped.\n      }\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ],
  "meta": {
    "duration": 0.938,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "metal",
      "pot",
      "2"
    ],
    "keywords": [
      "metal",
      "pot",
      "clang",
      "resonant",
      "impact",
      "game ui",
      "item drop",
      "collection",
      "collision",
      "ui feedback",
      "distinct",
      "percussive",
      "humorous",
      "cartoon",
      "crash",
      "medium",
      "object interaction",
      "deep",
      "medium duration"
    ]
  },
  "categories": [
    "metal"
  ]
}