A web app for playing Afro-Caribbean rhythms defined in tablature JSON.
This is very much a work in progress.
FWIW, AI wrote almost all of the code. I have mixed emotions. I was looking forward to working on this project, but with AI's help I got a working app in an afternoon and in a fairly polished state in three days. It wasn't easy, but certainly faster than doing it by hand. I know what's going on, but not nearly to the depth if I had done it alone. I guesss this is what it means to be a software engineer now.
- needs tests
- need a way to upload rhythm json
- More stuff I haven't thought of yet
- Node.js (>=18) and npm
- TypeScript
- React (Vite)
- Biome (lint/format)
- Web Audio API
- Install dependencies:
npm install
- Start the dev server:
npm run dev
- Open http://localhost:5173 and click Start to allow audio.
-
Build:
npm run build
-
Preview the production build:
npm run preview
See
public/rhythms/tumbao.jsonand the notes in# DrumsElementary.md.The parts are defined as strings of characters that correspond to different drum hits. The characters are:
.: restx: stroke (typically for bell/clave/ etc.)P: palmt: touchT: open tones: slapM: muffB: bass|: bar separator
Rhythm parts are mapped to samples in public/samples/map.json.