Skip to content

About

A library of drums patterns for music lovers 🎡 - Angular 22 - Scala3

Topics

Resources

Code of conduct

Stars

31 stars

Watchers

0 watching

Forks

Repository files navigation

πŸ₯ Drum Beat Repository

CI License Good First Issues Last Commit All Contributors

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

App Screenshot

Requirements

  1. Scala Engine ./engine : Scala and its build tool sbt
  2. Angular Application ./frontend: Node.js
git clone https://github.com/Babali42/DrumBeatRepo.git

cd DrumBeatRepo/

cd engine/
sbt fastLinkJS

cd ../frontend/
npm run start

Open in codespace

  1. On the repo page, click the Code button β†’ Codespaces tab β†’ Create codespace on main.
  2. A Codespace starts automatically. First creation takes a few minutes.

What happens on startup

  • angular-frontend: runs npm install and installs Chromium (needed for Karma tests).
  • scala-backend: runs sbt fastLinkJS and stays alive.
  • The Angular dev server is forwarded on port 4200.

First sbt fastLinkJS run downloads dependencies and can take a while. The Angular app needs frontend/engine/main.js to exist before it runs.

πŸš€ Quick Start

1. Engine (Scala)

Why ?

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 !

Go into directory

Open a terminal in folder : cd engine/

How to test it

  • Run all tests : sbt testFull
  • Continously run tests : sbt "~test"

How to link it to Angular

  • Build a js file in the frontend project directory : sbt fastLinkJS or sbt fullLinkJS

2. Frontend (Angular)

Go into directory

Open a terminal in folder : cd frontend/

How to test it

  • Run (angular) karma tests : npm run test
  • Run vitest tests : npm run test-vitest

➑️ App runs at: http://localhost:4200

Contributing

Everyone is welcome β€” devs, musicians, designers.

πŸ” Find something to work on

πŸ₯ Add a drum beat

  • Pick a missing genre
  • Either:
    • Comment on #270
    • Or implement it directly and open a PR

Contribution Workflow

  1. Fork + create branch from main
  2. Make changes
  3. βœ… Pass all tests
  4. Open a Pull Request

Contributors

GiaHuy0031
GiaHuy0031

πŸ’»
Kireo
Kireo

πŸ’»
Konscept440
Konscept440

πŸ”Š 🎨 πŸ’‘
Linasti
Linasti

πŸ€”
jpeg729
jpeg729

πŸ€” πŸ’»
bLeclercDev
bLeclercDev

πŸ’» 🎨 πŸ€”
Pelin Engin Duran
Pelin Engin Duran

πŸ’»
Slaiker
Slaiker
πŸ€” πŸ”Š
Thomas Barbier
Thomas Barbier

πŸ’‘
Avnee Dadhich
Avnee Dadhich

πŸ’»
Draoui Haroun
Draoui Haroun

πŸ’»
Prajwal
Prajwal

πŸ’»
Harshvardhan Kurade
Harshvardhan Kurade

πŸ’»
luisaromero
luisaromero

πŸ’» 🎨
Divya Dattaram Mhatre
Divya Dattaram Mhatre

πŸ’» 🎨
kirti7617
kirti7617

πŸ’»
fraydo23
fraydo23

πŸ’»
Weza Mwiwa
Weza Mwiwa

πŸ’» 🎨
Maeva Innocent
Maeva Innocent

πŸ’» πŸ”Š
  • 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 !

License

About

A library of drums patterns for music lovers 🎡 - Angular 22 - Scala3

Topics

Resources

Code of conduct

Stars

31 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages