{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orc-female-standard-npcfarewell-01",
  "type": "registry:block",
  "title": "Orc Female Standard Npcfarewell 01",
  "author": "Kenney <https://kenney.nl>",
  "description": "Orc Female Standard Npcfarewell 01 sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/orc-female-standard-npcfarewell-01/orc-female-standard-npcfarewell-01.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const orcFemaleStandardNpcfarewell01Sound: SoundAsset = {\n  name: \"orc-female-standard-npcfarewell-01\",\n  dataUri: \"data:audio/mpeg;base64,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q67KxhV+N8DAQEOFE4UBLqkGAQEmOqgYgwr+NT2b6s//qlVWNSDCvJtCx8X//IK4+KaNhBPBpAqNEZIPEoMJAiizD4uHZnjUSRpRZZR8GTWf7LLJZZZQQYGCDo5HxWVgcdJYZGstjkatZLHIy/8yZQwMGCqOR9sdBxIYKCBWmmmioMWVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVf/7UsStA0mo8xIsJGUJTSFiRaYMKVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxLqDikzbCAwwZskzoBPEkwy5VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\",\n  duration: 0.905,\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.905,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "orc",
      "female",
      "standard",
      "npcfarewell",
      "01"
    ]
  },
  "categories": [
    "warcraft",
    "voice"
  ]
}