I am a game developer, composer, performer, sound artist, and researcher. I'm keenly interested in the intersection of the digital and the organic, and seek to explore the intermingling of the two in the works that I create. I am completing a PhD in Computer Music and Sound Art at Bournemouth Univeristy. While completing my studies I have been working as a game programmer in NYC. You will often find me collaborating and performing with my twin brother Chad and my laptop band Glitch Lich.
Over the years I have had the opportunity to make music with a host of amazing musicians and bands. These days you will most likely find me collaborating with my brother Chad, or with our band Glitch Lich. I have also had the opporunity to work professionally as a composer and sound designer, and have written music for several published video games, including Flagship Studio's Hellgate: London, and Kuma Games's Infinite Overdrive. Please feel free to listen to a selection of my works here.
Language: C++ and SuperCollider
Overview: 3D visualized sound.
HyperTerrain is an explortation in sound visualization. It is based upon an oscillator I designed which extends wave terrain oscillations to higher dimensions beyond 2D. The code is split into two portions, one part is a custom three dimensional wave table oscillator UGen written for SuperCollider. The second part is a simple C++ program, using the Cinder openGL framework, which visualizes the three-dimensional oscillations. Even though the sound gives the impression of being polyphonic, it is in fact a single oscillator that makes all of the sound during the piece.
Languages: C# and SuperCollider
Repo: CLOSED SOURCE
Overview: Infinite Runner released for iOS, Android, OSX, and PC.
I served as game programmer, composer, and sound designer for Infinite Overdrive, which was released by Kuma Games in January 2014. Infinite Overdrive was created using Unity 3D, C#, and SuperCollider (for music and sound). The game makes use of multi-screen technology, including a novel multi-channel music networking system I devised to work across multiple mobile devices.
Live Demo: www.chadmckinneyaudio.com/lichdemo (Use Chrome for best performance)
Lich is a new language created for the sole purpose of live coding performative sound works. Lich was largely developed by my brother Chad, and serves as the basis for his PhD dissertation. I created several auxillary functions for the language, including the web interface that is used to program and compile the language in real-time, and the networking which the langauge uses for multi-user collaboration. The networking uses a very simple socket.io scheme, but its simplicity was ideal for Lich (as opposed to a more indepth project like OSCthulhu, whose complexity actually gets in the way here). Glitch Lich has performed out with Lich several times, and I have even used it to generate music for several video games at Kuma Games which are pending release.
The Curse of Yig
Languages: C++ and SuperCollider
Overview: Mutli-user instrument for creating and manipulating audio feedback networks. Mainly written in C++ using Qt for the user interface, Cinder and OpenGL for graphics, SuperCollider and libSC++ for audio, and OSCthulhu for networking.
Yig is an experiment in exploring unpredictable oscillations in dynamically constructed feedback loops. Each performer in Yig can create, destroy, and connect different sound producing synths. These synths are based upon feedback oscillations and have inputs for external input into these internal feedback loops. Yig performances involve the players collaboratively exploring these interconnections, controlling a kind of meta-instrument that span the ensemble. Yig turned out to be one of Glitch Lich's most succesful pieces as it tends to perform rather differently from show to show, providing a truly live electronics platform. Much of the excitement of playing Yig was never knowing exactly how it would turn out.
Languages: C++ and SuperCollider
Overview: Mutli-user instrument for beat based music performance. Written in C++, Cinder and OpenGL for graphics, SuperCollider and libSC++ for audio, and OSCthulhu for networking.
Simulacra is a system mainly developed by myself, with help from my brother Chad McKinney. The user interface is exactly what is shown in the video. Due to this the audience can see exactly what the performers are doing while at the same time retaining a highly artistic presentation. We became more interested in this approach, because it provides a nice solution to both having visuals and letting the audience in on the actual performance. However, Simulacra did not start this way. It began with a different program written with Qt that communicated via Open Sound Control messages to the graphics and looked similar to a digital audio workstation (DAW) such as Pro Tools or Logic. That interface proved to be both incredibly cumbersome to use as well as buggy. As an experiment we decided to add keyboard and MIDI input to the graphics program to see if it would work well as the user interface in addition to the graphical projection, and it worked better than the old DAW version. This also made setup easier for performance as setting up mirroring with a projector is much faster and less error prone than negotiating different screens and windows with various possible resolutions.
Languages: Java and SuperCollider
Overview: Bit Torrent based sound art installation. The main system is written in Java using Processing for graphics and communications with SuperCollider via Open Sound Control messages for audio.
Leech is a sound art installation that explores the ideas of copyright and intellectual property in the age of the internet. Throughout the installation the Leech program torrents the most popular album on Pirate Bay and begins playing back modified versions of the songs. Each packet that is transferred is sonified and the locations of the leechers and seeders in the torrent network is visualized on the glowing map. The graphics and torrenting system were largely developed by myself, with the music created in collaboration with my brother Chad McKinney. This is an older work and the code is a bit immature, but we ended up with a great looking and sounding installation that has had good reception.
Languages: C++ and Lua
Overview: First person exploration and puzzle game using procedurally generated environments. Written in C++ using the Ogre3D SDK, Bullet for physics, and using Lua for scripting.
Entropy is another collaboration with my brother Chad McKinney, this time in the form of a video game. Before I started work at Kuma Games this was the largest programming project I had been a part of. Because of the large scope we never finished the game, but it is still one of our largest efforts and includes procedurally generated voxel terrain, a nice custom water shader, physics with collision events, a hacking mini game, a grappling hook, a quest system, an inventory, custom level generation with file saving/loading, and even a chatbot that you could talk to.
The voxel maps were created using data generated via custom simplex and cellular automata algorithms.
Overview: 2D cyber punk hacking game written in C++ using the Ogre3D SDK.
This game, another collaboration with my brother Chad McKinney, was born out of the efforts of another game project of ours called Entropy. When it became apparent that Entropy was far too ambitious to finish in our spare time we decided to switch gears and try to make the hacking mini–game into its own small game. The most interesting aspect of this project is the ascii shader I developed for it that gives the game a cyber-punk terminal look. Soon after I became employed at Kuma Games, so we never had the opportunity to take it very far.
Language: SuperCollider, Processing
Overview: Sound Art installation.
Flow is a sound art installation that was commissioned by SCAN for the Public Domain Festival, which was held in Bournemouth England, 2010. I was commissioned to create a piece that somehow involved a large screen and a small stream that ran through the center of the Bournemouth city center gardens. I came up with idea of using the stream as a kind of sound sequencer that anyway one could play. The piece was performed by a person throwing the ball in the stream, as the ball floated down stream it activated infrared sensor which triggered sounds and visuals through an arduino interface. Though I did not intend it the piece ended up being a big hit with children, which I was rather delighted by.
Overview: Server and client framework for synchronized networking using Open Sound Control (OSC) messaging.
OSCthulhu started as a fix for the networking systems that my band Glitch Lich used during performance. Previously we had been using another networking system named OscGroups but we had consistent issues with dropped packets or blocked ports. The problem with OscGroups is that while it uses a server to server as a rendezvous, all traffic is still peer to peer. While this is ideal for lan connections and academic networks, it quickly balks in real-world scenarios. Furthermore networking with the system encouraged a kind of event based style that wasn't entirely conducive to the kind of pieces we were making.
OSCthulhu solves this problem by implementing generalized client-server system that is largely informed by the same systems used for multi-player video games. This systems preempts issues with blocked ports, eager firewalls, and packet loss, all while using UDP for the best real-time response. Additionally I added a synchronization interface to the communication channels which we've used for several years in many different systems. OSCthulhu has seen performances with users spread out across the entire globe and has maintained functionality despite long distances and intermittent connections. This has probably been the most useful code that I've constructed, serving as the bedrock for many pieces and performances, and it continues to develop to this day.
Overview: The future of network computer music.
Necronomicon is in its infancy, but already I see its potential. It is essentially the culmination of everything that my brother and I have worked on and learned over the past 5 years. At its core it is a pure and deterministic sound engine. From top to bottom, everything about Necronomicon is constructed to be as pure and effect free as possible, from the high-level pattern system, down to the lowest level sound ugens. The reasons we've gone down this path is pretty simple. Our sound systems are quite complex. Out of this complexity necessarily arises mistakes, and mistakes can sometimes be borne out in show stopping crashes. After one too many of these occuring during a live set it was clear that something had to be done. Necronomicon is designed to be extremely rock solid, to make crashing essentially impossible. Furthermore, there are real sonic gains to be had from this direction as well. Since the whole sound system is a pure function of time it becomes trivial to explore sonic effects that manipulate time, with perfect fidelity. Furthermore, every possible chance to raise sound quality has been taken. Many sound systems make compromises to be as efficient as possible. Not Necronomicon. Is it the fastest sound engine out there? No, but it's a take no prisoners view of what a sound system can be, a sound system for the future.
Overview: Ambient psych-folk album.
When I moved to the UK in 2010, I never dreamt that I would end up touring Europe with a duo from Serbia. I met Mesta in 2011 while on tour with my bandmate at the time, Annie Lewandowski. After meeting just once we decided to play music together. Collaborating completely via e-mail my brother and I constructed ambient electronics to accompany the eerie acoustic sounds that the duo produced. The album that came out of this collaboration is one of the best pieces I've had the pleasure of working on, and I am quite proud of it. Though not a technical feat, as it was constructed with simple SuperCollider, I certainly consider it to be a musical one.
Below is a selection of my research publications.