Green Code

Green code is code that has been commented out. Its usually green because the popular development environments I use syntax highlight the comments in green. In my personal opinion having large chunks of commented out code is a violation of YAGNI. A much better approach than commenting out the code is just to remove it, if you are usingĀ  source control, which surely you must be? a record of it will be stored in version control. Doing this has two advantages, firstly the current source code has less clutter, and secondly the source code is kept historically in version control along side the code that it was meant to work with. Keeping the code commented out along side the current code is daft, unless you think that un-commenting out the code six months later it will still work, which in most cases it probably won’t.

Sidechaining in Reason

Here is how I do sidechain compression in Reason. In this example I am going to use a kick for the sidechain source, which can give the output of the compressor a bouncy catchy effect.

First of all you want to setup a default rack with a 14:1 Mixer, an MClass Compressor and a Redrum, make sure when you add the compressor its auto routed as an effect send to the mixer.

Now flip the rack and connect the Redrum’s Send 1 to the Left(mono) channel of the sidechain input on the compressor. Note that the sends from Redrum are mono outputs.

Program a basic 4/4 kick drum pattern into the Redrum device. You can add claps snares or anything else you like they will not be being sent to the compressor at this time until you turn the send knob for a particular Redrum channel.

Once the Redrum is setup how you like you can now send the kick drum to the sidechain by turning the send knob for the kick channel all the way to the right. Note that this doesn’t stop the kick from being sent to the mixer.

You can lower the compressors Threshold and raise its Ratio until you see the kick drum really pump the VU meter. Now that the compressor is pumping we need to give it something to compress. Add a synth to the rack and make sure its auto routed to the mixer. Turn up the aux send of the channel to which the synth was added.

When you play notes on the synth you will hear it go quieter when the kick drum is playing. This can be a useful way to make synth baselines fit better in the mix.

The advantage of using sends rather than using the single channel output of the Redrum are two fold. Firstly the kick drum is not muted and does not need further splitting using a Spider Audio Merger & Splitter. Secondly other elements of the beat can be sent to the sidechain in varying amounts. The advantage of using the compressor as a effect send is that many instruments can have the same compression added to them by altering the aux send of each channel.


I have finally given up and installed firefox again. I was a little disapointed that the ‘Live bookmarks’ feature was not as good at displaying news feeds as Internet Explorer, however I quickly rectified this situation by Installing Sage

Reason 4.0

My long awaited free Upgrade to Propellerheads Reason 4.0 has finally arrived. Propellerheads seem to have been quite smart in thier way of delivering upgrades, rather than distributing two versions of thier product they simply distribute the full version only. The upgrade verification is done by registering your old version online and entering an upgrade code at which point they will email you the full version product key.

Tricubic interpolation

I have been thinking a lot about how to convert between various frame rates. Basic frame rate conversion works by dropping or duplicating frames. For example converting 30fps material to 25fps material will drop one frame in every six. More advanced techniques such as those employed by Motion Perfect or MSU AFRC are able to create new frames based on the existing frames that exist. These frames are more than a simple blend of the existing frames and use motion detection algorithms to resolve an intermediate frame from two source frames.

The approach that I would like to try is to use tricubic interpolation this is similar to the well known bicubic interpolation that is used to scale images in two dimensions. Tricubic interpolation operates in three dimensions x y and t. While there exists a library for calculating interpolated points in three dimensions, I have no clue how to use the library for my purposes because I do not yet fully understand how to compute the numerical derivatives.