AnuLaya

AnuLaya Composition Authoring Guide

A practical guide to writing tabla compositions — from simple theka to a full kaida with paltas and chakradhar tihai.

Type in lowercase English; the app always renders the canonical Devanagari alongside. Every example below shows the raw input and the grid as it appears in the app.


Table of contents

Part 1 — Basics (start here)

  1. What is a composition?
  2. Designed for phone keyboards
  3. Quick start
  4. Composition metadata
  5. Bols and Devanagari
  6. Basic notation
  7. Phrases per beat (concatenation)
  8. Comments and subtitles

Part 2 — Advanced

  1. Dot subdivision (unequal beats)
  2. Parentheses (nested grouping)
  3. Composite shortcuts
  4. Repeats
  5. Speed markers (layi)
  6. Tihai with ^
  7. Variables
  8. Taal grid and vibhags

Part 3 — Recipes and reference

  1. Recipe: full kaida (Teentaal)
  2. Recipe: tukda and tihai (Rupak)
  3. Recipe: song accompaniment (Keherwa)
  4. Common pitfalls
  5. Quick reference

Part 1 — Basics

Everything in Part 1 uses Dadra (6 beats, vibhags 3+3) so you can focus on notation without worrying about taal structure.


1. What is a composition?

A composition has:

The app parses your bols text and lays it out on a taal-aligned grid. Playback walks the grid at your chosen BPM. Everything else is just ways to pack more than one stroke into a beat, or to repeat/reuse phrases.


2. Designed for phone keyboards

Most compositions are typed on phones, one-thumb. The notation stays on the primary keyboard layer wherever possible — no shift, minimal symbol-layer trips:

Roman is offered because it's fast to type; the app always renders the canonical Devanagari alongside.


3. Quick start

Open the app, go to Compositions → New, and fill in:

Field Value
Title Dadra Theka
Taal Dadra
Tempo 120
Category theka
Bols dha dhin na dha tin na

Input:

dha dhin na dha tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na dha tin na
धा धिं ना धा तिं ना

Hit play — you hear the 6-beat Dadra cycle. Each space-separated token is one beat. The gap marks the vibhag boundary between beats 3 and 4.


4. Composition metadata

Field Required Notes
title yes Display name.
taal yes Dadra, Rupak, Keherwa, Bhajani, Dhumali, Jhaptaal, Ektaal, Chautaal, Deepchandi, Dhamar, Teentaal, Tilwada.
tempo yes BPM (20–300). Base tempo; speed markers and global speed multiply on top.
bols yes The notation text.
speed no Global layi (1 = baraabar, 2 = dugun, 3 = tigun, 4 = chaugun). Default 1.
category no theka, kaida, rela, tukda, tihai, song, other.
description no Short prose — who taught it, style, what to watch for.
author no Composer / guru credit.
tags no e.g. ["kayda", "intermediate", "benares"].
visibility no private or published. Default private.
phrases no Space-separated bol phrases for grid highlighting (see §4.1).

4.1 Phrases — coloring patterns across beats

Tabla phrases often cut across beat boundaries. For example, in a Teentaal kaida the phrase dha ti dha ge starts mid-beat and runs through the next — the grid shows it split across cells, making it hard to see where one phrase ends and the next begins.

The phrases field solves this. Enter your recurring phrases as space-separated concatenated bols:

DhaTiDhaGe NaDhaTiRaKiTe TinNaKeNa

The app matches these patterns in the grid and color-codes each phrase with a distinct color (blue, green, purple, orange, etc.). Bols belonging to the same phrase get the same color, even when they span multiple beats.

Example — Teentaal kaida theme with phrases:

Field Value
Bols dha ti dha ge na dha tira kite dha ti dha ge tin na ke na
Phrases DhaTiDhaGe NaDhaTiRaKiTe TinNaKeNa

Grid (Teentaal, beats 1–8):

1 2 3 4 5 6 7 8
dha ti dha ge na dha ti ra ki te
धा ति धा गे ना धा ति र कि ट

