{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "impact-bell-heavy-003",
  "type": "registry:block",
  "title": "Impact Bell Heavy 003",
  "author": "Kenney <https://kenney.nl>",
  "description": "A deliberate, heavy bell toll, perfect for marking a major completion, a profound revelation, or a powerful success in a UI or game context.",
  "files": [
    {
      "path": "registry/soundcn/sounds/impact-bell-heavy-003/impact-bell-heavy-003.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const impactBellHeavy003Sound: SoundAsset = {\n  name: \"impact-bell-heavy-003\",\n  dataUri: \"data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAABsAABbaABISEhsbGxskJCQkLS0tNjY2Nj8/Pz9JSUlSUlJSW1tbW2RkZGRtbW12dnZ2f39/f4mJiZKSkpKbm5ubpKSkra2trba2tra/v7+/ycnJ0tLS0tvb29vk5OTt7e3t9vb29v///wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBpEAAAAAAAAW2lbyoMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACQBFWFT0gAGbFaxnMvAAADqwIY/z0BsACQAgAwDgVECI3oeh6jZ36vBAUEiBAgQIIe5o0aNGD4IAgCAIBkTg+D4fggCAYy4f/WD4f//0eD/R7//5QEAQAAAAn48YoQwwO3wiOV+cK0pJxCLRcoJHS4BzTFEBgGHQ5W3uYIIaWppI4STRcTRII5M0E34vZoDEcMCRmhf/rEqOnbZGaX2//8v3CrfNv8b///i2s+rmD9fg00Njv+HhZTf/+VU8XQnIAAAMBDCYmMjmQ//7UsQGAgvUZzZ9zQAZRovn3cyllmD4D+flNPHc0MfTcQ+MmAo2MUTJwRMXA8xsdzDw1DmMZQQ6tCg5mbBy1RxsJmgalrDQUsOSIWM7MCyHW94/z6Wx3+9xvY41aW9rJ+gMm4N2Fd/oU5A6JUoF9oADE4nPfoAw2CTJNRDpaCEcChiXeTQMCgUxEKzIKOPOJp8AUwf2WCLO9Fsw5wCaHXStan3JhKLr29tgGi0MKfe7/V//1//+n//6VQoKAADB2AmMAgDkwMQuDCATlNgpE4wf//tSxAuDTNBhIG90R4F1C2NF7ozwAxTP4aHMoIFkyd5A2nAEwtBwxmGUwZFo2yNs5gtE9iJswqAAw2AkwiPcwjrwy0O0qAYvleZkkNRjoRpZhiBQBzX5xwQEYxRJGH3eLkf+mQQTDQGBsAkYPoMZjqFNHzMhiY/AeBoloxmgYBsbFqyeRjIYoCcZQAAaXHkbtEUaPuCdppiY6gAYDBCBiBPeIZP7yTMdwADAlUCMzwdNfwaDgrUra4pVQysFVgpf4Y0wXIBFMA/AijAZATUwS0j/+1LEB4MMDEEUD/umiWMH48nPcFamMoTHvzBSwC8wiZF3MQOBHzB1bTMVsQIwPAAAADMYQYwBhxEQGd8hGbvSUYyAYZIh0YYt8c5qObK0MIhTFQSd80QGczsOQIBmChIMQwDYtZGHmUg1WQcMzJggOR3U47yUjFNAAMjAnEwmAWzDSKnMYIDRMkzEMTQ7kNj7I0PJjtdvGg5LDEo7Pi1M54jyYWquhkzGHjVhXL8NYULe7APdHs//Rd/9v/6P9KoCyMNs8wYEFzAMUDEyyTxaiP/7UsQIg8uAPSJtd4CxmQiggf9o6TGQXTev7zQYETRCkOcCMwuGCIwGSiIbdjh4ORGc5MYIBYsITABjNyQQxMCmvVW6mQgAaRBazo/FqMFm/1fb/kNXv///6/Zp+///7w4eQMC+AYDBeQJkxV4Z2Og0J9xonoMxcebzATwB0xyupjJgG/BxL5jRBYBUns1i3HDXPb+OQRa0w4wCjBdAsMMgcA34l8TlSJGMOYCsSA3AQBBkehsmAuSsKPwMTF7JqACjMHUd5aoAwAOfCUwiQDAY//tSxAUDCzA/Fk57gVFfh+ONv3BOC7MJNRQ1S0rTCNEuMV0ncYBgMNkxox7QLQ4C0wgAIjDfDPMRURo0VyRTxcIM4gMw2CjFLcO89AwRXQQBHTR3NJA84gSwgKK2LPZXUb///rEgAQQJ4gDD5mwoef/m2uNMYWoLJhJr8mCKBuaNZp0kaAgEhYAmODqgNNHFk7gRTBwcLgjpVPAgw9qPisMtRekyiPjOozcaZaE/2IczyPZ/////X//6e/01M8AHQwRA2zCBHeMVjXs9fMjjEaH/+1LECgMM4EMED3NQAUKH5E2u8EapOLi9k2BxhTAWrFMP0dAwiBOTF2BDMgAp8zigRTT9g1ODcoMwvgMTB4BrMEYj83HjnjAEGGMCUAdGmCDsmdPQ5Y0p0wIMjAiwGB5y2Z9e7/xRCCw0oHCfItwBGzzdD8A0THACDmfBFleY6fZFMGmgYIAYZgJ0muKIYmOmlXAgSGMFiY3DcbnJcYRBBEmWgSive0LfV81O38ihP3/2f//9H+j/QhQNgADQgBzAEFDAYXzDW8DrmtQ4wjGsV//7UsQMAwpYQRhu+4QBwwhgif9wqPMaMD01RBjoQnMNg8wcLwuhjYR+OUGMxm83dMEgAxSTjYZ/MSLBCarcykaOpjMhuVRKuc+931//3f+oADAAxBSYCuAEmBwAOBhaYWiazuJsGF0gcRivGSmyKI4YMkFRhFB4mC6E+YvAN5i+DuGKcVoYpjXRiPHmBAJBhBACGASO2Z+ojBtBB5mGkBEYnAZgwNHL0QfpeBi0EgUDjQ8BwIi9jM52V/6Yt6P0+Qoh+AOPAiMGBNMC0KowbFaT//tSxAgDDBg/DE77oIFwiCINz3BISkUQMMANcy6YxTKrAANKcYOPQVMAw3MQA4MjTEMy4uPHvhO0mzMBglMKAVMTilPVm8MQUXMGwcLKpdGRhNmiAcDQKswVhemmDfV/+jPf2buwSQRygfuAsKDH4fN6Ow4dhtQMNaZWyJI8vUapvJ40mGIC+YmFJnlJHOcsdfY589UGJQoHC4gXhokzmrVIXvZxDZj9EGEDKsA/CMUWvd9W6Pq9n+p7hjnfV/9P/9ULn4MlYBMCgcGAIFeYHKT/+1LEB4IL1D8MT3eEQSUHpKWuaE4xnNopmDKG4daxOB42JO1MBBUMbFMHLQ0QKTpe8PXbM6kLzGwBCBMYhIh18hGu1+3Rm61DFx1N3iQOCbA20ga6z93aJs317vR/vNL/2b9fUAR+YwUzXvTUNKVPqkYxOCzFlpNOgkzlMXGIzwwMHTLsjixj2gWCOKWCZrwwa6c6zKlBgUMgW43r2nvZ2dCf/sDEUcu7///Z2dQALEIGJXRO0RhIwBOTckgTJNDBs5mAjOoI3IBEISGCpjpWCP/7UsQRggmQPRzObwcxRgeizdhtBAAzt0NgUi5NKjQeYvmnGS6aDMtKdHsEjDV4HM+z/d//o/1W/6f/7Ov+5BxBpMikBZgcD5jkHx/EToOOw01es1dA4wDVgwNB0BKFUyIfNiJwIwGhSIsHF+jBUY18vOgOUoYU/hgJMPT7Q5vVRX+n07H+z/1a/92j//p/7gEIE8OBMwPDgwAIkwt/Q6Z8Ux1Dgy4E7TQtBENf8oJrQweQEITMw7OaSs1P0TCFWDiuooYTBZ28MmQQEmE/7dDB//tSxCCDywxBCE77hAFEB6DB7vDQCRMZF5ssvRhs3+dln/o//9Ov//3///1Gb4AOPAdGCoAcYj4Opysi1GJiCEYporRobgLGXsDmxYvGGQ8iw8GPZEGgCVnoRPnNK2YqCxhgHmAF2CfYdmBIYCIJa+KIY10R0KGsKjlIR/21vDtAF/gMBEGh8YJRqaiQ4YLDiYt56cghCYI3Ji4SCAYjoFKiEMSEM1VAzrJcDAuzkHAA5QKTTZ7DA04sfIDp2xLNqGLQNie03Zn//+j/d//s/QH/+1LEKYNKTD8OTvNHAUAH4MHu8NDNuA4DQWBbMOgF430BKTDcBKMiADkDQhGZy4kWECEZzDwDTGoljG8BjnqmjlASMSAQw+ABlBHLwAfTYAGGbkTQWGxiMoMrjaeKnr7mfub9Kj/wCxUIgoOJgHxhvbtpgiUhzOrZ9uMRk85hqEK5hqGY4UG1hR/eAf9tnIzuX1CAAYTFJ0OUmuApBq1qUKlM14B0kHAgd5xVbv///Z+koIJJcixBa4QBhieA53KKQGKcywX8HYEIUABQXg0VSf/7UsQ2AwmYPQQO74hBRQeiTd3hGlHhM08cMtoDhlQaBV6hQbM4TAQLu9j4xw6npsZF112i//Z/1W//s/0diL/qV/7rydHqEAFwASAOFQ8BsamgkHCwamATqHYoUGbWcHe4AD8mIhkwumPRYZq6Jo2ORDTFyQYP27ToHJ0aaGACgmhkzL422a52n/zyAf7jyhgjjSwmxEGSYYgBJi5lShi5xnPBm5xIYQJJg0TARThYsg+Rm22o0kFBIwSVjbq2OfIEaJDU6xhAVAp8KERCWvzl//tSxEUDyKg/CC7zZpE8h+CB33BIemc6f/7f///V/TU/8AMCgQMCiYJzUZzy2YOh8boBiRy8Yy85mAZGCCqKgsxGRTQzDN6JkyQuzCQALwkpJN1m44WWVbmutzNskw84hYak8xl3///////N//9nQUgkkuUxGVJ4ExTP/iASLRm9AE37M83I0JYAtRHhhqIZy9R4zy3XlHAJ0mhpyUhvXUiAxMPtSvbPNfrp/v6pL37d//3f//27eikp+UGAOMhsFX7MkHwAg0mQTyk55GTJcaj/+1LEWIMJ9D0EDvMnASWH4k3NGOqDZgsUiEBGCg0Z+fJqhaBo0ZGkkYAWGXY5l5my2xHzESs1IMeWpCQE1lv0/zN136//////9glKoE3QXpDATMXgRPqhhMZAiMfGkOBQaMF0yMRwRKo+nCZ2jGKSoRIGgn6LS7jAyA30HOBJF1xybNCY0HY5SPnbGd3/p7m+S9v3dH/f/+z0Kiv9iAAhCNSHRGT8mYGGhxkigPZGvqg+7AQZVOYMqGXxZs2ac41NYUYFUk3MnPcNHFhT+GOg4f/7UsRqAwmkOwQO82bBQAegyd3lGBHL/ldJTNVGero/2t/Z6vRr/75Ef2goDhIGTF0DD3kTAMa5owGpN+Zi/Ga6NAgvacHGBq5aecmmawbI1NTABk+BcN6O2ESWCibB4dd7CZb31+j/2fZ/0f//3/TfsooWkAAABZIDgWYswoXRMkyfgAm64wMTEDEoCCEUCDKRk18MM1bziY4v0pILIhhoWaWDZ0lGHC5lAW/FJB9GZ0K7vv/t67f+n99aP33kkkEnFKmJQp9GFQJm9AGmFwEm//tSxHkDiRg9BA7zYIErB+CF3eDgLuofpmFCIlKoNr3JQUw8EMIkDozgWHkujlcfxqNrFFAWvg8TSTitzDeO/mfR///tR+j/2fd9FSANIQAEKgCDIbEc+C9BEIiNiWI9aEjHM40YHGRdhpkh2YYQHZnprp84STIALTQzA4MlYNGZowcPHQqX5wmw+Vsyy2uft+n6fqd/+9q/m//6SQSSBiODV/K0mDIDG54CCwhHAzwLjjAYYIR0/VDiEeZwKe+QR0VqzaaB8FZoS0dpLZbwSO3/+1LEjQMJbD0CD3dgwSQG4U3d5JqMLZ2ybpp8Vs/1p3N+i9p13/////kv9qoekJAAApYCghhJgeDEIjNDAsjM5k4oDtYYD0mwUNGfG5mO+ZiUsOViBpcZ6lhHytWXToQJAojga7PS5qdXuSiSuq//sT2r//8qTSIJvJhGHAOnIQAmGwBGCLHBEDGB04GYgQDumYgKGUKJwZQIjpSMWSrGncCBOs5gt6AQinzk1kqfuV3faKTUUsr7WVr7aru/+mtP+6oFRGHpBWHEICK6hkWirf/7UsSggwoIPQIvc2CBL4dhDd3oioaqEC9GAJcMUElUKgIEABFNqFzd9Vw00cTM/w+Euf1IIpAhFTpgmq81mnQsz3DGi76Oroq9q8f/r+/4136TUuADcFSBhiDxOIQYNRlQeAY/wCki7EdCuWZUwZUyc3wbugl/eXQD+prF7+b4NEAKDpOT1+uLD0DJ+ir2daavZY/o00s+in3e37md9QCVU/yAB40XBDGmOxygJrfEEfQIyAoq1vhVBBxs3wo3hF9IGIQRvwQebbPeoFvhwKnz//tSxLADyRw9Ag9zYIExh6BB7uwQvHHKFkfq7+1bdt9q9LP9f/9PX+pekI1wEgCmbmBUBiNJGGBUAmZUEEdkYfTBjujOXyMMPNWqNepAWZnbyI7nBXmlUOvhaCAIk0k2Fm7AjXikct3U55N6lzEYp8XU0e8g8zqq3N7577FqWGn+nY4KWZA/yv+g2OORkDuQhBinAHZw0WNpK2v8BQwCwWMw1xs0tTdBByXuX3Uik9dffYUY+MofJAopCz92Mp+ft2+QXX7Yrv18q/rQzV0IDLD/+1LEwwMJcDsCT28hQS+HoAHu6BAtsiAgAG8MCMC4eOyJgLjc54JBwTCg4qUBSiFQ8cQDDRk1clb+TpuGgJaSz94VS2okVQuvjYvzuU7s2bZquRbUtPdlqtH2I/WqPkkIjsqsFZP9HlfL+jr7UcF0P1kBO8ksVPIU7kkAVmHrxEKxAAAmJMzkAuCmuQAZ5mAuizhRtg5ggJiDgmOFEErfpGY1oA4wJzb+C/i+GP2bCmXEZQLi9ka+bGKaSAWgVG3iz0Qo9xPlMP1PGNYRP6vmm//7UsTVAwjwOwRO70CBYgefge3oiJR63EOtxwDBumEUHkYXwKxgoAemN8ByYCgDxgqi8GDiAoYDQBBQEw5kAIrmBYAYYGoQQBAzd+8IwThmBlq64HfQrCAgMjxns87qzQVTIJB0/I1qEikmybGlQKREKDgINJ1HXs6cz1f3+EiWWroVAAAAAwDFAjDAoHACVAAQaPqUCgw6cADEAQQBRBJyNjQQRUZFHGvzqAxMwEcNhMzUTMTwZSU8uJQDbIav5oEjEzKf7WcTMTMeaJJ7/8lx//tSxOMDCWw7BE7vIIGhoN+J7Yi4yIm4mBKav9ew5B6GiBIGn+//L6jQe5vHuS5v7f//TL5ugs3JRCShcX////9i4XDR0EC+7EubuXy//////////pzNMABADDDBAAAAAyCzCjhqf/z03AplnH/GkjAd1v/AJQAMpHgChAw2A96WvwOZBXgBUAb6f4WBEaACuAMOAUnV/FoD0QudFKkNEBf/xBUmjMQlFnDiHz//jHCyiSJoZYXMiUhZ3//5ASdHUOSMyaEyOaQWTP///jKk0fL/+1LE5wMLbDz+T29AgZ+IHwK9kAAaQ4gxmTQ5xPKJoc4uof////kCIaTpYUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7UsTjABISERVZxoACQTQh5zMwAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxKGDwAABpBwAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\",\n  duration: 0.654,\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.654,
    "format": "mp3",
    "sizeKb": 6,
    "license": "CC0",
    "tags": [
      "impact",
      "bell",
      "heavy",
      "003"
    ],
    "keywords": [
      "impact",
      "bell",
      "heavy",
      "deliberate",
      "toll",
      "major completion",
      "profound",
      "revelation",
      "powerful",
      "success",
      "game",
      "achievement",
      "finality",
      "important",
      "resonating",
      "deep",
      "distinct",
      "solemn",
      "significant",
      "reward"
    ]
  },
  "categories": [
    "impact"
  ]
}