home j h h l . n e t home

Sruti Box

version 1.1.0

Oct 2, 2008

This application simulates a sruti box. A sruti box (or shruti box) is a bellows-driven, harmonium-like instrument that provides a drone. It is used in Indian music and spiritual practices.

SrutiBox has 12 "reeds," which can be tuned in various ways. You play it by waving the iPhone — analogous to pumping the bellows of its real-world counterpart. There is a parameter that can be set so you don't have to "pump" it, but I find it adds to the authenticity in a subtle way.
SrutiBox provides a number of timbres suitable for droning.

SrutiBox is also an excellent way to play with the way chords fuse into timbres — which is why there's such a heavy emphasis on interval specification. You can get a feel for how certain timbres fit "naturally" in certain frequency ranges, how tunings and timbres and chords intertwine.


To set the minimum or maximum values of sliders quickly, you can tap the icons: for minimum, for maximum. Tapping anywhere on a slider will set its value there quickly.

Tap the interface images below to get an explanation for the particular control, tap the image again to hide the explanation

Progress bar
At the top of the screen is a progress bar that shows the level of "air" that is driving the synthesis. Waving the iPhone (or iPod Touch) will add "air", and the Sruti Box will start to sound, if any of the reed volumes are turned up.
The title area has several active buttons:
  • The info button (info) is what was tapped to see these instructions!
  • The title button changes to the title of the saved setting that you last loaded. Tapping the title will reload a setting if you have changed them and want to revert to the saved setting.
  • The save icon (save ) takes you to a list of saved settings. SrutiBox comes with a few settings to start with: SrutiBox and Just Just. They are grayed out, indicating that they are read only, but you can alter them if you like, and then save them under different names. Settings always save the entire current state of SrutiBox, so if you have related custom interval sets, they can be saved together.
    The settings are sorted alphabetically. There is always one setting named " Last Settings" which is the way SrutiBox was set when you last left it.
    • To pick a setting, tap the name in the list and it will instantly be put into effect.
    • You can save the current setting by tapping the Add button. If you have chosen a setting already and changed it, the Add button acts more like a "Save As" button .
    • Pressing edit will let you either delete a setting by tapping the minus icon (minus) or rename a saved setting by tapping the name itself.
  • open icon close icon
    These icons allow you to slide away a lot of controls and spread out the volume sliders so as to widen them and make them easier to set. The close icon closes them up again and brings the controls back. The title bar icons remain active, so you can reload the volume sliders by tapping the name in the title bar or load a new setting by tapping the save icon (save ).
Base freq
All the reeds use this base frequency to tune the interval sets specified. The base frequency can be set to values between 10 Hz and 2067 Hz . You can easily change the base frequency to a new value by tapping it and typing it in. You can also type in a standard note name and it will take that as a base frequency. To specify sharps, you can use '#' or 's', and to specify flats, you can use 'b' or 'f', for example: bb (B flat), c# (C sharp), Df (D flat), Fs (F sharp). These "named note frequencies" are set in a low octave (based on A3 = 220.0 Hz) by default, so the higher harmonics can be used. For other octaves (1 through 4), you can type the octave as part of the name, for example, Bb2, C4, Ds1. Having no octave specified is the same as using octave 3 (E alone is E3). Low frequencies may be hard to hear; use larger intervals in the interval sets, or use richer timbres!
minimum volume
The Minimum Volume slider lets you insure that you will hear the sruti box at this volume, so you needn't wave the device so often.
SrutiBox treats the reeds differently with respect to volume: as the volume decreases, the higher numbered reeds will fade out faster. This way, you can set up a chord that keeps the lower numbered reeds sounding while the upper ones have faded out, and mix them back in as you pump harder. for example, you can get high pitched harmonics as you pump harder by putting the lower pitched intervals first in the set, or keep some high pitched sounds by putting them in lower numbered slots.
You may want to have SrutiBox playing all the reeds at their loudest, but nevertheless have it play more quietly in the headphones. For this, you can set the minimum volume to the maximum setting, and adjust the volume using the volume buttons on the side of the device!
The Timbre button lets you select the reed timbres. Tapping the timbre's name brings up the timber picker:
As you scroll through the timbres, the timbre will immediately adjust to the currently selected timbre. You can use it by tapping "Use" or go back to the previous one with "Cancel".
There are now a number of timbres to choose from, each with differing qualities.
Sines: these wave forms are made by raising a sine to successive odd powers, each time adding more harmonics.
  • Sine - a simple sine wave, no harmonics at all.
  • Sine3 - you can hear a fifth
  • Sine5 - you can hear a third
  • Sine7 - you can hear a seventh.
  • Sine9 - you can hear a ninth.
  • Sine11 - you can hear an eleventh.
