One thing I had to take into consideration while building the prototype was defining the parameters we were going to use for the project. Obviously, being an audio reactive visualizer, the two most relevant (and important) parameters to map would be the loudness and pitch of the input signal produced by the user. These quantities will be mapped to affect the position, shape and texture of the visualizer. Sounds simple enough. So, how exactly will this be done? What is affecting what here? To answer that question, we need to delve a little bit into colour theory based on the Camelot wheel.
My idea for mapping the user’s pitch is to base it on the Camelot wheel, a visual tool often used by DJs to help with harmonic mixing. It is based on the principle of the ‘Circle of Fifths’, which maps out all 12 musical keys in a visual clock format, highlighting the different relations between them. The Camelot wheel turns this into a shorthand guide by using numbers (1-12) denoting each fundamental musical key and letters (A & B) representing the scale types. ‘A’ indicates minor keys while ‘B’ highlights major keys. It is usually visualized as a rainbow wheel, but it does not really hold any true correlation between the colours and the notes. I would like to build a type of cross modal correspondence and relate colours to notes, indicating variations in pitch through colour differences.
The loudness parameter was a more intuitive choice. I based this on the waveforms we see today, a very obvious correlation to represent loudness levels. The louder the sound, the higher the peak of the waveform. It will be interesting to see if we could recreate a highly dynamic waveform based on the user’s voice. This also serves as a commentary (no pun intended) on the loudness wars, which we still see today. Most tracks produced today are so heavily compressed to the point that they appear as continuous peak waveforms, losing the unique dynamic quality of each particular instrument and audiotrack.
Two other things we need to consider are the sensitivity of the visualizer’s response to the input and how it can be fine tuned to get the best possible results. We also need to ensure the dataset is normalized such that it is suitable for our visualizer to interpret. Because huge variations in range can massively alter and shift the output. The biggest hurdle will be finding the exact range or measure to ensure the visualizer functions exactly as we need it to.