{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "cloth-belt-2",
  "type": "registry:block",
  "title": "Cloth Belt 2",
  "author": "Kenney <https://kenney.nl>",
  "description": "A distinct, slightly longer sound of a cloth belt being handled, ideal for confirming a more significant clothing item equipped or a character animation involving a belt.",
  "files": [
    {
      "path": "registry/soundcn/sounds/cloth-belt-2/cloth-belt-2.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const clothBelt2Sound: SoundAsset = {\n  name: \"cloth-belt-2\",\n  dataUri: \"data:audio/mpeg;base64,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lxSEcBg7AZEgYlD3ozm9kQ2jsYxWzGKRGOcWl9LqpQeo6ud0ai0T7pT7d0e1dX/87i4AMKxN//kBGrFKApBgfHncNCwlc1XtZV31Y//7UsSYAg0dYx8ksbqBNivjmLE/2OPnREiuqllODwWzSYGRPfbUoxg9B0RCzTb4nWv8y8FDTlrvIvWZ+FQftcn9SyxVlzp56XMBX//T6eAAUdkcRlhEbTVLjSx5G5y3Usq0o49a1eiItnr4iWhYvpOjF5HrbWDpri5Q6z0pqttarq/U5io501WXZWJZlClI7esjtu7pt6P/7/9idqto44sa38xfVKp6xPUkB6oywntE2kmlkSHNmjYVeqf0WLUts0CsfnLOWlHZnCMhiwgXDgbo//tSxJqCDLFhFKexTcEyK+NkgI/YGFXZkPXLjrrtTfSo3DKqZAj6kh4ULpP7xKlbLWpmk73BVpFIs2SFygcddMLu5BqVYAER5HQbyLu9gZpRxSZph+whFt3Szu9W3WyU2hSYjSd3y3pt5tU135nXRDlF4M/TJGarAsn4EjUvGzftEut9ZupL2d/HH81//ty5PWP9rVP6swz77vn1+riX+9pqAFIycImhCZJGiyK4FYwUjfMubZ3b57zeV69/ns8H0Z82+aqnMW5VATUmT0J1iy7/+1LEn4NLKV0SJiBPwWUaogD0jDhselLARPBtjxAZmIfKqr2coEV7EPaauETg2w4am/srahkuhQAlKAIASAaPwQvdVMEBViFba7E6ZA4u2eZMKBDr1uqMPFMGjPGdAIMDJYKDYIAYGyo2oiKnsjWqWU8OityZH5V6yqSP3edirAlkYkeokWtXyQgBUEpgJiFhEqwKY1Y1jrSlJnIMRCQFIhMy3gUVAQuAkBV0WQFRQ14FYAmuxhEYgK+pjte5RZo8sEwy7/1J+AiQFJGlTEFNRf/7UsSkAwuAhRJHiMQJShDiiPMYADMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxKqCCiSLFMWkYIENht+IxIwQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\",\n  duration: 0.753,\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.753,
    "format": "mp3",
    "sizeKb": 6,
    "license": "CC0",
    "tags": [
      "cloth",
      "belt",
      "2"
    ],
    "keywords": [
      "significant equip",
      "character animation",
      "ui feedback",
      "cloth",
      "belt",
      "fabric",
      "game",
      "equipping",
      "adjusting",
      "tactile",
      "item",
      "gear",
      "inventory",
      "movement",
      "organic",
      "crisp",
      "detailed",
      "specific",
      "clothing",
      "confirm",
      "action",
      "distinct",
      "medium"
    ]
  },
  "categories": [
    "cloth"
  ]
}