caustik's blog

programming and music

March 2016 Trance Mix

without comments

01. Boom Jinx, Daniel Kandi – Azzura (Juventa Vs. Willem de Roo Remix)
02. Juventa – Like These Eyes (Answer42 Remix)
03. Bakke – Birds (Atmos Remix)
04. Solarstone – Twisted Wing feat. Julie Scott (Dave Horne Remix)
05. Alex O’Rion – Satellites (Thomas Coastline Remix)
06. Mino Safy – Patience (Original Mix)
07. Ovnimoon – High Nrg (Original Mix)
08. Spark7, Bec Peters – Pieces Broken (Solid Stone Remix)
09. Alex M.O.R.P.H., Chriss Ortega – Ocean Drive (Protoculture Remix)
10. Estiva – Fame (Masters Series Edit)
11. Alex O’Rion – Changing Pace (Original Mix)
12. Mat Zo – Back In Time (Original Mix)
13. Airwave – The Moment Of Truth (Matt Holliday Remix)
14. Tempo Glusto – Spatter Analysis (Original Mix)
15. Oliver Smith – Cadence (Original Mix)
16. Offshore Wind, Aimoon – Alpha (Original Mix)
17. Aimoon – Snowball (Original Mix)
18. Hudson & Kant – Coconut (Solid Stone Remix)
19. Leon Bolier, LWB – Deep Red (Original Mix)
20. Sunset, Mino Safy – Prometheus (Iversoon & Alex Daf Remix)
21. M6, Klauss Goulart – Hidden Light (Skytech Remix)
22. Matt Hardwick, Mark Pleder – Fallen Tides feat. Melina Gareh (Mat Zo Vocal Remix)

Written by caustik

March 18th, 2016 at 4:08 pm

Sound Level Meter for Music Production

without comments

For all the time I’ve been spending in the home studio messing around with music production, I really haven’t written any blog articles about the topic in a very long time. So let’s start out with one of the essential tools of the trade. One of the difficulties while mixing/mastering music is making sure you’re judging changes fairly. When you slap a new plug-in onto your mix, often times it will increase the volume which winds up tricking your brain into interpreting the result as “better” – in fact, I suppose the vast majority of audio plugins rely on this little trick to make themselves appear more valuable than they really are. For the sake of fair evaluation of changes to your mix, it’s really important to compare them at as close to equal loudness as you can manage.

So that’s one reason why loudness is important to be aware of and to have control over. Ear fatigue is another reason. Of course music tends to sound “better” when you crank it up to 11, but when you’re mixing/mastering, you want to be able to sustain your listening level without fatiguing your ears so much they’re no longer hearing the important details which you’re trying to improve in subtle ways. You also want to become accustomed to a fairly standard listening loudness so you develop an intuition on how to compare how good things sound in comparison to everything you’ve heard in the past.

Taking these reasons into consideration, an essential tool for music production is to have an objective sense of how loud your current listening environment is. Sure you can make it a habit of setting the volume knobs on your computer and/or music hardware to the same position every time you listen – but internal to your audio workstation the levels are going to vary pretty wildly.

Enter the Sound Level Meter. I’ve got one which looks a bit like this below. Not terribly expensive and it comes in handy to make sure I’m keeping my actual listening volume consistent each time I work on a mix. You can select between fast/slow response and choose from a few weighting methods. These attempt to take into consideration the different apparent loudness caused by different frequency ranges. Human hearing isn’t linear in any sense of the word, and that includes how we perceive loudness across different frequencies. In fact, the so called “equal loudness counter” even changes depending on the overall loudness of the audio (yikes!).


Most of the time, I try to keep my listening levels centered around 70 dB or maybe 80 dB at the most. It’s a comfortable volume where you can generally hear the small details but without causing hearing fatigue. This Sound Level Meter makes it very simple to get into the habit. After doing this for a few years, I rarely need to even check the meter anymore because that loudness now just sounds “right” to me and whenever I touch the volume control that’s where it tends to wind up.

Written by caustik

March 11th, 2016 at 9:49 pm

Posted in Music,Production

Tagged with ,

VST for automating MIDI program changes

with 2 comments

There’s a piece of functionality missing from Ableton Live. Say you’ve got an external device who’s knobs and other controls you’re using as input to Ableton Live through the MIDI learn functionality. This works great for controlling things like volume levels, effects parameters, etc. But oddly enough you can’t use this method to control program changes on an instrument. I searched the internet for a few hours trying to find a solution, until finally deciding to just program it myself. So a couple hours later, introducing the “RGProgram” VSTPlugin. Each time you change any one of the values (Program, Bank, Sub-bank), a MIDI program change message is sent out from the VST plugin. So you can use the routing in Ableton to send that MIDI output to whichever device(s) you’d like the program changes sent to, and map the plugin parameters to whatever MIDI controller you want.

