{"id":39766775,"url":"https://github.com/beefchimi/earwurm","last_synced_at":"2026-01-18T11:45:38.234Z","repository":{"id":65493452,"uuid":"593347558","full_name":"beefchimi/earwurm","owner":"beefchimi","description":"An easier way to use the Web Audio API for playback of UI sound effects.","archived":false,"fork":false,"pushed_at":"2024-12-12T03:08:13.000Z","size":807,"stargazers_count":13,"open_issues_count":24,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-10T11:27:37.797Z","etag":null,"topics":["audio","browser","sound","typescript","ui","web-audio","web-audio-api"],"latest_commit_sha":null,"homepage":"https://beefchimi.github.io/earwurm/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beefchimi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-25T19:48:32.000Z","updated_at":"2025-05-04T01:09:35.000Z","dependencies_parsed_at":"2023-11-26T19:36:09.644Z","dependency_job_id":"71e47797-cac4-4a1a-8be4-b4c0f8176563","html_url":"https://github.com/beefchimi/earwurm","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":"0.26086956521739135","last_synced_commit":"f8ee82d47a7013cc3f9968add13444e6419d2792"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/beefchimi/earwurm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beefchimi%2Fearwurm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beefchimi%2Fearwurm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beefchimi%2Fearwurm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beefchimi%2Fearwurm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beefchimi","download_url":"https://codeload.github.com/beefchimi/earwurm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beefchimi%2Fearwurm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","browser","sound","typescript","ui","web-audio","web-audio-api"],"created_at":"2026-01-18T11:45:38.135Z","updated_at":"2026-01-18T11:45:38.220Z","avatar_url":"https://github.com/beefchimi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Earwurm\n\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)\n[![Mutable.ai Auto Wiki](https://img.shields.io/badge/Auto_Wiki-Mutable.ai-blue)](https://wiki.mutable.ai/beefchimi/earwurm)\n\n\u003e `Earwurm` is a minimal-scope library for managing `webm` audio files using the [`Web Audio API`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API).\n\nThe intention of this library is to help make it easier to add sound effects in user interfaces. `Earwurm` solves for _modern use-cases only_. The scope of this library is small. If you require more capabilities than what this library offers, it is recommended to use the `Web Audio API` directly _(alternatively, another library that offers the features you require)_.\n\n## Getting started\n\nFollow these steps to get up and running with `Earwurm`.\n\n**Installing the dependency:**\n\n```sh\n# Using NPM\nnpm install earwurm\n\n# Using Yarn\nyarn add earwurm\n\n# Using PNPM\npnpm add earwurm\n```\n\n**Initializing a global instance:**\n\n\u003c!-- eslint-skip --\u003e\n\n```ts\nimport {Earwurm, type ManagerConfig} from 'earwurm';\n\n// Optionally configure some global settings.\nconst customConfig: ManagerConfig = {\n  transitions: true,\n  request: {},\n};\n\n// Initialize the global audio manager.\nconst manager = new Earwurm(customConfig);\n```\n\n## Important context\n\nBefore getting too deep into `Earwurm` development, it is critical to understand the following:\n\n### File formats\n\nSince `webm` _should be_ the most compact and broadly-supported format for playing audio on the web, it is the _only format_ to be supported by this library.\n\nIt is recommended to use the `opus` codec for any `webm` files used with `Earwurm`. However, `vorbis` _should work_ as well.\n\nTechnically, you can still provide `mp3`, `wav`, and other audio files to `Earwurm`. Just don't expect this library to make accommodations for those formats if problems arise.\n\nFor help on how to convert your audio files, [check out the provided docs](./docs/conversion.md).\n\n### Web Audio\n\nThis library _only supports_ the `Web Audio API`. Interacting with `HTML5` audio elements is not supported. Long-playing audio files are not recommended as inputs for `Earwurm` _(example: full-length songs)_. This library expects to playback short-duration sound effects.\n\n### Other sounds\n\n`Earwurm` was built to control audio files only. Generating sounds using `Web Audio` _(and subsequently controlling them)_ is not supported by this library.\n\n### Compatibility\n\nThis library was built for the web, and _cannot be used_ within a `node.js` project, or _(presumably)_ on a server.\n\n### Network requests\n\nAt the moment, `Earwurm` expects your audio files to originate from the same domain. If you are attempting to load audio assets from a different domain, you may encounter cross-origin issues.\n\nEach sound asset is obtained via a `fetch` request. It is possible to pass an optional [`options` object for the `Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request), but this can only be customized per-instance of `Earwurm`, and not for each individual asset. If asset’s require different `Request \u003e options`, you may need to instantiate multiple instances of `Earwurm`.\n\nIf having more flexibility of network requests is a feature you would like to see... please get involved and help out!\n\n## Documentation\n\nPlease see the following links for more insight into using `Earwurm`:\n\n- [API](./docs/api.md)\n- [Design](./docs/design.md)\n- [Examples](./docs/examples.md)\n- [Converting audio](./docs/conversion.md)\n- [Contributing](./docs/contributing.md)\n- [Resources](./docs/resources.md)\n- [Roadmap](./docs/roadmap.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeefchimi%2Fearwurm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeefchimi%2Fearwurm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeefchimi%2Fearwurm/lists"}