Jieun Oh
Music 256b HW3 README

[1] instructions

- download the zip files, and run on Xcode with provisioned iPhone connected 
- should be used with earphones with mic input or speaker gloves to prevent feedback 

[2] key concepts 

Implements Karlheinz Stockhausen's Stimmung (1968):

- The original piece is intended for six singers, who sit around a circle and perform overtone-singing on precisely-tuned fundamentals.
- Overtone-singing requires months of practice, but this iPhone instrument helps bring out the desired overtones by: 
(1) using a biquad filter (resonator) with a peak placed at the specified overtone frequency
(2) shows real-time frequency spectrum of the output to guide the singer 

- Main View Interface: 

(1) Specify overtone by aiming the compass. The image is the original drawing of the vowel-square by Stockhausen
(2) "set top": press the button to set the current aim to be the "top" (i.e. vowel "i", the highest overtone specification) 
(3) Specify the fundamental note. As in the original composition, a sinusoid (tuned using just intonation) is played at low volume to guide the singers. 

- Flipside View Interface:

(1) Voice Range: female uses overtones written below the vowels in black, male uses overtones written above teh vowels in color 
(2) Overtone Emphasis: the radius used in BiQuad filter
(3) Guide Tone Volume: Adjusts volume on the sine tone 

[3] difficulties 

(1) At first tried to use the accelerometer to control the filter radius, but tilting the phone affects compass readings so the two were incompatible 
(2) The framsize used in the audioCallback is less than the framesize specified when initializing the audio, adversely affecting the rfft function which expects a power-of-2 N. 
(3) Using multiple OpenGL views. Tried to understand using multiple contexts or framebuffers, but ended up using a boolean that tracks my current view.
(4) Compass reading seems unreliable and discontinuous...

[4] collaborators 

(none)