Grid (Teentaal, beats 9–16):

9 10 11 12 13 14 15 16
dha ti dha ge tin na ke na
धा ति धा गे तिं ना के ना

Without phrase colors, beats look like four unrelated bols. With colors, you instantly see it's the same DhaTiDhaGe phrase.

Phrases are optional. The app can auto-detect common phrases, or you can enter them manually for precise control.


5. Bols and Devanagari

Tabla bols are traditionally written in Devanagari, but it is easier to type in Roman. The Roman spellings here are a canonical one-to-one mapping chosen so round-trip is lossless — some Roman forms are deliberate (e.g. te for ट, not ta) to avoid collisions.

5.1 Canonical mapping

Devanagari Roman Input Devanagari Roman Input
धा Dha dha ता Ta ta
धे Dhe dhe तिं Tin tin
धें Dhen dhen तुं Tun tun
धि Dhi dhi T t
धिं Dhin dhin ति Ti ti
धुं Dhun dhun Te te
दि Di di त्र Tra tra
दिं Din din ना Na na
Da da ने Ne ne
ड़ De de Ga ga
घे Ghe ghe गे Ge ge
घें Ghen ghen घि Ghi ghi
Ka k, ka के Ke ke
कि Ki ki कत् Kt kt
क्र Kra kra क्ड Kda kda
Ra r, ra - Rest -, s

Placeholder: ~ — layout-only (advanced; use - for ordinary silence).

5.2 Key disambiguations

Pairs that sound close in English but are distinct strokes in Devanagari:

5.3 Single-character shortcuts

Input Roman Devanagari
t T
r Ra
k Ka

Example: tkta = T Ka Ta = त क ता.


6. Basic notation

6.1 One bol per beat

Input:

dha dhin na dha tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na dha tin na
धा धिं ना धा तिं ना

Each space-separated token is one beat.

6.2 Rests

Use - (hyphen) to silence a beat.

Input:

dha dhin - dha - -

Grid (Dadra):

1 2 3 4 5 6
dha dhin - dha - -
धा धिं - धा - -

s and S also mean rest.

6.3 Multi-line rows

Newline = new row. Rows are visual only — playback is seamless. Use them to make long compositions readable.

Input:

dha dhin na
dha tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na dha tin na
धा धिं ना धा तिं ना

Two input rows, same single-cycle grid. The line break is visual in the editor; the grid lays it out by taal.

6.4 Multiple cycles

A composition can span any number of taal cycles. Each row in the input doesn't have to be one cycle — the grid wraps by taal automatically.

Input:

dha ti dha dha tin na
ta ti dha dha dhin na

Grid (Dadra, cycle 1):

1 2 3 4 5 6
dha ti dha dha tin na
धा ति धा धा तिं ना

Grid (Dadra, cycle 2):

1 2 3 4 5 6
ta ti dha dha dhin na
ता ति धा धा धिं ना

Two lines of 6 bols each = two Dadra cycles. The second cycle starts on sam (beat 1) of the next round. Notice the bhari→khali shift: dha in cycle 1 becomes ta in cycle 2.

6.5 A simple tihai (spanning cycles)

A tihai repeats a phrase three times to land on sam. Even with basic notation (no […]x3 syntax yet), you can write one out longhand:

Input:

dha - k t 
dha - k t 
dha - k t

Grid (Dadra, cycle 1):

1 2 3 4 5 6
dha - k t dha -
धा - धा -

Grid (Dadra, cycle 2):

1 2 3 4 5 6
k t dha - k t
धा -

