{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "cards-pack-open-2",
  "type": "registry:block",
  "title": "Cards Pack Open 2",
  "author": "Kenney <https://kenney.nl>",
  "description": "A slightly softer, more subtle sound for opening a virtual card pack, for a less dramatic reveal of content.",
  "files": [
    {
      "path": "registry/soundcn/sounds/cards-pack-open-2/cards-pack-open-2.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const cardsPackOpen2Sound: SoundAsset = {\n  name: \"cards-pack-open-2\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.732,\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.732,
    "format": "mp3",
    "sizeKb": 6,
    "license": "CC0",
    "tags": [
      "cards",
      "pack",
      "open",
      "2"
    ],
    "keywords": [
      "cards",
      "pack",
      "open",
      "reveal",
      "unbox",
      "game",
      "ui",
      "soft",
      "subtle",
      "tearing",
      "new",
      "item",
      "reward",
      "discovery",
      "feedback",
      "start",
      "engage",
      "gentle",
      "loot",
      "collectible",
      "light",
      "minimal"
    ]
  },
  "categories": [
    "cards"
  ]
}