{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jingles-steel-15",
  "type": "registry:block",
  "title": "Jingles Steel 15",
  "author": "Kenney <https://kenney.nl>",
  "description": "A crisp, short steel jingle sound, well-suited for immediate positive feedback like collecting an item or a quick success confirmation.",
  "files": [
    {
      "path": "registry/soundcn/sounds/jingles-steel-15/jingles-steel-15.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const jinglesSteel15Sound: SoundAsset = {\n  name: \"jingles-steel-15\",\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",
      "15"
    ],
    "keywords": [
      "jingle",
      "steel",
      "crisp",
      "short",
      "success",
      "item collected",
      "positive",
      "feedback",
      "notification",
      "chime",
      "game ui",
      "reward",
      "pickup",
      "bright",
      "metallic",
      "quick",
      "confirm",
      "accomplishment",
      "select"
    ]
  },
  "categories": [
    "jingles"
  ]
}