A library of drum patterns for music lovers / Une bibliothΓ¨que rythmique pour les mΓ©lomanes π΅
Welcome to Drum Beat Repository, a web-based project for musicians to explore and create drum patterns. Built with Angular and the Web Audio API, this interactive tool delivers a smooth, in-browser drum sequencing experience.
π Try it now: www.drumbeatrepo.com
git clone https://github.com/Babali42/DrumBeatRepo.git
cd DrumBeatRepo/
cd engine/
sbt fastLinkJS
cd ../frontend/
npm run start- On the repo page, click the Code button β Codespaces tab β Create codespace on main.
- A Codespace starts automatically. First creation takes a few minutes.
angular-frontend: runsnpm installand installs Chromium (needed for Karma tests).scala-backend: runssbt fastLinkJSand stays alive.- The Angular dev server is forwarded on port 4200.
First
sbt fastLinkJSrun downloads dependencies and can take a while. The Angular app needsfrontend/engine/main.jsto exist before it runs.
This scala engine is the core of the application, with the command/state modelling in a functional programming way.
It's my first scala project, I'm open to feedbacks, and PR !
Open a terminal in folder : cd engine/
- Run all tests :
sbt testFull - Continously run tests :
sbt "~test"
- Build a js file in the frontend project directory :
sbt fastLinkJSorsbt fullLinkJS
Open a terminal in folder : cd frontend/
- Run (angular) karma tests :
npm run test - Run vitest tests :
npm run test-vitest
β‘οΈ App runs at: http://localhost:4200
Everyone is welcome β devs, musicians, designers.
- Browse issues: https://github.com/Babali42/DrumBeatRepo/issues
- Start with:
good first issue
- Pick a missing genre
- Either:
- Comment on #270
- Or implement it directly and open a PR
- Fork + create branch from
main - Make changes
- β Pass all tests
- Open a Pull Request
- Louison for the ideation of the very first version of this app
- Etienne for the testing and the dub beat pattern
- Damien Musy for the blazing fast mobile ui sketch !
- Code: Licensed under the GNU General Public License.
- Non-code content (UI concepts, beats, etc.): Licensed under a Creative Commons Attribution-ShareAlike 4.0 license.