Organ timbres: have a few higher harmonics, like an old electronic organ witha dfew draw bars pulled out.
  • Organ 1, harmonics 1, 2
  • Organ 2, harmonics 1, 2, 3, 4, 5
  • Organ 3, harmonics 1, 2, 3, 4, 5, 6, 7, 8
Weighted reeds: these have a number of harmonics directly multiplied by internally specified weights.
  • Harmonium 1, taken from the spectrum of a harmonium reed.
  • Harmonium 2, also taken from the spectrum of a harmonium reed. Good with low pitches!
Odd Harmonic reeds: This is a generated timbre with as many harmonics as possible.
  • Buzzy Organ, very buzzy. Odd with some light even harmonics.
Vocals: these are constructed by summing harmonics, which are scaled to the harmonic shape (formants) of the intended vowel, based on the pitches of the reeds. As a side effect, the waveform for each of the reeds differs, so each reed may sound quite different in a related way.
They sound most like the designated vowels ("Ah" and "U") in the proper pitch ranges for the "singers," but I don't constrain you from setting an inappropriate pitch for a singer.
  • All Ah, a combination of all the "Ah" vocal timbres, put into ranges.
  • Bass Ah
  • Tenor Ah
  • Alto Ah
  • Soprano Ah, very close in shape to Alto, with one high harmonic standing out.
  • All U, a combination of all the "U" vocal timbres, put into ranges.
  • Bass U
  • Tenor U
  • Alto U
  • Soprano U

The Rand button, adds a random amount of detuning to each reed. This can be used on any interval set. This detuning is in the range of an "eighth tone" (25 cents) sharp or flat from the original interval. This is reflected in the interval's label as, for example "+12¢". Repeatedly tapping the Interval set's button will make new detunings from that set. Tap the Rand button again to turn off this feature.
When saving a SrutiBox setting that has the random feature on, the fact of "randomness" is saved, but not the actual random interval offsets.


Chorus is a modulator that slowly detunes the left and right channels from each other (they are also slightly mixed) to provide some "motion" in the sound. The speed of the chorus runs from 5 to nearly 60 seconds.
Setting the slider to its maximum value will turn the chorus off. To use the slowest speed, nudge it a bit to the left from the maximum value. Reeds set with a rich timbre or in a complex chord will reveal more "motion".

These are a series of buttons that choose the sets of intervals that the reeds are tuned to. I'm calling these "Interval Sets" as opposed to "scales", since they don't have to be related melodically - they can't easily be played melodically anyway. "Gamut" might be another term for them but I bet you are already confused enough!
  • Just: The Just intervals are are chosen to give a wide spread of harmonious tones.
  • 12et: These are the 12 equally tempered tones used in western music.
  • Harm: The Harmonic intervals are to help build chords that fuse into timbres.
  • Sruti: These are 12 tones used in Carnatic music, derived from the circle of fifths. This is by no means a complete set of Carnatic intervals.
  • Cust1: a place for a custom interval set
  • Cust2: a place for another custom interval set
There are a great many philosophies about which intervals should be used to derive scales, and I've only chosen these to get a taste of the possibilities of microtonal scales and intervals in this context of drone accompaniment. To this end, the Harm, Sruti, Cust1 and Cust2 interval sets are customizable! See below for more details. This table displays the specifications for four interval sets, with more-or-less accepted names for the intervals and corresponding pitch ratios. I've also added the "cents" ( ¢ ) values of each interval below its name, one cent being 1/100th of a semitone, which is a way to compare interval sizes easily.
* ' here means an octave (2/1 or 1200 cents) higher

