{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orc-female-youre-welcome-01",
  "type": "registry:block",
  "title": "Orc Female Youre Welcome 01",
  "author": "Kenney <https://kenney.nl>",
  "description": "Orc Female Youre Welcome 01 sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/orc-female-youre-welcome-01/orc-female-youre-welcome-01.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const orcFemaleYoureWelcome01Sound: SoundAsset = {\n  name: \"orc-female-youre-welcome-01\",\n  dataUri: \"data:audio/mpeg;base64,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psPYfIX/ssB2h5omb1twepsnRSBBZuoWo/aoCeRw7fQBjTAAUEYAHqDSl8pypsuox6dl7WHizmIg2COUjDFjCAoaMVVfxmEES6A2tP/7UsSnAAwZGzWsvQPJiJ5mdZSOKdb5TnVFqexBnys+B2gmgy97o/k4bGI7Um38QY3DO+fg8amwgGDz7cwZtIzHSP8eS2nCGyGI77PS/HzdNL1q1RoYAGAt0lOnA9DCAKKWaDkHnSvibgM9Uv5I3wTjMo0zwDkaBrJgiGgMFSSY5hiCVGt2WJgRQygznBN6YtKYwBCDafs+F67mGwLKd7K5uMzfTJ9DIuMBW0lKmlDXxkcjhPtru1KE0eVLJL22TpYooKxkfSgooujf8ke/vUce//tSxKOAC9ynL4ysswmpISXxlY6hcIROUDElyMBIsiIysvCKAqghhZVahasAECAAAITjR3UQm2VTSszcVlOe48rGNm2Bxi46y1By8q9x6xrYCnLEThR+YH2H3ap3+tqdggbMX4hdk8m5oT5wEAnRuxTT4Xk1KhBSUJV6++pQTxF0TO5PL9OUQHoYbjUQXIk1y4JpTUF0KNpgXcJ1jFgHdQbKqm2BEAAACgJABSFuN5ZLlBUyLP8UYdCNMGCpG9pIiGiiDNMwiiuVw1tLjJltCjP/+1LEnIASgSMszL02QdicZu2GJsjXiioDC5bgJuMJP+cvwmNsiLM5r5rP/0nL7ryFIayHRJEwUsz7u1arVkwgQADAMh+fyyhZfXg5mMbBzk4N81yofLyiO8fcEygqzvUqw22e4zDe7ucCydL13ryX1irK98l/Xnr6wkZOZ6sEBw0NnXXyysDE9Gg0cKFLCEySr2P7HK1VViEAAQgG6yFxcRwwidFsJlCVMJHltLCn4cYsK6V4MgAfFjQLKcMuFsskNMWETOO2VgGQWKHjyHMUAv/7UsR1AIr43UOnsHJBXpqnpPGLSFpAqiIsYFn8UNAVmBEuefKuI9+wiCyAABgL8f4mpLUbctqy3F9OlOoafo9KGGVtuc1g4gNUJThuNNUiWRTQkpwAoQlHLUNIsULSaq1qq/szKq04rBzQ1qu1rNf/MCtN7X/sxRw0VUoKBV3/+TLKAECCJdjc3GlU1GzxoSk6GCLsPYlZkI9oWkJLcSEmJgHWqHOJeBDhkexihgYMh2dn/8qotUX0//RURWdjFDBQYJuFRUWfi7P1C/9TeK1M//tSxHsAidRjNSegcoFjG2So9KJIQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+1LEhQPJlMjoRLxNAAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==\",\n  duration: 0.764,\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.764,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "orc",
      "female",
      "youre",
      "welcome",
      "01"
    ]
  },
  "categories": [
    "warcraft",
    "voice"
  ]
}