The Internet Effect or: My First Taste of Reddit Glory

20 March 2017

A super interesting thing happened the other day. I took a very simple action which was seen by hundreds of thousands of people, possibly millions.

I was browsing the ol’ tweetstack and one jumped out that I thought was hilarious albeit super geeky. And their followup tweet just added to it. I had just woken up, was barely alive yet and thought “I wonder if /r/programmerhumor would like this?”.

I snapped a screenshot, unchecked “msg my inbox with comments/replies”, posted it on reddit and went on with my day.

How I've been spending my time

6 March 2017

WARNING: this post is a bit of a brain dump of everything I've been working on and dabbling with. Consider yourself warned!

I've been working on a culmination of various projects since Justin and I released Astervoid 2000 a few months ago, and I wanted to put it all in one place to share what I've been up to as well as create some sort of organized record of just what the heck has been eating my time.

Strap the Virtual Reality controls to your legs! ShatterStomp, one of my favourite recent projects

Blending songs together on an album using Ableton Live’s ‘Resampling’

23 December 2016

Recently, I found myself wanting a simple way to blend 2 tracks in Ableton Live together. There’s tons of different ways to pull this off. I came up with one quick way that had pretty good results.

I opened up the 2nd song, created a new track (naming it “# Resampled”), then armed it for recording:


Find a section in the 2nd song you want to tie into the previous song (I usually took the first 4 bars), press ‘Record’ and blammo! – you have a new audio file (made up of any tracks that were playing) that you can copy from this tune and paste in at the end of the 1st song.

Listen to the last part of the track “Ballast” fade out while the pre-intro and finally intro of “Euphoria” blends in:

Modifying Unity’s Camera ImageEffects values at runtime

5 July 2016

A couple of months ago I was mussing around integrating noise, vigenette, chromatic aberration, and other image effects into Astervoid 2000.

I found it wasn’t enough to just throw the image effects on the camera, I also wanted to change them at runtime depending on various events happening in the game.

Example of chromatic aberration offset & bloom intensity changing over time.

While coming up with a solution, I didn’t find this as straightforward as I had hoped it would be in Unity, and wanted to document and share the technique I devised for fellow game devs to use.

I started with the interface I wanted our team to use. Essentially, it’d be nice to call a method from anywhere in our codebase (an event handler, when a certain GameObject shows up, etc). I came up with a 1-liner solution like so:

// Kick up noise intensity to 1.5 over 0.8 seconds DynamicCameraEffects.BringTheNoise(newIntensity: 1.5f, duration: 0.8f);

`DynamicCameraEffects` is a C# class inheriting from MonoBehaviour that is added to camera. This camera also needs Unity’s ‘Noise And Grain’ ImageEffect from StandardAssets.

Once the noise has hit it’s desired effect, the callback `RemoveNoise()` pulls out the effect after a random amount of time has passed.

One gotcha, I needed to reference the Unity ImageEffects namespace via `using UnityStandardAssets.ImageEffects;`

Also, we rely heavily on DOTween to simplify changing values over time (Similar to MCTween for Flash, ‘member that?). It has a ton of helpers to clean up your code and provides a bunch of easing equations, but you could also re-write this with a typical LERPing implementation.

The whole class for affecting Noise looks something like this:

using DG.Tweening; // remove this if you're not using DOTween using System.Collections; using UnityEngine; using UnityStandardAssets.ImageEffects; ///  /// An extension class for dynamically adding noise to the camera easily at runtime ///  public class DynamicCameraEffects : MonoBehaviour { private static NoiseAndGrain _noiseScript; private void Start() { _noiseScript = GetComponent(); } public static void BringTheNoise(float newIntensity, float duration) { DOTween.To(() => _noiseScript.intensityMultiplier, x => _noiseScript.intensityMultiplier = x, newIntensity, duration) .SetEase(Ease.OutCirc) .SetUpdate(true) .OnComplete(RemoveNoise); } private static void RemoveNoise() { var duration = Random.Range(0.2f, 1f); DOTween.To(() => _noiseScript.intensityMultiplier, x => _noiseScript.intensityMultiplier = x, 0.45f, duration) .SetEase(Ease.InQuad) .SetUpdate(true); } } 

A breakdown of tools I used to compose the song Solar Zenith

16 June 2016

I originally posted this on Reddit, writing about VSTs and instrument sources used to compose the tune Solar Zenith. I believe it belongs here as well:


For percussion I’ve got XLN Audio’s Addictive Drums driving the snare and hats. Some kick and ride samples I found around the nets. Plogue’s Chipsounds for a variation on the hats.

The main melodic percussive sound is “Airy Bell” (I believe it’s from Ableton).

Some of the pads are Chipsounds, some are NI’s Session Strings (which I wouldn’t really recommend these days). I’ve got another pad as an NI Razor patch (Razor is tons of fun but obviously so is Massive).

There are two bass sounds (I believe also from Ableton), both called “Dual Osc4 Plastic Bass” but I’ve tweaked them super differently (octave transposition, oscillators, noise, etc). For leads, an Ableton pack called “Rubber Harp” is in there. And a custom NI Massive sound I came up with.

The reverse builds are some cymbal samples I have in my collection, obviously reversed then warped in Live.

And to top it all off there is a background “room” noise sample I recorded on my phone from some small performance space in Montréal about five or six years ago.

Live’s redux tool sounds awesome but is super limited as far as what it can do for 8bit / 16bit reduction so instead I use Plogue’s Chipcrusher a bunch for the signal degradation stuff.

Dimension Expander is in there and it’s rad. Gives your tracks some more “space”. Some awesome dev pulled the concept from Massive and made it it’s own VST which you can grab for free.

I also use A1StereoControl almost religiously. It’s free as well, and let’s you do “Safe Bass” stereo effects, where it takes anything below a certain freq and cuts the pan, outing it through the middle.

And here’s a Live Audio Effect Rack I made that essentially splits a single track into multiple and sends some of it through the left, some through the right, and some through the middle. Tweak the panning, volume of each pan and spread as much as you like.

How bout yourself, what’s some of your favourite audio tools?