Final Project: MakamCake


MakamCake is a software tool for both students and experienced performers of Middle Eastern music.
This music is hard to learn for (at least!) three reasons:

(a) Subtle microtonal intervals are everywhere, and most of us are not trained to distinguish them.

(b) Modes are complex sets of modulations between interconnected scales and some other stuff. There's the circular problem of where to start: in order to learn even a simple mode, you have to learn something about several other modes.

(c) Written materials about makam theory are dismal. Even if you bother to learn Turkish, you won't find the books helpful. Most music books contain only superficial information about the makams, often glossing over important details of intonation and modulation in performance practice.

MakamCake will appeal to beginning students of makam for its patience, precision, and visual tools that answer questions such as "What does it mean to flatten the 'B' by one or two commas?" and "What are some of the common places to modulate from this particular mode?"

Experienced performers will also enjoy the ease of modulation, the ability to explore microtonal intervals with complete precision while remaining true to the fluid nature of Middle Eastern music. They will also appreciate the "expert modulation mode" that allows custom scales to be constructed.

Random YouTube link

Baris Manco illustrates that you can have your cake and eat it too. 60s psychedelia, Turkish music, and children's television can coexist happily, and even small tots can learn to clap along with a syncopated 10/16 rhythm known as "curcuna". It therefore shouldn't be too difficult to teach makam to adults.

User Manual

Green notes are moveable, blue notes are fixed pitches, the purple note is the tonic.

zxcvb : to play notes in the lowest register
asdfghjkl : to play notes in the middle register
tyuiop[ : to play notes in the highest register
shift-(note) : to play a moveable (green) note while sliding pitch down
control-(note) : to play a moveable (green) note while sliding pitch up
up/down arrows : to zoom in/out on the main screen view
left/right arrows : to pan left/right on the main screen view while zoomed in
shift-control-(note) : to enter the advanced "Chord Patch" mode

While in ChordPatch mode (big swirly red zone in the middle of the screen):
The center of the spiral is where you are now; if there is a label there, that's the name of your current trichord/tetrachord/pentachord.
The distance of each label from the center represents a Euclidean distance, in commas, between the currently selected chord and the label. Thus more likely mini-modulations will tend to be clustered in the center.
3, 4, 5 : to set the number of notes you wish to patch. Set before entering ChordPatch.
up/down arrows, mouse to navigate and select a new chord
escape : to get out of this mode!

In the top left box, you'll see the name of a mode along with related submodes/scale fragments which are common modulations from the current location. Use the mouse to navigate, and explore the changing scales by playing the notes using the keyboard.

In the lower left, you'll see a KomaMonitor. The middle note bubble represents the most recently-played note. The numbers to the left and right represent the distances (in Pythagorean commas) between that note and its immediate neighbors. Shift a moveable note up or down and watch the numbers change.

Also in the KomaMonitor, there is a "closest scale". That is the name of the 8-note scale closest to the one currently configured that starts from the last note played, followed by the Euclidean distance between them in commas. Therefore the screenshot above suggests that the current layout of the instrument is very close to the Suzinak scale, separated only by ~1.5 commas.

Implementation notes

Future development

This project is still a prototype and leaves much to build out yet. The goal is to move the code over to an iPad project and eventually make it commercially available. In addition, presenting the approach, modeling and user experiences in a conference paper is an intriguing and appealing step. In the meantime, much still needs to be done:

- exploring better metrics for distances; perhaps placing more weight on fixed notes (which tend to define the really important intervals such as P4ths and P5ths)
- a true visualization of the graph structure of the modal system at the top left (similar to the ChordPatch mode, but more thorough and more complex). And good navigation around that graph. This is a high priority, and I ran out of time before I could implement this.
- filling out the specification of all the commonly used modes
- heavy user testing attempting real-time performance of composed music to seach for bottlenecks in the UI
- nicer graphics, anti-aliased and properly spaced glyphs!