tabla-js

tabla-js

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.

Open the app  Docs · GitHub

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 हिन्दी.

    Open the app