{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jingles-pizzi-02",
  "type": "registry:block",
  "title": "Jingles Pizzi 02",
  "author": "Kenney <https://kenney.nl>",
  "description": "An expressive pizzicato jingle with a distinct, moderately paced melody, great for signaling a successful action, a level up, or a positive alert in an app.",
  "files": [
    {
      "path": "registry/soundcn/sounds/jingles-pizzi-02/jingles-pizzi-02.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const jinglesPizzi02Sound: SoundAsset = {\n  name: \"jingles-pizzi-02\",\n  dataUri: \"data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAACYAAB/VAA0NExMTGhogICAnJyctLTQ0NDs7O0FBSEhITk5VVVVbW1tiYmhoaG9vb3Z2fHx8g4OJiYmQkJCWlp2dnaSkpKqqsbGxt7e3vr7ExMTLy9LS0tjY2N/f5eXl7Ozs8vL5+fn//wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBBwAAAAAAAAf1RbGofgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACEwXGlRhgCG6H2w3MTBCAVEgAEIZZMmTJoQCAIAgCYPg+D4PggcBAEAGD+kEHcHwf3QQBABn1g+HwQBAEFAMP93SJw/ggCAY/BB2Gf///8uD+ZzfsFgsGY7FYsAgAAGL2uJGU3Acj+z78KVrM18ZyYheyWJoGxwUjxcApQzAOGBMAt3m5QHSHridBmBujT+N8hBcY4x+HQREcZUGP/NGMCcJyKXKpSIgSYyn+ybutMaBuYk+b0P//xmyugQc3cvuyqGDbkZpG1W4cP/7UsQFAAuIn1gdp4AJd5qraaYiWpsGd9cjJZZG3XgDKPOpOfwfqDhHuPTOmwha7ShmOeFcQdCXBRFhUStXSpnuqWmzWZDbuDasF9Eh5n1bb9sjfNcbnYo38HRspWLL62UrovF3//7wEQAABJwCEFpzAJTuHCsFSpit/bT2DEcPw8qjFsZp1aa/DELpYIaLVUlkd3SELo5Osw6UNrkZx+nUewGLsWrphaZx3HXYjqCo+Xa9rSVutViqWdpXHyi/0PYkQftL1aACAAAAAU6AloGC//tSxAWAi9D3V60wcpFgFiqdtI4jxASPvRVjXKsErVHVyggA780xiBs2eNDoevBNWo2vayJIFm4319sO2tcWQI2TSHBI1CD8YF4pMIRrtk2+Vs5XVxKFGVE8ttcgg4fUpfKZ0sjNGopKIJwCGVZiQaMGjk6k3goRQqNKJER7efNEaxclRQFYuUtuEKjofm0KxaCQGkOEM20Qb0+Hm9aN1DFk6WhuCamgsydPkyOEfPoy3KjM4F8fCIvWhsygrdMdlYCAAAAAAk6AuZYoJDGM9qr/+1LECAEMVN1XrTzLEWURKfW0mhGr/KqYmCu8yoDF40uRo7bDPH8oXg7E6uE8i9aTEJhUh4bIFMHJmkiWJ8glRumXHhNHUN7bX2AU6ZOw/6YjXIgZSqLkp5l4Z5buRju25nVokH7gNQQAAAXOBEUEAwRmo7TwKAprjyI77JwCKOxGl6PfVel6K7aqBv+JRQYFC4C1EiAMhgUvB4IcHsKJVSW7LONRyTNR8/Ly5NiSFn+vo04WpDBd/vSz2qvvzOeGiAAAFaBHlDxwKHgnymCFQP/7UsQIAQww10juJHZJdhmpKcYhoQMFcDAlZbEDFwFpYIJAg+kDRdWGZizuKTmXoRxiER+fvSRoesaaTdoBTphx9pCerMUhGSlM44jejateztI6RqTlkyG31HqedLokUQzWi/kdWKgAAASuAZMgJTnPepRXa5RQVjwrV0SgwDCdtpgt+ngmTnA+lkSA+Kw9OHbV0+ko2VIzRw2KAIHBts7GizRFDZJMxCk/R5uGz3ZamNGbtaiG53r7q/7Wjo1zjTnm+5SAQQAACnAIcnpYD7G4//tSxAaAC60FX0ywx5mAmiz1l6RZuUiZDxTQwqbPxNr0LPxLZWLH214kGDl196hjCBDGIIO9tGNn2I/9vr5+6fjLy773sEAGAwGF3ERGxEREGBBO71vEQnsRnu7iIh7v+yZNOAAcIMYEIFNzcCNSKPHLKiSQHMNlZMFOEsMljBPHEi7UhUXlEMonnygTSkNZ+fc5ZpCwhYPu6xLKJEA/NZTEmSGSs3b46qk+X3ZamS/Jqxrd/l/vtF+tIwG2mCgrXP93TZpqpBijRMK9hKFQYYT/+1LEBYAKRKdxh4zW+VERa+mXoPMkZ7xcIYN82VkUQIAwmMlCkljoKue+1az7GuOqHmFPTpTWOwIWRIbzFalaWfkGenzTNPI8MZQXF5UQmq0sWaFv/y/+erdvxOADAAElOAQ82jdwMgHjwmukYlOvApS8szwZJ0K9EnRR+xwIu1I6x5RGKzzPUfPTzTBJoMpmWkqh9XD0rGpyHuxujW8RMjX/s56zeTy3/5bnuerCV5XhGqRtEttuAF+HzkTgZ01zvHyzSEGIg48DJrVgezhdU//7UsQQAAm4yXmnsGrxRhTssZeMthOHTL0K3/LjVQ4wxhhjRCJEJkhIhMyGKQvrmlIv7po7ucLYWIAYjanaBOgunFYCEEmiAiwPUg3KABIGOPynRijrfK8dpoq6EJWaEIsQdC0umRizMOCHQExECHY6cgKpDVZIWSrHrM2jN+c2Y2OfikCVyjw6VFrHAaWsjQmm2ZvVwMlAVFgwcOGDhaE1LjdUJywyYk0yBlzhWWT556Gkjqo7eFjdj7uCEeiLmKAiZpGV3Gbea2+fD4qE2VuP//tSxB4ACkCDXyykznlMmm11hg0vv8tUzGUTwlp8MEF5c1bbvKuO/5kzeoAaWmmkmm4A/LKpkdWRFtUK81yxlYI6sOyqBDtQz/EShq1S+eQ8xCgqHra4eGZw41PgJzUKSYM0wcLh0i63+bKUM2LIrnjGUHhf6NU03f8PLHXeqoBARAJTcAdVRpHcLy6lbkQ0gMRGfbFOiFwzbaXYwX14JDXzgiRoViIx+dPVgmZgt22K1e7KtK55+IeMDYltZOMmFoRR/EsZ/Mn/92b/mKwkr1j/+1LEKQAKLJNVTaRu2mQl7KT2Pf4ACAMV5GUi7ByjmUKeVRbzgs7hucCBe6wsU3JYMHH5hPxwHx4GiJxt5ZLCGI70dSuCYjmZ/cziWVXx0Eg5PzuzrSzvODz2Ijt9v5YLmLelkMa10hERJkkP8qBYDvWnp1tyIcYSZQZ0G+j8NRoHyS984nOo8WYDwL+hxYOp3Y3z+PEetJJVpQxvZXbJHYIlG9bOduYVWwRY8/WAAAAAAAFKQVKfZI4dIMHvtD7DJbaqrZc/ysUsjxDK6LG6kv/7UsQRgAvNAWWspG3ZRQ/utPEOzkwdqQPMrSVHZe4XKVPufVj/JFt1I1cbsUkIBZrW9YSklUyY6JI5dWY/jc9v/yokKSnqDGaVNty2kr5YWYbiaiRKKTgSQu6kAzhzO12XFBKphbCrUW0KqYv+T8Xoz9mfV/U0l7NTx5IEnr5r46tSR4wo+oopqhdM+BbS5KspVOMPssuGl+x5CgVU0TAleqAggQSCSW5QzpguSRgmhCWknA0VmqFlCg8Omp/91Z4k0VeUT+ra9c+2BAWIWq6J//tSxBeACeyxZ6y8ZdFLki41hI3WgRKQNOGRdk50skWe1/iMugSHA+Zl5IArY8PWd2vkGeL5GiJoskooqBYVCVSp5gE8qaHRPBjBLgM9Zt1+6dk0diDNw5xdZpUrCxFPgm+V5mRttrDTZnY6WxkFCoaWScCgNC5p7LQKAQVESrehcSnqf4kDJqqAAEogkklOUR5kdQYhO9xiykP0MNmU8IKMxnxmJ0GhDe5RVsSMTDTdE5XCBjlBBZSCa1RmfD4qo8m8IJSZ3pFx61wHhogNy2X/+1LEJAAKZG1frLxl0VAMrjWHpKfrPB5Eykp9bhKHSGIZjdUibTcAa8pr1Rsobjs/FRBcWgRU4+1rxfR0wiAj7jAixE0Iyw4hXRmetLfk9YtdKgHR16+BRmj43O0mzbop3/7usQRAvLxr9qV5Od07rDv/rFWgMNKJSzWC5UGqFgAJPKmZsCMqyuS5GRarvowpReFLymlOJY9ttERO3Y4fX1Ymhtwv6q7LbXnbcTY94LdDT9vFweua/x6hytUf/92/BUEL+fmKzwCAQAl3cBdDMf/7UsQuAApYZWWMPSc5UAxqKraQAHbBwucalP4/D7ggNdRxGmPwuObkE+yR+8ApOu0Rq9eyNHCAef4PR/+sq7QpCQfDuYaomYaHWjzIoaBJ3LuW4SD3FHnnFyLqmPevpQIIVNIIw0IhIBIALwkxaqas3AByoyijyBAYOHjoJFJ9m7w25cNtSjLSVVBc0Igp1nZz1V8EZUHaojTD1qlDGOVhJYZzg/tmAT0YEUmi3OWFWGirJvfcfscQw0u5MbmqlKpo0L3pSP+5xFurtX0cJoFo//tSxDiAE0ExX1mngAFFka/3noAGE+dbpq+7/k/HIoW1khMUyvrv43mvx/////4r+PH2rKT6r/GmqJxdX+nkt5SNkpFJwQAhUIwlWVpwsj4zSQwfz+QjCPUAIhsuG4i4PqOBsTwbP6szMq8pWP2tr5VZnJckVcpguVrpe860WMBNtvJH2CATGiMt0tDql0UKgAMCASEAAApQI86OlVjH3IiYch9oqpHWltPVR3Ami2AOwRUCoCILiNn2fURUvMgVsUwA9SGOuCblhNa2x+3/ezP/+1LEIIAKYKth7KRtAUMLLP2HjLHNKCKCxpiYDAplwaKjZfS5aeqoBQMFMAAJUvAfZsbdGUBT7Jy3G4oBPhmO9aHYo0gVmzmrBz1TSmDMZ41P4UuDLOsJIVtyvyW71rX9Sh8l9eyEbI4ca/9/mjE0wzVfXt6lulaFAyQ0MxaTSTgOEY8w/hZS1K1cKYTsiXJdvSXmQm1XoE0l5HXek/izKakFaiTbnL36MAq5CgyrYuusMYKQsSPW2pgURrzKzQ3UaSoi82hfebYiAu9ojIUBiP/7UsQsgArUl3XnpE7xWgtq9aegqRAAAEObB/WdUpCMMRUJ5SyWYroCQTcmllcDRQG1dBI+8rIexpgegKo6EgRpmiZ3IK+AcoJjzhMUYLvr3P9VDYcpAco5zviokP/r/+6AN8F9v9z3/dWCEhAASm4KWPVSoCIdwcKcNalRDZtana6uozH2g8EOZvjJ+u4irwhOscRbgnzwRswHWPEMkRFBVhpC1CIXBmvYOSJTRhqLx9LU6/1LbWzIQ1RyEptpwJONcogURSDPNDlSZqPtHLC8//tSxDOACcBjWU0wbpFIFO1094x+akDBHnuWMuSRQkBChhHcXTOjT0KfPJ5LWZdjhcoCHzMsj47UYOAoFTMSMWrqrdiwuJLRSzXmHKpprCJTKI0oQnT0jC2kvCdBJxswI0q0wnLrE+ggfZQCvxaraKP7STDC2IraTyFchRQsiXjkCZwETOAQyUM+sCE01o6AeAAsNR7fuxoHYXIBaLAOADAAG5baOY1swgQ6gnvisGw4wpTzrRiLtzXXP1Y47ZEf07HFv+yJ+1NVduDU9gYP/C//+1LEQYAKGHVlh7EFMlOoLCmXpfmnlaSgv8OeRMjvUyfkZHZcE+pGZwfIYnVqmTcQpCKZZEsLg0TgXjJo6soQgWF3kBk4A72GmkGigPiolQSLKqRLFyQsB42gfjKJXVFLnFbTLUfklVld2Kso/wu6r+/JUaE7iNqFAUNRIxBTbbkNBO2EUO8Ods2axDm0xC9um3KGZrC1HcPnOp//uXX/5c718LrrO7ATlcz0tw61ZDYug/hymI+0Kg6wnSp5aBnktlTB8VtOJJLkWroKxSnPKv/7UsQsgBANM3fnsHdxQJJsOZYNqMvNHsKtJh2l6CFShL7PliRkGkDTVE+lOQ3RKwqsmDBqLFRglIDH8bBARAoAQAC+EOxbGNLAGNYzixAMAqVtmX3SLWGoBLULNiCnaffYJ0uwXNVzF8bS1vss8jRSHf9jO8fXMOMSmQgYNl1kUXi6h1IhFFtz3Rt+yuYHUJFVNJpt3iHms5QB4VHNtDHEegtdEY6AHwKvbPmjw2ttkyh3r8db1febhrqxRjtXat2Oa8Up4aAx5rAWPogqp6mS//tSxCIACniJb+wwR+FDjO788RpWwFt+p5UsDQVOvp5KE48sRhAMyUjVCmk04DhSEpMIo0DhYGFnOVzQleLFQ8a21Q7G6E+Z3ASVhRuoFuVr9ihMjFhuVGom0GzlzyYjSVDJJ5tNar1Wrl0FVjZbpwWalfqfRagWYigQSk5Q5r/8Z0z80pWC3XYbMjIuJjkfTRgovfNXwBYStLo1o4aWu5dG3q/QWxKLdmirZqdPUKQ8UqCEJxdxCxVOBgDBpWvdgBDKgdQ5q2woGYsaoiTbbcD/+1LELYAKNHthrKxO0UoPbjz2Cg4qVbYSXYhxxUgryS46EOQ65JstaFL6fDC/YXyr19YULzOBumg7mxYmdl1sFc0qVMlUDGCpE2znmDGDxYXC4Ta9l2rfi7M3N9DFKuwmbUyS2mnAIaQqikdAFJvo9Sm8mIp5JNmaATMaqhmFmSupN5rJldWYpseocJShye7IQiEG3yIRqfSA2D3llCyzN7RvbclKFWehVLYRcVABAltLkkktlt++2AAArEMOLGqjr2kNnTwdFoMGJiCoEFzdFP/7UsQ5AAnQfWm09QAyWh+sNzGAAtA3yCtSDWnleda8OqkTKT/bnPqNu+jLchDJW2bxukTgFzIcels9dHuQO7hJoVBtrFl89Sy6pei9WpNX3Zl9NS9r2LcViUizf13Yf7UaxWhydps6tey9joUkmb+mr2ZTLb9vHlnCrun+rlzv1a16X28sqlhgQAkZIgUlEJHEfP6AC6HJj0jphC5dYNS3QgCNUclHOKJ9P0+1gzCbHArB4E5V5KCwaKIyYZ3HmmUCrT4YjJ0fi7QmEjVu/OiD//tSxCSAE1kzZbmHgAlRlO13sNACItmehsXdWFpjR2SAyM+zkxhxPxRL+baTHhvWd4ebyI5xYbdFnX60g7x6xX7OsMc8+We71F0w52fXtr61666op4mfamdXd0kjT4u/vqXXzuC2LpARSIQABKcENoJZS15P5PoezLYq4UikDqRqnsTcZErmperH8tTHkPIK4WCkth+LqNSRk7r0i+/OmyvKXyeq10HZtTnqyLpXER1v/M4N6GSW0Gj3EtWEBAAAgAAoQSVuUdagp0zEPYnFKZ7/+1LECoAJ+IthrLzHkTWWLbWElZLafAgLySR22HhNbMC6nK525MZbkei2tSZjo/iwVe43D1rsBhs/7nzv7I8NR4azmcvM0KOtsjm0//1op5AjZQIKKcuDcqmojKnRHo4v2+LWWYMCeWW3IPYOvT9nHvKUAG1RhV+QXdqBMTd1nHJ2T0cPP5vqJ3nYTIwaNLFxGy/9CFNfLoT57vjWKugLSiUgk3NwWAWy5pPyMAjqHE5i8AQiJi7mirsJC718TE9aZgkgC0+UCIf/2Vb0pY4f9f/7UsQZgAo8l2unoPLRSpks8Yec/wDos+4l+g2Ir1HQDI8O+UYHnWfKyTRKgs/vLiVLBtPIDARCkBvBpq6uQLpN4mDYOtsw3Hjj20boDktZ3WxKt11EgD+iv4kVTHgE1sUhhOOkfNFLeUfzTjvb6smc5ZP/JGcJv/uW0WfC3R3Mu2hY/j50WqQGAAAwAU6APEQ22Beaj4rAhxqEQ0tYUw8XGWBOdhcZrQ6sJoHjPmAuhQlerYiSNMeoH3RglvQcH25o1fqI7/FrYYfJVmj16bzK//tSxCUACkiNWay859FRGSz1h5V3Eo38FaVSG6S6BiTRKSKTgBMy7NKxUi0GnZwPQzLcgP9n796fwjF96tIX2n3puUWXuLXPwiWvX7dG56GHj8iDH6k+ExFqMcw5d6+iNvvxcVxQ1a9r/n/I3k8u5sZqjAYBADJCcwCsM1DBeh0jCp7fb5iPGNiUvwqcCGUenKnQAzl/+hFRJj8TGDMWWydLjF97Vr3z9eT5fhAPHEgsynMC0e6KG0T567jwtcLoHxE6oCAJIu0Ae5feDF13zAP/+1LEL4EKGItXrDCtkToP6nWWLlKDQ7UBvDtVEOUpLXIy6Nuz3HC4k/Jq2bXX7rfcNRJcybE42UOijAzjpshlvjgqQKuLPrdg1h2/LBsSNNMF9FFiarEKjEgU07AALxrXAI2rwEsGlcvBmN6UENrVENKnKl3i8B8bsfzRwypogBO6iSp7kBMBgGs7ZTS3lWf2KtUyptdxQ0Nj6GJL+pK3lDsGjEcmtHMEpqFNC2vthYiGouklZd1FNIjKIuffovCbb176Il3rD5zUZ411qGdbI//7UsQ9gEn4u1+nqRMxORfrNYeVPmVfsygYWXhIPfAUvsviTumZylbOcju6vuVWHugysYXLOkkIjAySCRLbjACLGcmUtvjgVLJMicoZAQ4MAWNKty0EyFY4+lVgB2k+ZZkZF18UYFbXf1u/zTTWSW2b52CGljBzNwYPNqVZ3rdWUYp+aXnWmBboUIAABGegBikcsusSCDbvjnLSgoweWzCYhwhMZadkp8VPMfNvsb9VshsFwmvYuzath5sM2JIwfd3S+sxa7Uazze2UJ58q+Xw6//tSxEyACiCvUaw8q/FNjibprLGYFFtMLC5O1KAHlvJVgMAAF78ABLmaglNwxSA5Sk1Y3TSHEY2IhQFCv1H+SNdJtU0uxj8deIDO2pqtnR0BTKsNiPrbm2hJ/E0KI6GR6g/IekbD8//VY02hCTjaCTXz+MIABEkAATYrshR8MjAjgXkFSy15QzBW+FALWRKWCjhEKKpH0uhbLn4fpsJ6DIE5bA03CGRjRjMQDYG9b5QfG65Ie1+wWHYsLXgMJNlaxz4TI9IBgAJg51Xw4STI51P/+1LEWAEKUJE3TSVyiUWOpam8oZjqNU7sOggFtmjQXBhWieh4yxJdToyYFCUbsKk3E0bo6OFBMWldQZOjGjDAiKxrpIBZFW9+fKmqz2zl3rf+otvAKEsALyPT/Sd48BX1SSMABsx4eTWa3OUBd9oUvtvRCBSiCuQoY1UskncYqDmLXGVwJBZQZ2hpBQJNQAg2RW7zgM4X3t/meQigIdFJXhEQXE+UI7gokyv01QDGWmysAlSu1PiGhNO8gj1L5PG2Bcgq0fydhecYHnFMx0u9H//7UsRkA0pscSBOaelBPxIkiceOUGe0yO4WUfOs8uNKxJxGx4JA0/u1o8/oXY0oC4VMyxnQ/3/6Pbd7//NWf/eLLFMFVtUQQBmiwhw+aED4QDOgXOHQwKoRr4er5MBJYErS9H5Nea8mg36QpyLLHThvWDBXGHZCEmHEf4u/ON5i0YIEKIXIjentr/7///U3/9AWMhIOQ3L4iEhjpJGk5QfsS9EnZGshPcDvlPrvfcMNQAoI8thmUsvjRKRNqCxFQqzzGrHewO/7EkVevnrzr/1U//tSxHADCeR3JG3k54FDDiOJvDWY75BzlVf/2fZ/93//7PrMiARRe3KySiQEIA5Ytx7Dquaa5kKAHJgxQaiY3UFUP+JCv3dWDnZKGETtI31aiabef7nONYhqT63cTSjHbMNwZ2FL5pyvf/9v9Pr/9enV///1VSkAB5Mb40FzRYPOlngDhJw4kxoVA5ggSmlgMhaHAtMgCHX2LfcKVpawugBpdPVDFTTBpFGawbHwa/kBck3+RTv70V6zGzT+n0f2BCxktJya7UChCY8un9Lp8iT/+1LEfgMJyG8gbmnlgUeN443MnTgPWetDuIijwBbxq18iWgxh0Z04EnurK7chOuRWKj4iR+IbPAIis3GLeRPWjI2f/pd5D+3d/7v/f/sqAIAANspOycxvoIzDFc7l5Q4QzUcVuojYC16bPBKgmCtNv3SsTCmuq8t1nFo3NwiPGdAOH//HNnfu/+2z/10/8byfKpav2f23MCAiAIB+bTblntKyhAefDEaORxmUYZuTW7OsB62Z5pf7xl6vkZHicQi7UA8JH/1Htnf//s+v6NP0/f/7UsSLgQlEcRhOYWzBK44kHbyouD//X9IlAAe3JLQkABjB5GyZ2a8A7kSVw03jCI9MBiIeACVzGBobzwB+IeXg1aSY1QFYkXRUlk+KWMB1ILWLMJs5xZpP+Z+oyQpJI9Oj/F//qAALBEQEYoFQAFVUwkwa/kIDFkCEgoOCczsAgQJzcQKCAQGHEAAweQrjjSABIII8I8G6EkCUIQSVHpU10caIEsnk69ZbxkScUsSUp4ip9MV/199z8d3XX/+fbf/vH1Hn1TOcPl9j72K0PMoQ//tSxJ8ACRhvI03g5cD0jeW1hh2U40m2Pq3AgUc6UUlZ920joz6bzaX////+bgBJNIAAAABkUDV8qlP+dRKZAi3aVf9RC2vHv8AtC6oyXhqwQ0POUjJPhqgWwTmIKHDJNXiAgYDC/glwe2ZOpJ/iuCkhaR1Cghld1/5WIMTpXKxaJ9etdf8rk4RcvlwmzpQKa616//lEsHS6XjUumx41P6tWr/+XDxuXEC+XDhmYGR04XjFSqv///9IvGp//9q5MQU1FMy4xMDCqqqqqqqqqqqr/+1LEugAJmHEWVciAAhATo1s48ACqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7UsSvgBIZoSLZqAAAAAA0g4AABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\",\n  duration: 0.956,\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.956,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "jingles",
      "pizzi",
      "02"
    ],
    "keywords": [
      "pizzicato",
      "plucked",
      "strings",
      "expressive",
      "distinct",
      "successful action",
      "level up",
      "positive alert",
      "ui notification",
      "melodic",
      "moderate",
      "cheerful",
      "progress",
      "confirmation",
      "app ui",
      "game ui",
      "feedback",
      "jingle"
    ]
  },
  "categories": [
    "jingles"
  ]
}