The phrase dha - k t repeats 3 times across 12 beats (2 Dadra cycles). The rests (-) between each dha create the damdaar tihai. (In §14 you'll learn [dha - k t]x3 as a shorthand for this.)

6.6 Partial cycles are padded with silence

If your bols don't fill a complete taal cycle, the remaining beats are filled with silence.

Input:

dha - - dha

Grid (Dadra):

1 2 3 4 5 6
dha - - dha - -
धा - - धा - -

Only 4 bols entered, but Dadra needs 6 beats per cycle — beats 5 and 6 are automatically silent.

6.7 Pipes as visual separators

| is ignored by the parser — use it for readability, typically at vibhag boundaries.

Input:

dha dhin na | dha tin na

Same grid as §6.1. The pipe helps you eyeball the vibhag split while editing.

6.8 Case is ignored

All three produce the same grid:

dha dhin na dha tin na        ← recommended (no shift key)
Dha Dhin Na Dha Tin Na
DHA DHIN NA DHA TIN NA

Use lowercase — it's fastest. Mixed case like DhaGeTiTe can help readability for long concatenations (§7).


7. Phrases per beat (concatenation)

Multiple bols touching each other (no spaces) share a single beat. This is the simplest way to pack more than one stroke into one beat.

7.1 Two bols in a beat

Input:

dha dhin na dhadha tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na dha dha tin na
धा धिं ना धा धा तिं ना

Beat 4 holds two bols, each taking half the beat.

7.2 Four bols in a beat

Input:

dha dhin na tirakite tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na ti ra ki te tin na
धा धिं ना ति र कि ट तिं ना

Beat 4 has four bols (parser segments longest-match-first). TiRaKiTe parses identically — camelCase aids readability for long tokens.

7.3 Rests concatenate too

Input:

dha dhin na dhadha-- tin na

Grid (Dadra):

1 2 3 4 5 6
dha dhin na dha dha - - tin na
धा धिं ना धा धा - - तिं ना

Beat 4 has four slots — dha, dha, rest, rest — each 1/4 of the beat.

7.4 Mixed jati (misra) — different speeds per beat (Keherwa)

Concatenation naturally creates misra jati (mixed groupings) when adjacent beats have different numbers of bols. No special syntax needed — just write each beat with the bols you want.

Input:

dhagena dhitedhite dhagena tinakena
takena titetite dhagena dhinnagena

Grid (Keherwa, cycle 1):

1 2 3 4 5 6 7 8
dha ge na dhi te dhi te dha ge na ti na ke na ta ke na ti te dhi te dha ge na dhin na ge na
धा गे ना धि ट धि ट धा गे ना तिं ना के ना ता के ना ति ट ति ट धा गे ना धिं ना गे ना

Beat 1 has 3 bols (each 1/3 of the beat), beat 2 has 4 bols (each 1/4 of the beat). Played back-to-back, this creates the 3+4 misra jati feel — the grouping shifts naturally without any special notation.

Beat 1 (tisra — 3) Beat 2 (chatusra — 4)
dha · ge · na dhi · te · dhi · te
1/3 · 1/3 · 1/3 1/4 · 1/4 · 1/4 · 1/4

8. Comments and subtitles

8.1 # comments — hidden

Lines starting with # are ignored at playback. Use them to organize your source: group variable definitions, mark sections, leave reminders.

Input:

# Basic Dadra theka
dha dhin na dha tin na

# Variation with doubled 4th beat
dha dhin na dhadha tin na

Comments don't appear on the grid. Think of them like headings in a notebook — they make a 100-line composition skimmable when you return to edit it. Grids are the same as §6.1 and §7.1.

8.2 ## subtitles — shown on the grid

Two hashes = a section header the viewer sees.

Input:

## Theka
dha dhin na dha tin na

## Variation
dha dhin na dhadha tin na

## Theka and ## Variation render as headers above their respective rows in the grid. Use # for editor-only notes; use ## for structure you want displayed.

Each subtitle section must end on a complete taal cycle. If the bols don't fill the cycle, the remaining beats are padded with silence — just like §6.6.

Input:

## Phrase
dha - k t

## Theka
dha dhin na dha tin na

Grid (Dadra):

Phrase

1 2 3 4 5 6
dha - k t - -
धा - - -

Theka

1 2 3 4 5 6
dha dhin na dha tin na
धा धिं ना धा तिं ना

The "Phrase" section has only 4 bols — beats 5 and 6 are silent. The "Theka" section starts fresh on its own sam.


← Settings Advanced Notation →