Explore Harmony

Hyung-Suk Kim

Idea / Premise

Software for pad control MIDI interfaces that encourages exploration of music theory concepts for musicians that play "by ear". The application is design towards but not limited to HipHop producing (aka beat making).


With the many HipHop producers, usually without traditional music training, and the ever expanding beat making videos on Youtube, sample-based music experience seems to be a proven method of lowering the entry bar for people who "have an ear" in music but do not have traditional music training.
The process of beat making starts with a "break", a short interval, usually 2 to 4 measures, in a music track that the producer finds interesting. The "break" is then chopped into "samples" that are mapped to keys/pads to trigger. After observing many cases, from Youtube videos to music by famous producers(DJ Premier, DJ Krush, DJ Shadow, etc), it seemed that these samples are usually single chords or something equivalent such as parts of arpeggiated chords. Thus what the producer is ultimately doing is playing chords in a complex sequence.
The process of such music production comes with a price, or rather a legal problem, copyright infringement. I believe it would be interesting to provide the user with an interface for exploring different chords (intervals, triads, 7ths, etc) and laying the chords out for the user to play. Taking "digging" closer to looking for the right progression and in turn hopefully reducing the need to "sample" music, reducing copyright violations.


Here are some sources of inspiration.

Akai MPC
The well know sampler. The 4x4 pads is a good interface for quadruple music. Compared to a piano keyboard, I believe the abstract pad makes the interface more approachable.

Korg RPPR(Realtime Pattern Play and Record) is a feature on most Korg music stations where the user can play a MIDI sequence, then assign the MIDI pattern to a key for playback. This is very similar to chopping a sample.

Korg Kaossilator
The Korg Kaossilator is a "dynamic-phrase synthesizer", a music instrument for playing loop-based music. It features a C(chord) section that contains different sounds that are arranged in specific chords.


The final product will be an application for exploring and experimenting with chords that can be used as a MIDI instrument.


User Experience Design
The initial setup should be intuitive. After the initial setup, the application should remember the setup. The user will simply browse through the chords, try them and drag-n-drop the sound onto a pad/key for use. A pad layout with chords selected may be saved as a "set" which can be loaded for later use or shared with other people. Displaying the different chords in an intuitive, accessible way will be a key point in the design.
The state of the software should be visualized throughout the UI. After setup, by pressing a pad the corresponding UI component should light up. For the chord exploring UI, a color coding scheme will be used to code the different types of chords.
I am a typophile and I believe that type should look good in applications. I plan to use Helvetica heavily, because 1) glut supports it and 2) it's cool. If time allows, I would like to find a way to support outline fonts.

Setup mode. Pressing a pad on the UI then pressing a pad on the controller to create the mapping. The corresponding MIDI note number will show on the pad.

When a pad is pressed on the controller the UI should respond.

Plays a chord when it is pressed.

Drag-n-drop to assign chord to pad.

Software Design/Architecture


This software is focused on people without a strong music theory background.
A possible measure of goodness might be the ease-of-use for a novice user from MIDI setup to "set" creating to performing.
Another possible measurement may be the ease of searching through the many chords and finding the one the user wants or likes.
Responsiveness, the interactive experience is also an important factor. Since the software is closely bound to the control interface, the software should feel like an extension of the hardware.
In the end, the user should enjoy playing and experimenting with the software.




Date 1: Nov. 17. Simple working system with minimal hard coded configurations.
Date 2: Nov. 29. Implement early iteration of chord exploring.
Date 3: Dec. 3. Create example sets from notable songs. Add fluidsynth and MIDI loop sequencing as time allows.