The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Music::Percussion::Tabla - Play the tabla!

VERSION

version 0.0200

SYNOPSIS

  use Music::Percussion::Tabla ();

  my $tabla = Music::Percussion::Tabla->new;

  for my $i (1 .. 3) {
      $tabla->ta;
      $tabla->ta;
      $tabla->tun;
      $tabla->ga;
      $tabla->rest($tabla->quarter);
  }

  say $tabla->soundfont;

  $tabla->timidity_cfg('/tmp/timidity.cfg'); # save the cfg
  $tabla->write; # save the score as a MIDI file

  # OR:
  $tabla->play_with_timidity; # play the score with timidity

DESCRIPTION

Music::Percussion::Tabla provides named associations between tabla drum sounds and the included soundfont file.

Here are my "non-tabla player" descriptions of the sounds:

  # MIDI Description
  ...
   1 60  ringing mid
   2 61  muted low
   3 62  slap
   4 63  ringing mid slap
   5 64  low knock
   6 65  muted ringing low
   7 66  lower
   8 67  low-up
   9 68  muted slap
  10 69  ringing low
  11 70  flam slap
  12 71  loud tap
  13 72  lowest mute
  14 73  ringing low
  15 74  muted low
  16 75  loud tap double
  17 76  high-low
  18 77  high slap
  19 78  tap
  20 79  high knock
  21 80  short low-up
  22 81  mid tap
  23 82  muted tap
  24 83  mid
  25 84  muted
  26 85  loud mid double
  27 86  slightly more muted
  28 87  low mid
  29 88  ringing mid
  ...

Only a few are named in this module. To play the others, just do this to add to the score:

  $tabla->note($tabla->eighth, 79);

For baya and daya simultaneously, that would be:

  $tabla->note($tabla->eighth, 79, 87);

ATTRIBUTES

soundfont

  $soundfont = $tabla->soundfont;

The file location, where the tabla soundfont resides.

Default: dist_dir()/Tabla.sf2

tun_num

  $tun_num = $tabla->tun_num;

Default: 60

ta_num

  $ta_num = $tabla->ta_num;

Default: 71

tin_num

  $tin_num = $tabla->tin_num;

Default: 82

tu_num

  $tu_num = $tabla->tu_num;

Default: 87

te_num

  $te_num = $tabla->te_num;

Default: 62

tete_num

  $tete_num = $tabla->tete_num;

Default: 77

ka_num

  $ka_num = $tabla->ka_num;

Default: 68

ga_num

  $ga_num = $tabla->ga_num;

Default: 63

ga_slide_num

  $ga_slide_num = $tabla->ga_slide_num;

Default: 67

METHODS

new

  $tabla = Music::Percussion::Tabla->new(%args);

Create a new Music::Percussion::Tabla object. This uses all the possible properties of MIDI::Drummer::Tiny.

tun

  $tabla->tun;
  $tabla->tun($tabla->sixteenth);

Daya bol: tun

ta

  $tabla->ta;
  $tabla->ta($tabla->sixteenth);

Daya bol: ta/na

tin

  $tabla->tin;
  $tabla->tin($tabla->sixteenth);

Daya bol: tin

tu

  $tabla->tu;
  $tabla->tu($tabla->sixteenth);

Daya bol: tu

te

  $tabla->te;
  $tabla->te($tabla->sixteenth);

Daya bol: te

tete

  $tabla->tete;
  $tabla->tete($tabla->sixteenth);

Daya bol: tete = te + tete_num

ka

  $tabla->ka;
  $tabla->ka($tabla->sixteenth);

Baya bol: ka/ki/ke/kath

ga

  $tabla->ga;
  $tabla->ga($tabla->sixteenth);

Baya bol: ga/gha/ge/ghe

ga_slide

  $tabla->ga_slide;
  $tabla->ga_slide($tabla->sixteenth);

Baya bol: ga/gha/ge/ghe with wrist slide to syahi

dha

  $tabla->dha;
  $tabla->dha($tabla->sixteenth);

Baya bol: dha = ga + ta

dhin

  $tabla->dhin;
  $tabla->dhin($tabla->sixteenth);

Baya bol: dhin = ga + tin

tirkit

  $tabla->tirkit;
  $tabla->tirkit($tabla->sixteenth);

Baya bol: tirkit = tete + ka + te

SEE ALSO

File::Slurper

MIDI::Util

Moo

File::ShareDir

https://gleitz.github.io/midi-js-soundfonts/Tabla/Tabla.sf2

https://www.wikihow.com/Play-Tabla

https://www.taalgyan.com/theory/basic-bols-on-tabla/

https://kksongs.org/tabla/chapter02.html & https://kksongs.org/tabla/chapter03.html

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2023 by Gene Boggs.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)