Christopher Fajardo
Music 220A – Final Project
December 10, 2009

Taiko Machine

Objective

The goal of this project is to develop a tool through the Chuck programming language that provides practical assistance to taiko drummers. The program currently does this in the following ways: playing a copycat game, providing a ji (backbeat) for practicing songs or composing, and providing random rhythms for compositional inspiration.

Program Description

PC Keyboard

Several samples of the main taiko instruments were recorded for playback through the keyboard at any time. The mapping is as follows:


Main Program: project1.ck

This file is the main part of the application. This program selects the mode (copycat, ji, random rhythm). The default beats is 4 and tempo is 120bpm.

Copycat mode is where the computer plays random nots for the set number of beats at the set tempo. Then, it is followed by empty time for the user to try to play back what they hear. This is done 4 times per round. This challenges the user’s listening skills since taiko players traditionally learn songs orally. Increase the difficulty by increasing tempo and adding more beats.

Ji mode simply plays a backbeat using the shime sound (“ten”) for the set number of beats and tempo. This is done in 4 main styles used in taiko. While the backbeat is playing, the user can play along to practice or compose.

Random rhythm plays a random rhythm to the corresponding ji.


[Sound].ck Files

The main program adds shreds that listen for the keys to play each sound.


Randomizing Instruments

Currently, the program is implemented such that all the instrument buffers are collected in an array inst[]. Then, another array randinst[] stores indexes of the inst[] array for the instruments you want to use. Since one of these indexes is randomly chosen for playback, the frequency of each index in the randinst[] array affects the probability of it being chosen. Currently, the program code needs to be edited directly to change these arrays. By default, the main project file and the random rhythm file picks between Don1, Ka1, and rest.


Flaws

There is a timing lag for the keyboard presses to play the sound, which makes it harder to play in time for faster tempos.

There is currently no key press that will stop the current mode.


Possible Improvements

An important improvement would be to be able to record what is being played. While composing, the user should be able to record what is being played on the keyboard. Also, random rhythms should be saved for playback in case the user likes it.

Utilizing a speaker setup beyond mono would allow for a more enriching listening experience as well as give an idea for stage setup.

The taiko sounds are unique but there are very many of them. Each also can take advantage of volume and pitch control. Adding all of the possible sounds adds to the compositional possibilities.


Files

The main file is project1.ck. The ji file is playji.ck. The random rhythm file is randryth.ck . (I realize this is spelled incorrectly.) Chuck files for the sample sounds and a folder containing the raw audio files are included.

My Project Files

Terminology Explanation

Acknowledgements

Thanks to my fellow Stanford Taiko member, Hari Rai, for helping me sample the instruments and her kiai's.

I give credit to Stanford Taiko alumnus, Kris Bergstrom, and his "30 Day's to Better Shime" program as my inspiration for the copycat mode.

Thanks to my girlfriend, Jill, for driving and helping me tranport all the equipment to the Knoll's recording Studio.