{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orc-female-youre-welcome-03",
  "type": "registry:block",
  "title": "Orc Female Youre Welcome 03",
  "author": "Kenney <https://kenney.nl>",
  "description": "Orc Female Youre Welcome 03 sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/orc-female-youre-welcome-03/orc-female-youre-welcome-03.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const orcFemaleYoureWelcome03Sound: SoundAsset = {\n  name: \"orc-female-youre-welcome-03\",\n  dataUri: \"data:audio/mpeg;base64,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chBl5CiRIrJiUdkF//tSxF6ACiBnJywwR8lDEKSlh4w5GVxirkAu4gC0zkB2HVUsUxVBZBhRIcimpUndHlQn9Zz5fD+ZczpTyvSrGUeKZCz3jT+nw3S95Ep6kpXtOlCdixVfMbPA0GfKCEkKf6uWMVKxvAqb1hBOQ3qzXKSNdVpScdU+Nbmi844mkWplJGzNNIQ6qVkMldL59HImrYVesi4ZoAcwBsG2iEw9RS18dBP24eMiqpKIICbFQukvbCAQRsiBoU2c3/HORk6zQLVz23M2SNB3UmXJSqw8San/+1LEa4LKNPcgzKRjiSkfY+GUjHjVtrxQeeYj8aXCuTsPCrrdCqIED5RMaGko6sSOoZuMxWSWqQkjjteKdI1kYTpuhhafkRs3NqFQZ97QrHK9GHKLOOCjsydeKNlhjLLG/uDIsP9y/l6LigJcaIA5BEY2EpK0ajNZv6jMnn6pxyuaMZUqYUFVGyCnSlqGjA6jrHmSkGF/wcS4lvhZ/CjGX9COo6xzEssJQQMgv4UvBZyhn1BVVgBAyWyCBOFEhnVRIBHVnRNXlnnt55i6lcjVbP/7UsR7gglhCxgnpGEJFZHjGZSMAYrO/+oKBqsad5bkg3nvlf/4KncVBUNcFQV6wVpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tSxJEACV0ZCgwwYIDageEoIQwAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+1LEoYPAAAGkAAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==\",\n  duration: 0.837,\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.837,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "orc",
      "female",
      "youre",
      "welcome",
      "03"
    ]
  },
  "categories": [
    "warcraft",
    "voice"
  ]
}