{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-female-1",
  "type": "registry:block",
  "title": "Voiceover Pack Female 1",
  "author": "Kenney <https://kenney.nl>",
  "description": "A clear, professional female voice delivering a short spoken phrase, ideal for game prompts, tutorial instructions, or informational alerts in a UI.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-female-1/voiceover-pack-female-1.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackFemale1Sound: SoundAsset = {\n  name: \"voiceover-pack-female-1\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.488,\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.488,
    "format": "mp3",
    "sizeKb": 4,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "female",
      "1"
    ],
    "keywords": [
      "voiceover",
      "female",
      "spoken",
      "speech",
      "dialogue",
      "narration",
      "ui",
      "game",
      "prompt",
      "instruction",
      "tutorial",
      "alert",
      "confirmation",
      "announcement",
      "informative",
      "professional",
      "clear",
      "human",
      "feedback"
    ]
  },
  "categories": [
    "voiceover"
  ]
}