I’ve only tested this in Ableton Live, so apologies if there are any compatibility issues.

RGProgramInstaller.exe (32-bit installer)
RGProgram.dll (or you can just copy the plugin to your VST folder manually)

Written by caustik

April 8th, 2015 at 10:53 pm

Set Theory – Parallel Interval

without comments

This is probably the most common harmonic mixing transition – corresponding to one counter-clockwise rotation on the circle of fifths. In this case, the first track is in Bb minor phrygian, and the second track is Eb minor phrygian. So the root key has shifted up by 5 semitones. I call this a parallel interval because, due to the modes being the same, all notes are transposed an equal amount. Most harmonic mixing tools don’t actually differentiate between the different minor/major modes (instead only detecting major or minor and the root), so a parallel interval is a bit more specific. The transition starts at 6:10.

Ost & Meyer Vs 7 Skies – Dharma (Original Mix)
Markus Schulz feat. Sir Adrian – Away (Cosmic Gate Remix)

Here’s a full mix which uses this transition exclusively:

Written by caustik

March 7th, 2015 at 10:01 pm

Set Theory – Complement

without comments

There’s a concept in musical set theory called complement, where the set of notes is given as the set of all notes which are not included in the original set. Applied to a musical mode, there may be multiple complements. In this case, I’ve chosen the complement whose root is a tritonic interval (6 semitones) from the original note. Specifically, the mode of the first track is A minor dorian and the mode of the second track is Eb Major Mixolydian.

This transition begins at 4:36, pivots at 5:34, and completes at 6:04. Try to pay attention to the notes involved, most prominent being the tritonal interval between roots. I’ll be uploading more examples of various mode transitions, cause it’s neat IMO.

Erick Strong – Payback (Matthew Nagle Remix)
Quincy Weigert – On A Midsummer Night (Bjorn Akesson Remix)

Written by caustik

March 6th, 2015 at 10:30 pm

2012 Trance Mix

with 2 comments

http://soundcloud.com/caustik/2012-trance-mix

01. Neptune Project – Aztec (Original Mix) [Armada Music]
02. Henix E-Motion (Dito Groovespot Remix) [Phoenix Recordings]
03. Rapha & Reminder – Beyond The Clouds (Rapha Remix) [Vision Soundcarriers]
04. Static Blue – Fade Away (Ian Betts Mix) [Amon Vision]
05. Moonbeam – See The Difference Inside (Inside Mix) [Songbird (BH)]
06. Ralph Novell – Wrong Love (Alphazone Remix) [Skywarp Records]
07. Talla 2XLC feat. Skysurfer – Terra Australia (Jorn van Deynhoven Remix) [Armada Music]
08. Joop – The Future (Markus Schulz Remix) [High Contrast Recordings]
09. Push – Global Age (Original Mix) [Armada Music]
10. Aleete – Passion (Omen Remix) [Wild Records]
11. Nuera – Nostalgia (Original Mix) [Magic Island Recordings]
12. High Above – Eclipse (Northern Project Remix) [Resonate]

Written by caustik

September 2nd, 2012 at 9:23 pm

Guild Wars 2 + F.lux

with one comment

There’s an awesome utility called F.lux which automatically tweaks your monitor colors throughout the day, to make your display easier on the eyes. The problem is, it doesn’t work with fullscreen games, by default.

Luckily, there is a cool utility called Color Clutch which was created as a way to get around the fact that Windows desktop color calibration doesn’t apply to DirectX fullscreen mode. It accomplishes this using function hooking, so it won’t work for all games (games with strict anti-cheat detection will get a false positive on it).

To get this working, just download Color Clutch from the website above. Create a batch file with contents like this (you will need to use the correct paths):

inject.exe "D:\cclutch\cclutch_ix.dll" patch "C:\Program Files (x86)\Guild Wars 2\gw2.exe"

Now, just run that batch file when you want to launch Guild Wars 2.

If the game you want to use F.lux with is using a different version of DirectX, you’ll need to modify the batch file to point to a different version of ccluch_*.dll – easy enough.

Written by caustik

August 31st, 2012 at 3:47 am

Posted in Games

Tagged with , , ,

Half-dome hike in Yosemite, CA / cables lottery

without comments

Recently, myself and a friend did the Half-dome hike in Yosemite, CA.

Half-dome summit

