{"id":21062034,"url":"https://github.com/deermichel/soundboard-electron","last_synced_at":"2025-05-16T00:34:35.756Z","repository":{"id":48641697,"uuid":"382150088","full_name":"deermichel/soundboard-electron","owner":"deermichel","description":"🎶 Live-performance music playground","archived":false,"fork":false,"pushed_at":"2021-09-26T14:55:05.000Z","size":1237,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T18:21:33.412Z","etag":null,"topics":["audio","c-plus-plus","creativity","effects","electron","javascript","juce","music","sound"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deermichel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-01T20:34:03.000Z","updated_at":"2023-08-21T12:15:26.000Z","dependencies_parsed_at":"2022-08-24T08:01:45.372Z","dependency_job_id":null,"html_url":"https://github.com/deermichel/soundboard-electron","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deermichel%2Fsoundboard-electron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deermichel%2Fsoundboard-electron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deermichel%2Fsoundboard-electron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deermichel%2Fsoundboard-electron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deermichel","download_url":"https://codeload.github.com/deermichel/soundboard-electron/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254448082,"owners_count":22072755,"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","c-plus-plus","creativity","effects","electron","javascript","juce","music","sound"],"created_at":"2024-11-19T17:28:27.090Z","updated_at":"2025-05-16T00:34:32.419Z","avatar_url":"https://github.com/deermichel.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# soundboard\nsoundboard is a live-performance music playground inviting everybody to get creative and to experiment with sounds.\nIt is designed to be straightforward to use and to be understandable without knowing all the [muso slang](https://youtu.be/DRwpCT_QVsA?t=198).\nBehind the scenes, it is a React-based [Electron](https://github.com/electron/electron) app backed by a C++ native module built around the [JUCE](https://github.com/juce-framework/JUCE) framework.\nIt started out as a personal project to learn audio programming, but everyone is invited to contribute :).\n\n![some nice screenshot](docs/screenshot.png)\n\n## Contents\n- [Build Instructions](#build-instructions)\n- [Architecture](#architecture)\n- [Features](#features)\n- [Roadmap](#roadmap)\n- [Third-Party Credits](#third-party-credits)\n- [License](#license)\n\n## Build Instructions\nsoundboard is known to work under macOS Big Sur on Intel and M1 macs. If someone wants to get their hands dirty and add Linux or Windows support, that'll make a great first contribution :).\n\n0. Prerequisites\n    - Install [Node.js](https://nodejs.org/)\n    - Setup [SSH key authentication](https://docs.github.com/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) for your GitHub account (technically not required, but you have to adjust the submodule urls otherwise)\n1. Clone the repo\n    ```sh\n    git clone --recurse-submodules git@github.com:deermichel/soundboard.git\n    ```\n2. Install npm dependencies\n    ```sh\n    cd soundboard\n    npm install\n    ```\n3. Build and start the app\n    ```sh\n    npm start\n\n    # or compile on multiple threads to speed up the build\n    JOBS=max npm start\n    ```\n4. _Optional:_ After changing native code, you have to remove the built addon to force a rebuild\n    ```sh\n    rm -rf build \u0026\u0026 npm start\n    ```\n\n## Architecture\nTODO: write some history starting from Pedalboard and the four attempts before this one.\n\n## Features\n- One super-boring instrument: Sine-wave oscillator - BUT with MIDI support\n- Channel mixer with panning and gain controls\n- [Here's some music](https://open.spotify.com/album/5u25ZtMjzYBljoh5CDexm9?si=6PVwCStFRuKdPE-YkwHzpA) while you wait for new features...\n\n## Roadmap\n### 1.0.0 (release date: unknown)\n- [ ] [backend\u0026frontend] audio input mono \u0026 stereo\n- [ ] [backend\u0026frontend] configure audio \u0026 midi inputs, outputs\n- [ ] [backend\u0026frontend] piano sampler unit\n- [ ] [backend\u0026frontend] session handling\n- [ ] [backend\u0026frontend] volume meter\n- [ ] [backend] fix compile warnings\n- [ ] [backend] review TODOs\n- [ ] [backend] complete code review (const correctness, method ordering, dead imports, private vs public)\n- [ ] [backend] setup and add unit tests\n- [ ] [frontend] complete code review\n- [ ] [frontend] fix missing or wrong key props\n- [ ] [frontend] i18n: en, muso slang\n- [ ] [frontend] review eslint ignores\n- [ ] [frontend] setup and add unit tests\n- [ ] [org] design a logo (idea: spotlight, knob, fader)\n- [ ] [org] package app\n- [ ] [org] write architecture section in readme\n\n### Ideas\n- [backend\u0026frontend] quick transpose\n- [frontend] first steps builtin tutorial\n- [frontend] i18n: church slang\n- [org] setup CI/CD pipeline with GitHub Actions\n- [org] publish in app store\n- [org] use GitHub projects for this roadmap\n- [org] write contribution guide\n\n## Third-Party Credits\n- [Electron](https://github.com/electron/electron) ([MIT](https://github.com/electron/electron/blob/ccfde6c9d44e64621e2c3a92e5113c1d26e61d67/LICENSE)): They invest an incredible effort to make cross-platform desktop development a breeze.\n- [Feather Icons](https://github.com/feathericons/feather) ([MIT](https://github.com/feathericons/feather/blob/a718a7e9c39447202f703783336e8ba1c8e32405/LICENSE)): Big shout-out to my former co-intern [@colebemis](https://github.com/colebemis) for providing these gorgeous icons.\n- [JUCE](https://github.com/juce-framework/JUCE) ([GPL v3](https://github.com/juce-framework/JUCE/blob/90e8da0cfb54ac593cdbed74c3d0c9b09bad3a9f/LICENSE.md)): I consider JUCE as being the washing machine of audio programmers.\n- And thanks to all the unmentioned thousands of contributers behind the amazing projects that keep this app running.\n\n## License\nThis project is released under the GNU GPL v3 License. (See [LICENSE](LICENSE) for more information.)\n```\nsoundboard - live-performance music playground\nCopyright (c) 2021 Micha Hanselmann\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeermichel%2Fsoundboard-electron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeermichel%2Fsoundboard-electron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeermichel%2Fsoundboard-electron/lists"}