Tabla thekas as JSON. They play from single bol samples, at any tempo. Tanpura, manjeera and swarmandal play along. 64 taals, 117 variations. Each has fillers and a tihai.
npm i @ugfoundation/tabla-js
Try it
What's inside
Tabla
Loops a theka. Plays a filler now and then. A tihai lands on sam.
Taals as JSON
One cell per matra. Add a taal by adding a file.
Tanpura
Five strings in just intonation. Sa from A2 to E4.
Manjeera
32 patterns. It keeps the tabla's time.
Swarmandal
Strums any of 117 raags.
Swaralipi
Plays the taal of any swaralipi-js notation.
Quick start
import { Tabla } from '@ugfoundation/tabla-js'
import kehrwa from '@ugfoundation/tabla-js/data/taals/kehrwa.json' with { type: 'json' }
const tabla = new Tabla({ context: new AudioContext(), sam: 'bell', filler: 'light' })
await tabla.load(kehrwa) // the first variation
tabla.bpm = 97 // matras per minute
tabla.start()
tabla.tihai() // after this cycle: tihai, land on sam, stop
Start it from a click or tap. Browsers block audio before that. More in the docs.
The app
A practice player and a taal composer, built on the library. It installs as an app, works offline and plays on with the screen off. Names and bols in English, বাংলা or हिन्दी.