Chroma Wheel - HPCP Visualization

Chroma Wheel is a visualization experiment that measures the tonality of a piece of music, using the HPCP(Harmonic Pitch Class Profile) algorithm in music information retrieval. The distribution of the color hues around the wheel describes the relative intensity of each of the 12 pitch classes of the equal-tempered scale within an analysis frame, which is commonly referred to as chroma features.

The project is written in OpenFrameworks and used ofxMLTK and ofxColorGradient add ons. Each frame of HPCP analysis contains 12 bins of values, which indicate the significance of each pitch class in any given frame. I mapped the raw values of HPCP into their weights and obtained 12 hues that are equally distributed around a color wheel. The change in the weights are reflected in the size of hue arcs.

Without too much experience with shaders and OpenFrameworks, the biggest challenge I had was how to interpolate the color smoothly. Right now I am drawing 100 arcs of different colors for each HPCP bin, which is very expensive and isn’t the ideal approach.

Github repo

I was able to feed different styles of music to the project and obtain some results I’m satisfied with. Here are 3 pieces I recorded.