The last bit of this hike requires the use of cables, to reach the summit. In the past, this area has become very crowded, and they’ve since began to use a lottery process to divvy out permits, thus limiting traffic. You “must” have a permit to reach the summit, and this permit is actually checked at the start of a rocky / steep climb leading up to the cables. So, the permit is really important to get your hands on, if you want to do the full hike.

Since this trip was spontaneous, there was no opportunity to participate in the advance lottery. This being the case, our only choice was to attempt to enter the daily lottery for each of the 3 days that would work for us. So, each day we entered the lotto, using the very weak and unreliable cell phone signal to slowly enter credit card info for the submission process.

We didn’t win the lottery, on any of the 3 attempts.

I figured there was still a chance we could get onto the cables, somehow – so, we set out to leave the trail head by 6:30am. We took the Mist Trail, starting from the valley, at a quick pace and without making any significant stops along the way. Toward the tail end of the hike, nearing the start of the permit checking area, my friend made conversation with a guy and his son. It turns out, basically their entire group had bailed out on the hike, and were still at camp (side note: it’s frustrating to know that, for a lottery which has low odds of winning, there are some who win the lotto and then don’t even use their permit). They offered to allow us to head up with them, using their extra permit slots.

They were moving at a slower pace, so we made it to the permit station before them. Since our start time was early, and our pace fast, we actually reached the permit area before the permit-checking ranger even got there. There was another ranger there, and she was telling people – If you have a permit, you can go ahead, the other ranger will be here on your way down, and will check your permit then.

Rather than sit around waiting for the other ranger, we headed up without a permit.

Half-dome cables

So, everything worked out – even though we didn’t have a permit. On the way back down, the permit-checking ranger was there. We just told her the name of the guy, and she let us leave (what could she do, anyway?) – supposedly, we’re meant to stay with the group or they won’t allow you up, but obviously it’s a moot point since we were already done with the cables. The website actually claims you can receive a significant fine, or even jail time, for going up without a permit – but, given the scenario I think the odds were about zero of that happening.

Written by caustik

August 27th, 2012 at 11:55 pm

Crucial SSD firmware bug, crashes/BSOD

with 3 comments

Recently, I left for about a week on vacation. After coming home, I noticed this PC had crashed. After restarting, it crashed again an hour later. After restarting, it crashed again… an hour later.

After checking the hot-swap bay on my Corsair 800D (bypassing it by connecting direct), re-arranging the power cables to daisy chain less drives on a single cable, swapping SATA cables between the working and broken drives, upgrading the BIOS, and a few other things.. I finally came across this forum post for my Crucial SSD’s firmware:

http://forum.crucial.com/t5/Solid-State-Drives-SSD/Firmware-Update-Notifications/td-p/57854

Release Date: 01/13/2012
Change Log:

  • Changes made in version 0002 (m4 can be updated to revision 0309 directly from either revision 0001, 0002, or 0009)
  • Correct a condition where an incorrect response to a SMART counter will cause the m4 drive to become unresponsive after 5184 hours of Power-on time. The drive will recover after a power cycle, however, this failure will repeat once per hour after reaching this point. The condition will allow the end user to successfully update firmware, and poses no risk to user or system data stored on the drive.

Apparently, after 5184 hours, the default firmware on these drives causes the drive to “disappear” an hour after booting up – due to some S.M.A.R.T. related bug. This timeout doesn’t reset until you power OFF, so the drive will still be missing from the BIOS settings after a crash and soft reboot.

Crucial claims there is no risk of data loss – but that’s completely false, as the associated BSOD / freeze degraded my RAID mirrors almost every time this happened. It also corrupted the truecrypt volume I had mounted – every time. That the failing drive itself flushes it’s caches isn’t enough to prevent data loss on other drives as an indirect result of the failure!

I would have never guessed, at the start of this problem, that hard drive firmware could have been the issue. To be honest, I don’t usually even think to upgrade hard drive firmware.. since when did that become a necessary maintenance step?

After a firmware upgrade for both drives (I’m using 2 in a striped RAID), everything is back to stable :)

Written by caustik

August 23rd, 2012 at 5:11 pm

Posted in Programming

Tagged with , , , ,

AIM bookmark bot

without comments

I coded thisĀ AIM bot, quite a while ago, which lets you add/remove/search bookmarks. It was written using the C interface to Amazon’s SimpleDB and the AIM SDK. It’s pretty basic. Just send an IM to “whutsnu” on AIM, and he’ll reply with the list of commands.

The “export” command hasn’t worked for quite a while, because the domain expired. The other features work, though. This was originally meant to be one part of a larger project.

Written by caustik

August 20th, 2012 at 6:14 pm

Posted in Programming

Tagged with , ,