{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jingles-steel-05",
  "type": "registry:block",
  "title": "Jingles Steel 05",
  "author": "Kenney <https://kenney.nl>",
  "description": "A sparkling steelpan jingle with a quick, happy progression, ideal for collecting items, earning points, or a brief positive interaction.",
  "files": [
    {
      "path": "registry/soundcn/sounds/jingles-steel-05/jingles-steel-05.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const jinglesSteel05Sound: SoundAsset = {\n  name: \"jingles-steel-05\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.945,\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.945,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "jingles",
      "steel",
      "05"
    ],
    "keywords": [
      "steelpan",
      "metallic",
      "sparkling",
      "quick",
      "happy progression",
      "collect item",
      "earn points",
      "brief interaction",
      "success",
      "ui feedback",
      "positive",
      "playful",
      "bright",
      "crisp",
      "ding",
      "notification",
      "jingle"
    ]
  },
  "categories": [
    "jingles"
  ]
}