The Sruti interval set is very close to 12 tone equal temperament, differing only by a few cents, which you may or may not hear depending on how experienced you are in listening to the differences. If you turn off the chorusing, you may be able to hear these differences if you switch from 12et to Sruti tunings with the volume sliders in the same positions. Do some searches on microtonality and Carnatic music for more details!

If you choose a standard note name for the Base Frequency (like "F#") and choose "12et" as the tuning, the labels will reflect that fact and label the scale with Western note names appropriate for that key. This is pretty helpful when you use SrutiBox as a tuning source for tuning other instruments!

The custom interval sets are designed to be set up by you! SrutiBox lets you customize the Harm, Sruti, Cust1 and Cust2 Interval sets. By tapping in the note name area, you can specify the interval you wish by either:
  • typing in a ratio (e.g 3/2,21/20, 81/256),
  • a number indicating the number of "cents" (e.g. 110, 133.33, 701.9), or
  • a degree of an equally divided octave (e.g. 5:19 is the 5th note of 19 tone equal temperament).
You can get pretty creative here - since these numbers can even be "real" numbers, you can even make a "ratio" like 1.01/1 or "quarter-tones" in an equal temperament like 7.5:31.
Because of the low sample rate, I don't let any of these intervals resolve to a ratio larger than 32/1.
A Ratio will calculate a frequency that is the base frequency times that ratio, for example, with a base frequency of 110 Hz, 3/2 will become 165 Hz, 15/8 would be 206.25, etc. Cents are somewhat more complicated, but every hundred cents represents a 12 tone equally tempered halftone: 100 would be a tempered minor second, 400 a major third, 750 a quarter tone higher than a perfect fifth.
There are a lot of references you can find that translate historical, ethnic and experimental scale intervals into cents. The formula, for those with a calculator, is
frequency = base_frequency * 2 (cents/1200).
For the arbitrary equally tempered octave notation (a:b), the formula is a similar: frequency = base_frequency * 2 (degree/division)
And, you can label these tones more descriptively by putting the label after the numeric specification of the interval, separated by a space. e.g.
3/2 Just perfect fifth.
81/80 syntonic comma.
Don't make the labels too long (more than 16 characters) or they will be truncated.
You can keep the reed from sounding at all by typing "off" or "zero" as the interval setting.

Reed Volume
Each reed's volume can be individually set, to create a precise mix of intervals and harmonics. Here is where you can have a lot of fun exploring chord voicings and harmonic textures. You don't have to slide these (or any) sliders, just tap them where you want them to be set. The lowest and highest values have special icons to help you out. If you want to set all the volumes to the same value quickly, triple tap a slider which is set to that value. Since this also works for the "zero" level, it's a fast way to zero out the sound.
Just interval sets, like Harm and Just, are well suited to making chords which fuse into timbres.

  • As with other iPhone audio applications, if you are connecting the device to an amplifier, you may want to disable the phone function so you don't hear the occasional noise resulting from GSM synchronization. If the phone is enabled, incoming calls will will cause SrutiBox to save its settings, fade out and let you have have a conversation. After the call, SrutiBox will relaunch using those saved settings.
  • Headphones or earbuds are recommended for a good stereo effect.
  • Make sure the volume is not too high - your ears - and the iPhone's earbuds and speakers - are delicate!
  • I find the phone tends to heat up during SrutiBox's operation. Shut off SrutiBox if this becomes uncomfortable.

More information can be found on the SrutiBox Web pages at: http://www.jhhl.net/iPhone/SrutiBox/. That website will carry the current, revised version of these instructions, as well as samples, tips and links.

Thank You!
  Henry Lowengard

© 2008 Henry Lowengard
Sruti box picture from http://www.kalakendar.com/
The formant data for the vocal timbres is taken from CSound.