Creative Coding 2 Weeks 1 & 2 - C++ Intro and Driver Issues
Updated: Feb 16, 2021
<Repost as blog decided to delete original post>
My first two weeks of OpenFrameworks and Maximillian were plagued by audio driver issues. My windows desktop would not return any sound when running basic Maximillian sketches, but showed the OpenFrameworks' elements as intended. I then attempt to use my windows laptop, and at first it appeared to work with a simple oscillator sketch. However, when I tried to recreate the audio section of my Java coding project from the previous semester I noticed a large amount of distortion on playback of audio samples (even on low volumes). I still experienced it after trying different audio file formats (wav and ogg), sample rates and channel counts, so went back to the simple oscillator sketch to double check is it was only audio sample playback that was affected it. It wasn't; I had not noticed the distortion in the square wave when I first got it working on the laptop as I was simply relieved to have sound working. This became more obvious when I changed the output wave to a sine, see image below.
Distorted sine wave output from Maximillian.cpp
As a result of these difficulties I chose to turn my attention to the JUCE framework, which was always my intention with this module. I started working through the official JUCE tutorials and ingesting large amounts of The Audio Programmer's content.
I also began thinking about possible projects to work on throughout this module;
I have been considering the discussions we have had in our Critical Studies module regarding the notion of 'fabulating design' and how it can be applied to the design process of audio plugins and digital MIDI instruments. Inspired by Freakshow Industries and their novel approach to plugin design: create bizarre interfaces that hide some of the functionality behind weird and creepy stories and invented mythologies. I have also been considering the potential benefits of this approach to furthering 'design justice' values; the audio engineering/music production world is full of jargon and can be very complicated for a newcomer, more artistic plugin design that obfuscates functionality could be seen to put users on a more level playing field. Also, more artistic interfaces could encourage experimentation and potentially help to combat the formulaic 'cookie cutter' approach to music that has appeared in the age of social media. There are so many clinically precise audio plugins with well polished interfaces, why shouldn't a plugin also be a work of art?
To this end, my first thoughts are about creating a plugin that combines granular synthesis and flocking algorithms. This doesn't seem to a totally unique idea, a quick Google search shows that others have created audio apps that combine these two computational techniques, however there does not seem to be one made using the JUCE framework yet.