{"id":15135028,"url":"https://github.com/tarnishedstella/keep-audio-alive","last_synced_at":"2026-02-03T06:03:54.410Z","repository":{"id":255611344,"uuid":"850820343","full_name":"TarnishedStella/keep-audio-alive","owner":"TarnishedStella","description":"Yet another application to prevent your audio devices from going to sleep avoiding missed notifications or worse, crackling noises.","archived":false,"fork":false,"pushed_at":"2024-09-05T14:05:14.000Z","size":587,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T23:29:04.230Z","etag":null,"topics":["audio","audio-player","electron","keep-alive","nodejs","react","react-redux","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TarnishedStella.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-01T21:39:32.000Z","updated_at":"2025-01-29T11:44:46.000Z","dependencies_parsed_at":"2024-09-06T10:08:01.938Z","dependency_job_id":null,"html_url":"https://github.com/TarnishedStella/keep-audio-alive","commit_stats":null,"previous_names":["tarnishedstella/keep-audio-alive"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarnishedStella%2Fkeep-audio-alive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarnishedStella%2Fkeep-audio-alive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarnishedStella%2Fkeep-audio-alive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarnishedStella%2Fkeep-audio-alive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TarnishedStella","download_url":"https://codeload.github.com/TarnishedStella/keep-audio-alive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415783,"owners_count":20935383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","audio-player","electron","keep-alive","nodejs","react","react-redux","typescript"],"created_at":"2024-09-26T05:42:01.605Z","updated_at":"2026-02-03T06:03:54.395Z","avatar_url":"https://github.com/TarnishedStella.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Keep Audio Alive\n\nThis is yet another application to prevent your audio devices from going to sleep resulting in missed notifications or worse, crackling noises.\n\n## Key Features\n\n- **Device Selection**: Choose specific audio devices to keep awake.\n- **Configurable Idle Detection**: Automatically pauses the audio file when idle, allowing Bluetooth headsets to power down when not in use.\n- **State Persistence**: Remembers the previous application state for a seamless experience.\n- **System Tray Control**: Quickly pause or resume the application from the system tray.\n- **Automatic Updates**: Stay up-to-date with the latest features and improvements.\n- **Launch on Startup**: Ability to launch automatically when your system starts, with the choice to start hidden in the system tray.\n\nThe application is built using Electron and leverages the HTML5 audio player to play a silent audio file on selected devices. This approach prevents devices from powering down without generating any noticeable noise or static. Each active device is managed independently, ensuring fine-grained control.\n\n### Why Electron???\nShort answer: because I wanted to!\n\nLong answer: To sharpen my skills and get better using web development frameworks like vite + react since im generally a backend developer. It also is a pretty nice framework to build cross platform applications that actually look nice and aren't a complete headache to get going. Ive actually built a very similar application using dotnet and winforms, but it was such a hassle to get anything decent looking using xaml. It was a breathe of fresh air to actually build a desktop app using css as crazy as that sounds. The obvious trade off here being that the executable and running resources are larger than using another lighter weight framework. interestingly in comparison this app hovered consistently around 100mb of ram while the dotnet winforms version used about 50mb spiking to 80mb when using the tray so the difference wasn't _that_ large.\n\n## Installation\n\nDownload and install the latest version from the [Releases Page](https://github.com/TarnishedStella/keep-audio-alive/releases/latest).\n\n### Platform Support\n\nThis application was primarily developed and tested on **Windows**. However, since it's built with Electron, it should theoretically work on **Linux** and **macOS** as well. Please note that Linux and macOS builds are currently **untested and unverified**. If you encounter any issues on these platforms, feel free to open an issue or submit a pull request with fixes.\n\n## Automatic Updates\n\nKeep Audio Alive will automatically check for updates upon startup and every 12 hours. You will be notified if an update is available.\n\n## Screenshots\n\n### Home Screen\n![screenshot](/docs/images/Application%20Screenshot%20-%20Home.png)\n\n### Settings\n![screenshot](/docs/images/Application%20Screenshot%20-%20Settings.png)\n\n## Development\n\n### Recommended IDE Setup\n\n- **[VSCode](https://code.visualstudio.com/)**: A lightweight, versatile editor.\n- **[ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)**: For identifying and fixing code quality issues.\n- **[Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)**: For consistent code formatting.\n\n### Prerequisites\n\n- **Node.js**: Version 20.16.0 or higher.\n- **Yarn**: Enable Yarn using `corepack enable`.\n\n### Project Setup\n\n1. **Install dependencies**:\n\n   ```bash\n   yarn install\n   ```\n1. Launch Development Build\n\n    ```bash\n    yarn dev\n    ```\n\n1. Build a Bundled Executable + Installer\n    - For Windows\n      ```bash\n      yarn build:win\n      ```\n    - For macOS\n      ```bash\n      yarn build:mac\n      ```\n    - For Linux\n      ```bash\n      yarn build:Linux\n      ```\n## Contributing\nContributions are welcome! Feel free to open an issue or submit a pull request. Please ensure your code follows the existing style and passes all linting checks.\n\n## License\nKeep Audio Alive is licensed under the MIT License. Feel free to use, modify, and distribute this software as you see fit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarnishedstella%2Fkeep-audio-alive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarnishedstella%2Fkeep-audio-alive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarnishedstella%2Fkeep-audio-alive/lists"}