Bayan Sound Modeling and Synthesis
Tabla is an Indian percussion with an Arabic origin. Tabla is used extensively in Indian music in different styles and roles. Tabla can be an accompanying instrument whereas in the form Qaida tabla becomes the solo instrument. Although a tabla consists of two drums (dayan, the small high pitched drum and bayan the big bass drum) it has a huge range of timbres and is a highly expressive instrument. (here’s an out-of-the-world performance!) One of the techniques involves squeezing the membrane of bayan to form modulated strokes. This technique is very crucial in tabla listening and add great variety to the performance.
One of my active projects is “modeling the bayan strokes mathematically for different modulation techniques and synthesize them for real-time computer-generated tabla improvisation.” This is a project filed under the NSF CreativeIT Grant #0855758.
This project is very challenging as the characteristics of the strokes played in this highly non-linear drum can change with various parameters such as tempo, modulation depth and the stroke played before. On the other hand the real-time synthesis is a constraint, so the synthesis should be really fast that listeners do not experience delays or glitches.
I have been working on the modeling part in MATLAB and the mathematical part has completed. I have synthesized strokes by using a long set of parameters I have extracted from bayan strokes I have segmented before. The results are very promising.
Second step is making the real-time synthesis part. I have been trying to integrate the model to Alex Rae’s tabla improviser he has created with pd-extended and Python for his masters thesis. His algorithm creates a phrase notation, which is used to trigger tabla samples recorded specifically for this thesis. However for seamless mixing of the samples, he needed to take out the modulated strokes of bayan and it has shown negative effects listeners opions. (you can listen to the samples here)
I have converted the model to Python code and integrated it to work inside pd-extended. The final step is to optimize the time needed for synthesis, and if needed, go back and tweak some synthesis parameters.