{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "power-up-12",
  "type": "registry:block",
  "title": "Power Up 12",
  "author": "Kenney <https://kenney.nl>",
  "description": "A broad, impactful power-up sound with a rich texture, ideal for major achievements or game-changing upgrades.",
  "files": [
    {
      "path": "registry/soundcn/sounds/power-up-12/power-up-12.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const powerUp12Sound: SoundAsset = {\n  name: \"power-up-12\",\n  dataUri: \"data:audio/mpeg;base64,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jcDUGRAQnBZRKlp///tSxCKAC9zLMU0KkIE/mCX0xo3w/////neucDZuLrQKNTQZbUKpdMmf/6r/+9YKCDIoyD0aAA7ufGhPAdHgBQ/V62urzQeKOyDGH6SZfQbuOJ/WpMHUB7GximPEvf7MLT7TPNHs4RlpKheDjCbx7+EVTMwGWpYrod//t/XqpQCSVHLmHGiABkoNoy7nq/s0FSCNC2lQQgwkfOOhC5u5J//5BSHtXwPiIe7vu6Ovu1oep1iwZW0WS2kCGt2SeeK3uvTTQWLZXtKtbq6fezA0MAD/+1LEKQAKHJ8rp4EAAVAx5GTxibgBXTIgAhUDuLC1q2b0rf87kMZDs4QSvMmxJEM6aV0f3KRZDJ1io5GMaulJF22WZVXmfVLSSK5ND+ZSyF136O2rfu6IvzyUQf5qdXtX/3mfyo5xDAQUaBAAlctbY36m2KgoimSNNhTvZQGOeuiPazNsiSIlH3WqfSYnVGtMVVajGKqvJ6JddLb7Vq6eVq2MutNib81OTb0fKLerRU8q4u9BsAAFlEUIoQdYco90WQ+53N/8umtjFB3WPBoY0v/7UsQ0gEmxVyMHjEXBQo4kaYMMCSR77QJio6cK9GGxOFxP2P5xVd/DzM/9mf7I7ZvoPM6z1jNB/bO/rf/95/W5P9/kdwT9lFfh1QABW/mAAU1qCZgdTq3nfZYXqTHSh5qS+1JwHJKFAZIgJxI8BQ4BToiHh2Gis8sAgUKPAh4srnVnTbmXkS19pZ9d9SpKLkpL4iqfHB4O0CYjiBUAo1VLK1aGQu/Vt//R/0TQ2VOsqf+WqOXo9Ru2UuqsaZ9EeVHt5jGuUz5WobctsRN+YSFW//tSxEMCCbxVISwYYEEzseFA8xQQlR5QFDytERX/zGbMpah0SFio+geZBKET1EGTRnLHsv5Fy3/qDlWL1/ums6zDKJH4p8///MhPjK6kDm1m+sZ+t/GvnG90pDvYAcwGcFFvFf72f4rFv1CqcX/2PSMFmaRckfHy24pIkiYBRQBRCys0kTCEkExCw16+etVgiUFQhJA0qzSKCLVYyatDd7RicjdQgcQ5UPOG0KNBCR4OhoiJSqvDREqVVvVMQU1FMy4xMDBVVVVVVVVVVVVVVVX/+1LEU4OJWLbkDAXnwRsYGcQEvmpVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==\",\n  duration: 0.859,\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.859,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "power",
      "up",
      "12"
    ],
    "keywords": [
      "power up",
      "game ui",
      "major achievement",
      "game-changing upgrade",
      "broad",
      "impactful",
      "rich",
      "texture",
      "success",
      "reward",
      "powerful",
      "epic",
      "positive",
      "upgrade",
      "gain",
      "ultimate",
      "triumph",
      "grand"
    ]
  },
  "categories": [
    "power"
  ]
}