{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orc-female-open-fire-02",
  "type": "registry:block",
  "title": "Orc Female Open Fire 02",
  "author": "Kenney <https://kenney.nl>",
  "description": "Orc Female Open Fire 02 sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/orc-female-open-fire-02/orc-female-open-fire-02.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const orcFemaleOpenFire02Sound: SoundAsset = {\n  name: \"orc-female-open-fire-02\",\n  dataUri: \"data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAACMAAB1iAA4OFRUVHBwcIyMjKioqMTExODg/Pz9HR0dOTk5VVVVcXFxjY2NqanFxcXh4eH9/f4eHh46OjpWVlZyco6OjqqqqsbGxuLi4v7+/x8fHzs7V1dXc3Nzj4+Pq6urx8fH4+Pj//wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBNoAAAAAAAAdYn+x69wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACR0vF7QSgAGcpyn3JoACYE2iMDjRIAkoFWb5SAc+//93/UhCN//9f5znOf8hCf//yB87kIQhNTnOd5DnkIRlD4AAABA4RTiYfDgcDgcDgoQ5/wOD4Pn8MS0SWW2W222ONNBEEgADjguc4Cpif0GKaKDImEnwbj5EIg/hFkcLMEqH+KMOQUEocI8GaJKUXKGWO5u5vcyEnGtTR/SJSpUSMM/53SuRe57jgc1mJFw+1tap08//uh4eQl1fkGU0oPnb7/W2u1ogEEQ1Jf/7UsQFgAvE+1O9hAAZb6TqfYYN25TLeo7mQgsJ5YlDsBRxMNucvuUgwGsvNpcv83N3aDKBsowYXZqCLBxBNiGF1iUTiUepd65pPqnWe/+oSOtca/3/x8a3X/Nd2mPjTTgEITstlQByKzozHCstbSABAOlFrUtbqymCm3rQNLLGtyyCFlL4xGQBgRyeVTW2kvY7H/HThoSWmp/NLCKtwuHG6CYudhwQjLf///OFmzyTUiO5ev0t+fJ/XNPO6t3NCDwY7Bueyb7amW+2iIYCCQmH//tSxAaAC60jVewwY8l5Jen89I2hodKYE1waC8DZPYK4cnIHQbjmnYfJxWW3bvSgPLMQpO533zMrkEvuzk3Yxk5z1LQ88vhzgYiYtDJRKcytFoRt/+XkNTPmmMOLrvX6ZGIwLD+vM7W2ys+0jACAXuKcDe5vxnD1D0DzlkUqDUEAlJMyKi7232cZrcVxFsJTMHGfyy5HhD5WFmQWJ9e5Fua/l5T70gcI+GQze4xWP/wdM6RgiUxTAxhqUVtGpCqgbDGN2mpaaodVW1tgBAlloNX/+1LEBoAL6RtN55huyXUla3z2DTIS0whBR5ESmo0GAsNRC0JAaaKcFglSc2Mpatso3CwcvvOkfBjI5wlVAZy9IzrhHDBr/8hqtPhmRCHMehtTUKhOefg1IMT0Uwt2TQ9keYW9u10jnhnVnNUSxtElgECcCABGBgB2mQSEkaOCUjmYhoziBIIhQcHTD+u+xScKq9z9MiI2TwholO2rdCn6BBDHn/T9jhF//53IufLvJfKPe876TKfCO0WUlcXmn6bAhiEgit95aaRlfWxABA6R0P/7UsQGAAvZIVPssGtJbiAqvYYMuAC709mfUdt9IDYKqtRsvgijkerjAuNxLNlnFzDY/sTiS9qVxzWinGPoQjI2Qv2o3LMzz0QmP/vG6kL/K03Ol3Uk+dVjboVM0OAiwtyZSXwZvSMLsmV2VR190RIYExlyFyLkbDzgBiyOA5qTlSWTVOTrqnvRk1tfS1vOGsAPVUIX5OV+eFBsjujVi4if7uo2Tn/5+VX7xjsEHfIOYYSc4TLDv5oDCCExKEI+hihceqrHV1aFNC/kCDyotU7h//tSxAaADBEpUcwwZYlkJGmtgw3ZahHh5Q4AIRhdGPaCqPzEeL1Wr1ZjDBQtjPEghqQWgRHhqcPMiBwYyqRUOlRMT/MlJk//Oy30yTWid1LY+xiPPLgErmFYOQ4DDKJWUMcVOqQInUocVBpAhgSCZ+5hbQQNuKr4S2RCtsTeyAzzQJ9o4KJKQ1Oki/d5p4OkDoETnJkSodTe4NnXikdlTv+XMuyT8m/437N8maa9sh4oFNuih0uFABW1jy8NbSDKTcpqWyVrJUcG+s4c3kBqLCP/+1LEB4ALwSNf7KRPCYykaz2XiXlE7lBRdrr/DCB1DPK/QgePlUvkGNrtWUYxYhLMVGiN+wIhkC09wbNz/VJWc7tOcX/5mXvlI9821bv73squt2TRfPyWvo17HY5CEqqjbPYZ6gYEIEYxQ/mqEJYYU5i/3RIvFIFt4GHQjojaxBXA0QQDhuxuHPVZs4H/v+U+rbzYV5BsDxZK1BfFtzaxqCt+uyv/9JURVd3a5K3HoU1aYs9ldW7OV/n8rMkl3qRjUbSwYGSzVbTUKX2IfJJRiP/7UsQEgEtsyWmnnHNRbyStdPSJ4mrB9mAC9JoEOc0ODLjlxJ+JsHHH9G8+JmF8tDsesLeaGyIcER4Oyo3djXOPiohhIA1uIQfkVD3069vn9Ipx4s8YWraNKTLRrqxQCBQYeNMmiUS+mIEKMoTMzPCLMsjLXipii4BGHmtm4SyfTADhvJlGDn8FAU/2BQ8bCjGMzhqmkndtvqGdux2QKDRDHKc9ruTq5Ci6vbf1RkaRVK10efRxYQoJmw7gmyKJAwuBNarYIAktAFyNwVYxDLS3//tSxAaAC5kva6wsr1FepS19hBZZoi194uqoNNxobpdomLaj5wCozpiAZn/gd/8ujhQ7OyH0mfHs0i7TTE/2c+v0bXPvqpCqxgR5n9X9aanQrIT/MeFEPU7qUPuMCwKQBGMORi90EAAEHZAT/PirYjrpNk7i+HXicynm6pKNcEkkODCMuw5YikK9gAAbhJDl1mg6M3hn0kn+Wb///epd3m1IVGMVG1PZzqfa2hqot/0adHSV7EHSnKGjHw+VzQUAAQNCCvY8KyDdEkNiRaUnJ+3/+1LECgAKEGdr5+EowV+h7T2HiiWlWcpiq9ncGSfBpUCXwzoPZ/xMtt9FSsKJZs7ToIlcJ1jF36VqRLcXHFQeK9OzPNCj9DxqDzDjAdDwaGFLwJAAAEVl2tFDeomshsU5DS6uId4F12mQkp5XPmRGOdyxHLvr/lxi/SkIS9jZhjGjf3PKDI8Q8/te2XB/4L19KZ5/7KlAF9UTqV/TIRnl0Z/64Iy/dLpCaog1EwMUNEyEhiM4uxiE+FYniN6LqU/zQTgOYzY0gSiPqz0Tj7h++P/7UsQTgAr5MXXnqLL5UBAwvPWhzsg2VolkstNHaHhmrbT/od8ieh3nFjf/jDc53SlemYVNWROX/XoH1Sdrig8XKoQQOjKlINiYUWt6tJhXKFaDhN8+ixFxyTwYxOfKLmGSN42ZE99h8DlchkEswYAgEQldwLOuqEj8MHjpLXmtP9EDJZyzJhwCf6EF8nZp8Qeoy1oXUh4QKkb480IJoVBEJrgCDlnUTY/tleICGNtrDAOtwOkd56X7g1CLMwAcXZsI/Z3qHjLOC8eKmSZ5ot0d//tSxBuACkURcYewsLE8pO509goL+31nMXVvf5JgAFift8z9ULEk8/9oyxsJhtQP/PrCAsgutuhxV0UtwsB9homVQPBrAjG0QJUlBewLAnaVpp8H8n8J/fBvZCWy+JM1fJ/qzaXdmMpSv/+TKxNl/5W3oVEZd/JXmIV7wgx06CrZFyUDAAAE7SYQDwBbXIubCVuA8bh5Ny4OmL8v9H18jRc6eBFH0kp/bhwdPig/kHC4Mzt/VZcte+ZnbqfI3tSKUz//8iXv/65imqGZacQ6EDn/+1LEKIAKgPVl7CBSwUAObb2HmHhidhr7SSMAAAAV8jwCNLmjKlQtr1HJg91M9Ua4J6s7jlXZWqcqA5WDMZDccCQQ2M1lMjnbDe5NGv2hNM48nh7kAw3+AQy8nVKqOOhq2VLtHo5dK5dHNSMREFTWTBFjyYxhiikIIjT1cCwk9Ug6lG/2SBSsCnY9x54ulDZClXnqVGS0wJuV0O+ZehAbsDEBf+quqAxGOsuPOHDw2Y5KVc5T1HBLgtLq6MiGhFKSNwbQixQkkampJHZIgZxIC//7UsQ0gAosxX3noE5RPpPw/PGKXpRqLg4be6FvIi4ZT1D96PsQEyu6JNfdiY3E9W1W5X9WOYQY+WEwlD7ygfaoQyMs7rEpp4MuFuyS8UUTJABVkvFr7KBA9lN5Fr0A3CmjzcBYi/pfPtrpG0DJoobExyV6WeKpOpf78xyP5hMICYGL62MPBMFUjQ5dW1TzaJF8T03EUnbSYJtgkQjI0IAAkioOydIISmcmeWq4Q1jSkJ0dgsMzYT8HIeesnJvotYHFqdIVcPLHiIhJwsz997Ur//tSxEIACai1d6ewrJFBE+788Ype8pxQCc0hxYeYVBwcETR0V173jj8DcMcZHOrAkEIgABJKUFoWPry3XZ7tK8gYDq2k8EbVUziXFzzBXMf5SsdhqoY9YLdE8aFTNsAUINKy6KRGf/C1/MlIdquTAjdn7f5Pej6OEkgkc4qYySSbBABcbnCtIZs+CHoVBMFcl3OV8r0e5I0xifenvbxqvTx9cE4qRlO97IHU6lv3fsk/p5FRp0/ZTp6OsMrEHYjJRHfr//0Tr/uQBIttSs0gkgD/+1LEUQAJ4RFrp4RZETolbjT0idMAXE7gNkNDZVCJJaKOVWrSUfIXaMuzpWWcsuMcbUjQdM6FSVe75mlQDVjnRu662L2dic2FAnf/Kv2M1wIScQYzOd1VNf/1eihxNLkTlJtFiSTQIALZDgRLHooCmUchVlhwZD08371zRqxB5dpsoZ3NnjgWXY11dWWQOtSt7r9y95KmSk6On1/UjXVTqq2ZFWv//hzKKIdBUxJHLCKM9TkFrRJZIAClbnClJrCF0RyKukVOnjFVjxNrxE8NSv/7UsRgAApVD2+noE8RRCUutPMJ3wksowabcSFjiSsTu7LYqHZm9E/dHmCv7lVyX/+yJtY6MWWlalten/57ls5bthgYoBMcYfs9KKTSACdrcwC8QLBYNB86PA6A1AoJ4ZpxYTg+dTqCqtjP39gxKYVq90GghhCZsGD6Znrc877IwinnSMLfak8EjxVzlHm0M8+ogOOHwk2LgMRrDqqyNqIkkyxFMJFDIZNkoeKiLm7OIqyTMyKUF1FWrbWAu1hmvdSGARQoqryTlq0gqtbX3Wr7//tSxGwAChUxdaeYTJlKE650wYpi92rKwLv40//DqidzxElx7b2LSXBAPixYYFS+RibhJAA3oImV3OQkrVAO0a6DFWDEorRIZOWivc9FBNFSdiev10NykapzUAxkA02eSyK2nz2TdnqrFNlT9ul9EZHqdXsxXGOkVzaIv/7TC3fR+equSIoggyxJQSM9D4ugW8JhpLo7FdMUrqSifQL1pXFDeeThQ4whPindGKOQuOb5lKWyZJxJ0atj6/v929VKQG15+R1zXdmP27ISzN1ZEcj/+1LEeAAJ+IV7p4zSsUgcbjD2CTcQL1puGIkAAAuRuMVKeqBE2LmciC5f2pHg+O46nDY0HJOKAMgddNftmyvk+LLLfle6mBsw9nJs5f1qjUVtdkd/2lM9lK/xnmbfM07baByz+YwoUMUnbnUq0kaSIRV0icHguXiWQB5Hs9RlNMZmY7FVBVoYKoQGSz74cwsWQL3I8Q+Z8QwsEfc2NOjPdTCOtLV602dLIddWexsv/RFNu6oLJm3ny+417EcGRwokkAQAC5I5QikKhkOWFcnEEv/7UsSFAAo5K32mDFF5TiGttPYJa4W5mVMY3FKnmExzKOSUuwPUVj1FGEwr9ItHu7FjGZSXzuhHOy6fpnoSlcFIRkpq/Wi/03d3cZR3aZBmGG3YuIqNtsgIAzWW4MxapN4jkQWJzSAmxfhICZp1jXTM+UiigJGErWq/z7SMNtf9zJZni7b7x8zVXGxUVJ/dEOqadN1/sl6fWikFECLjgUt5xN77yfz+d1skgAKW27ABALJM4F41iiiKoW2dTFEu12voY3RFi74GInRTiYkSscgi//tSxJAACljzf6YYT3lEIG208woS98KKolW+TleT9vod7OeSru5n9lur9f2dykyCzsehjKNoZOsag9QaqaSABATtsuA0D4Jp0kBYyRFshDWuLpeSHTZkdJcUKrvd/AZECWQLKE2VhbH/5bFuhrye3D9+Sm5vewierlS59f/9joQjjoysWZDDuZ/VAUrY20QCAbbbeD4MJCBjjkh0C8wGY86AIL3izcqID4/qDl5p5doDgKqtcQZlwwYRlECTQOaTHIyMyaznz+IRFC0826WYgjL/+1LEnAAKROdzp4xWmUOgrrTHlDsje3RtGhc8iRPGTZr1ksk2QAQFLJLwIHFSDM8O8yUGuB6HqmGVwE9iQUlx4uTsN5fu9sjrfSlmI0zlFi1KnWiMquj0f/2QydHoaxymKYnVv+n8tTKa7FcxIMzZHVXwYBaaWIlgAAguIksF8Shqs6ZF5aejzQpDkkJUUAuEgQR1+Fa/u06kRiR1cb1xk5nECsEy91pceyVc9G1/7T92o6PRnTTV7bdKU0Q5Y5nKVBAs4hwmySl67kAABRtyiP/7UsSogAoFDXGmDFOZS5gudPYMeiUBfSYmCX84HTQulwulYWMyUNUq7JxQmqGrvnKV3GIsYOQ3tQEbok3rdqXkVaf9Hu/ugMwcWdGKX++vJzu9jyVHW4h9r/o+/DoOsbLIyQSDK0kwiyfEgdEwdBMXCQOZuWx/EIlEZiKAzuuVV3S1ITTE1iEYI3zxoga9irgxTyrmt9hpmME5AuH7FX1EQ+OPtHBA6GFWvIOiwqRTbUYAAALsTdD8mDIYKoS6USKHFylXbQnS9G27NKxC0CUW//tSxLUACnEPb6ekS5lMIS10wo7ujTe5sy4hIUXlAxSrs99r0jnWBQk4d9TlXtkVzCi344UbJGJB+tMxY5oEDdgMsJHkMCxpCC0biQAQcmDOIoni3GmXEokhQPxmHqkmBiJBqgGVxGMkJYPTm0IwgYz5NoPPIirGfcBAmDcK/b/n0lLydrtS0Iimr3nAcANcq0dPIEBS+r5J6ZLIiQgDLZLgwidIo+C7nGTE3yWgiSWy6KxxL68d4Vp6gEmlM/kFM5+hs3+TsEW80Qa0uT/v5kj/+1LEv4AKQQVnR6RQmT+OrrT2DLb5KdH96DMztOI5mjghlUH/pr3AAOIqw1f4Frb8TyKNoEEAyRuUH6ei8giTiSk6LacBNlInoR3xk8dbR4CCeR0H7N9JJSITy8Pq9V/uH0xjoFGMKm21rpoybOpn0RmWtzyx3RTvt/kIzMjGFKkEGLJB0mFqheOdtPG0gAABPm5gUJ2DlqcRqoJVQ1pmTGVOYZIixOEqONwnJ6Wao9vvTEr0UvUnuOGQSX/aSd44IKZct8r/nIyuvRTEySIw/P/7UsTMgIq8nWenpK8RQJntdPYMsrb/uhFckqbB19J2XcuiooMELURVpBAAF2JugNQbgmUhrEeMC46G7AsjMh2DwCAeRKSzFK8h5nSqAZaJGgsKDkmyGtPX18aHQxW7PEunpkOR/7ElM+VEUtj+udTCSIfv5xpwNvOHnaEOjNLJEiSC7ZJgGADCDXJuB6DrMYVqTOshb+xIVYdSFQWA/j0bAprzW3NNMnYxPFRLt9Q2cx29Ah26eYxeqXMYh9LSqxXRyCQsZ7CpvejqQfRxHgND//tSxNeACojLbaewZ1lmn+y08wpbHmibPNlGLUAAAAIynQ0xWmkZ2hKH0Uqm9tw2VvCoYFGVlyJ9wA5a9Zc0xlTK41LaP4k7EgLYF/GbPC5jbwW9MMv1HaflYMKX4RrTBX5ekZ2ZU1OWK3+hszlKSiFR//9e6hSkYWzAoo2X/1KBLVHIiQQArJJhc7i7oaU5jm2zrJ5GAZbAMIiojQIi44GyJYnrfPEhVJVyiobJDf8L4piE1dECMbOldLkyHnQri9EnVkIugCaar/+UiZLSlFv/+1LE3oAK9SVdp4xWgVmf7DTDCiIUUJEmC37vV9ZijKVSS2tlAFWRqByEYVRQIIxyFKw7zmT5CVCrVGvn4X5ChE4ubJY3/fpCPhB5hxKp5zjunVdrYi3N9FKMHY5yuYenS9kDTIPOYkzFT/5y0KpCViYaKhQQFNHVFFKPwAABZG+DmPIeKuPwrpx6m1ekO5bYFComobyhLIbgdp4HMn9stXb5IEGJWc5+yp9UplwT7XDvakxO9Lz/yp6aFEWGDdkhQ6mJFsCf0N//e2t1RzO1lP/7UsTlgAsQ7WenmLERnaCptYGLEbIPEta8uxpNJ2MgAABut4OIpRwq45T+ME6TagHIvIwyTfVypwLqNBFapZuVrK9UrcNMtyMQlPLx2BqWYMGd6wPoKhqNF/ab6J+V/tNjnqFNBkPrBxIvWfgoMTa//k1heZLnfhQ7M5Yprw59PIhea1VOuNIIAKKN0KM5jHbjqRhzocTZ+BQchIXEhYQEa+43ZL5FQGPu0uXAUDNGwr30tLQXhwpdxhuHxIBeR+n+pBQn1/6uV6dGa5z3ar0f//tSxOOAC20nX6ekSdllH6109JXmLVdJc7jXdSGRKqLj5Bn1bbYsAAAx2Tgf4mQ/zFRBM1g0jFU8RFqE+ILGyGuynEYyYPK2pp3sQzTkGyHQ0sSFZrZlR3zWUorq/lCa6t/+hxUod9St/SzP+1Wez3MarY5m6Kcn6oKFsG0ZpWVZdjaWUBAAAB2JyBT4WRmktPEtorjIdMdJHZFU7XceI7hFQ9GKNI91iLZ7k/TXSbxVNdYqIYrAAu/BFyOTPZxgKC6XRu9WLABQf/+hHe6Mkjb/+1LE5wALuQVPR4xYgZ2k6XTzDwHsmWrTMy3dSuRol3BF/RXwb1JWwAAAdVAXJARzzP9B8We92oEzV5Bz9NFQQSABdISrAvxASDK5QvrPGAqyOIY1rENxYo0JXPqwI0EzovygMV/1/9IoOXMhN2lwasYFRS+klBs6dASIkARCHQAAAwFEB+ZBZrUtdwZ12mHP9g0mH35pbzUl8xsSazFfUPMukfxKLTbJSwKVPGNqZQumKA9gzBnpQjA4oBN2Kv/Q4x19lkMt7Gu/wXX3KBJl3f/7UsTiAAtlJ1ensKnZdyHptPKPIcCxUVDeCbMCJpcnIaQeQ8FzqwSeSlqgUNzy8EUgbYaGglMUSJABMv9+fltE5bmpGhAb1BKpbZq0jTp2mr0iqTbbAUAoFP+Eze3/UDMFy5jgKhn9jXoDS1LaH+DGXWUoToeoIdTKCm5QyDpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpTGkooatexVMoqK68K0MfJkAJRkA5i9G6A//tSxOOADA0LQ+eYVklhk+exl5U4UwEY+eKwjCkfTo+hUnXWajOXF28W/MolQEEBKXN/0UszhQEkJGgqNdCvwmZyxF0KhMBEtjpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+1LE5QELJJ0xTDBUSYqiI4DMDTmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7UsTIg8m4nwgHsFDAAAA0gAAABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\",\n  duration: 0.873,\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.873,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "orc",
      "female",
      "open",
      "fire",
      "02"
    ]
  },
  "categories": [
    "warcraft",
    "voice"
  ]
}