{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jingles-pizzi-14",
  "type": "registry:block",
  "title": "Jingles Pizzi 14",
  "author": "Kenney <https://kenney.nl>",
  "description": "A vibrant pizzicato jingle with a dynamic, ascending melody, great for indicating a successful progression, unlocking new content, or a positive interaction.",
  "files": [
    {
      "path": "registry/soundcn/sounds/jingles-pizzi-14/jingles-pizzi-14.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const jinglesPizzi14Sound: SoundAsset = {\n  name: \"jingles-pizzi-14\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.923,\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.923,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "jingles",
      "pizzi",
      "14"
    ],
    "keywords": [
      "pizzicato",
      "plucked",
      "strings",
      "vibrant",
      "dynamic",
      "ascending",
      "successful progression",
      "unlock content",
      "positive interaction",
      "success",
      "ui feedback",
      "achievement",
      "cheerful",
      "lively",
      "game ui",
      "app ui",
      "jingle"
    ]
  },
  "categories": [
    "jingles"
  ]
}