Stereo Pan 2.0: now with "subtle mode"

Oh well, better late than never. I present to you the next version of Stereo Pan (announcement for previous version), introducing a second mode of operation: the subtle mode. It’s called that because its effect is more subtle. Duh.

A great property of it is that it doesn’t distort the sound if the output is downmixed to mono. If you downmix to mono while using Stereo Pan in its normal mode, you get a flanger-style effect on the sound. That’s yucky. Now you can choose whether you want to get better mono compatibility or more noticable stereo expansion.

As requested, this post contains example sound files, so you don’t have to buy it without knowing what it sounds like. Then again, it’s for free anyway (feel free to use it for whatever you want but please refer people to this page instead of giving the plugin itself to others).

In subtle mode, the sliders titled “Ctr gain” and “Ctr lowpass” don’t have any effect. I was going to have the plugin hide them when subtle mode is enabled but it’s just too much work. I don’t really care that much. You have been warned.


This section contains six different versions of an excerpt of a song of mine, “Dry Spell”. The effect has been applied to the lead vocals in some of these files. It’s most noticable if you listen on headphones. I have removed the reverb on the lead vocals so it doesn’t get in the way of seeing what Stereo Pan does to the sound. All of the links refer to MP3 files of about 200 to 250 KB each.

Boring technical details

Subtle mode uses the concept of comb filtering for real: it splits the frequency spectrum of the signal into bands, all the same “size”, and pans the “even” bands left and the “odd” bands right. That’s why downmixing doesn’t hurt the sound: you get pretty much the same thing you had before the effect was applied. The effect is more subtle this way because the transients (“sharp” sounds) in the signal aren’t actually duplicated, so the two channels sound less distinctive… taken together, anyway. Use the two output channels separately at your own risk!


Current version for Windows: Stereo Pan 2.0 (ZIP archive, 219 KB)

Current version for MacOS X: still not available. I don’t have OS X and cross-compiling for it is a lot more complicated than I anticipated. Sorry.

To install, extract the ZIP archive to your VST plugins folder (often C:\Program Files\Steinberg\VstPlugins). You may need to restart your DAW after that, or tell it to re-scan the plugins folder. That’s it!


If you can’t figure out how to use it, tough luck.

My first journey into writing VST plugins: a stereo expander

(A newer version is available!)

So perhaps you noticed that I’m a musician and also a coder. What better than to combine both of those and write software I can use when making music?

My first project for this was writing a VST plugin (VST is a trademark of Steinberg Media Technologies GmbH and it’s basically an effect interface supported by a large number of DAW applications) that does stereo expanding. What’s that, then?

A trick that’s well known among musicians and mixing engineers for making something sound fuller is to record the exact same thing twice and then superimpose these two takes. A special case of that is putting one take in the left stereo channel and the other in the right. If you do that, it will sound a lot “wider” in the song, and it will also dominate the overall sound of the song a lot more.

Sometimes, though, you’re short on time or don’t have two takes of something handy (or it’s actually impossible to get two takes). Enter stereo expanders! They basically pretend that you recorded two takes, and pan them left/right for you. I’ve got one right here for you, and it’s free to download.

Read the rest

Pain made useful: a story

I haven’t posted anything for months, but I feel very strongly about an experience I had yesterday and I want to tell you about it. This is a story involving a person who had been feeling extremely strong pain for months and months, and myself.

At first glance this post will look like it’s rather unrelated to what I have posted about before. In fact, it’s about the human mind and about how it works, and about how it changes.

Please understand that I have to suppress a lot of details and slightly warp the story to protect the identity of that person. I just flipped a coin to determine that I’ll be presenting that person as male, and I’ll call him Chris. I don’t know any person called Chris, so I guess that’s okay.

So Chris had been trying everything he could find. Pain medication, stronger pain medication, elaborate diagnostics, alternative approaches to healing, everything. All doctors pretty much agreed that there was no physiological basis for the pain. Chris found that hard to accept, because that had to mean that it’s a psychosomatic thing; a signal from the body that things aren’t going right… a signal that change needs to happen. Still, he started looking into psychotherapy. A few attempts had no real effect; at some point he found a therapist who could indeed help him reduce the pain for a while (in exchange for a lot of money, of course). A permanent solution wasn’t in sight, though. The last thing he tried was an inpatient therapy, during which on some days he actually felt really good… but there wasn’t any method to it. The pain would keep on coming back.

Then we met, and we talked about it.

Read the rest

Managing your web passwords the portable and secure way

Dear users of browsers other than Firefox, I’m not talking to you now. Sorry. Dear remaining readers, have you ever disliked having to a) remember all of your different passwords for all websites or b) store them on your local computer so you can’t get at them from other places or c) use the same password everywhere even if that makes the impact of security issues a lot worse? I used to go with option b) but I didn’t really like it. Now I’ve found something else; allow me to share.

Read the rest

Song Fight: Interesting Times

Good news! A couple of weeks ago I found the Song Fight website. Song Fight works like this: a song title is posted. You write a song for that title within a week and submit it to the fightmaster. When the week is up, the fightmaster will publish the list of all entries on the website. Visitors can now vote for songs until the songs of the next fight are published. The winner of a fight gets to brag… and not really anything else. Apart from a serious boost in creativity and musical skills when you make it a habit to participate, that is.

Yesterday (going by the local timezone) I submitted my first Song Fight entry for the title “Interesting Times”. It will be up on the Song Fight website shortly, and it’s now available here.

Read the rest

Using TrueCrypt(R)'s encrypted system partitions from Linux, now with less bugs

Take note if you had problems using dmsetup-tc, the program I published last month that allows you to use TrueCrypt®’s encrypted system drives/partitions (also called the “pre-boot authentication” feature) from Linux environments (and possibly other Unices). I have found a few rather embarassing bugs in it that made it rather unusable in pretty much all cases (it’s actually really astonishing that it even worked for myself…). So if previously you got a cryptic message like “fatal error: Success”, now would be a great time to try again.

Download dmsetup-tc 0.2 or review the original article about dmsetup-tc that explains the details. As usual, feedback is appreciated.

How to use TrueCrypt®-encrypted Windows system drives on Linux

Update: I made this program in 2008. In the meantime, some other guy appears to have written his own, apparently much more complete re-implementation. Feel free to check it out here: – chances are that if that one works for you, I won’t be updating dmsetup-tc anymore.

TrueCrypt® is a multi-platform on-the-fly drive encryption tool. It allows you to encrypt all your data in a filesystem and still use everything normally. On Windows, it supports encrypting the system (boot) partition (or the entire boot drive); you can even make TrueCrypt® encrypt your existing partitions live and continue working (though the I/O performance sucks until it’s finished encrypting everything), pause and resume the encryption process (even across reboots). In short: it’s rather useful.

Even though TrueCrypt® introduced Windows system encryption in version 5.0 in February 2008 (that’s five months ago), its Linux version still doesn’t support accessing these encrypted partitions at all (it does mount “normal” TrueCrypt® volumes though). Since I recently encrypted my entire Windows drive but couldn’t live without the music files stored on it, I now humbly present the result of two wasted nights: a solution.

Read the rest

Finally: the perfect CAPTCHA

CAPTCHAs: these warped images you have to copy text out of in order to submit comments on an ever-growing number of websites.

The warped image approach has a number of serious flaws. Firstly, there is a strong correlation between the difficulty bots have with extracting the code from the image and the difficulty humans have with extracting the code from the image. In some cases, I hear it’s actually easier for machines than it is for humans.

Secondly, blind people and people without graphical output on their computers are automatically banned from your CAPTCHA-protected system. Bad.

A different approach is needed. Text-based CAPTCHAs, however, would likely require a knowledge base that challenges are generated from, and due to technical limitations, that knowledge base would probably be finite. A finite knowledge base means that it can probably be inferred from a decent number of challenges.

Some other approaches, such as Hashcash-style challenges, require that the user’s computer solves a difficult mathematical problem which ensures that it will be busy for quite a while until the correct solution is obtained (and the challenge can thus be passed). Again, this results in problems with accessibility.

Luckily, there is an alternative family of approaches that make spamming absolutely infeasible without causing any of the typical accessibility issues. As you know, spamming only pays off due to the ludicrously large number of places you can put your advertisements. Were said places to implement a disincentive to placing a large number of ads, spam would instantly leave them alone.

Enter the disincentive-based solution: ccCAPTCHA. Developed by myself, it works by charging commenters a certain monetary value. All the user has to do is supply their credit card number. You can now test ccCAPTCHA online at my ccCAPTCHA prototype site. On that page, I’m also making the technical parts of ccCAPTCHA available to other interested webmasters. And it’s all for free!

You’re welcome.


The following is a selection of user-submitted comments from the previous iteration of this website.

Your SSH client isn’t as fully featured as the iPhone ssh client

iPhone SSH Client

My first take on the "Album A Day" challenge

Tom7, also known as Tom Murphy VII, has been challenging musicians to create an entire album in 24 hours. Consecutive hours, that is. In other words, this challenge is an excellent source of sleep deprivation and a great way to avoid doing things I ought to be doing instead. So I thought to myself: one day I simply must give this a try. That day was today (and yesterday). I proudly present my first Album-A-Day: You Vs. The Others.

I’d been contemplating creating an AAD since I first heard of it (which was a long time ago), but now I actually sat down and did it.

I deliberately didn’t listen to any of the existing AADs so that I didn’t have any pressure to reach any particular level of quality. I just went with pretty much all ideas that popped up in my head and made them into something longer than a minute (well, with one exception).

I started out at 10 pm (that’s yesterday, obviously) and it went pretty well. After a quarter of the allotted time was over, I already had eight minutes worth of music finished. Especially after the first song, I was rather impressed with myself. I wouldn’t have expected to be able to accomplish this much in this little time.

At 2 pm I took a break that ended up lasting until about 6 pm (I decided to get a bit of sleep after being awake for 24 hours in a row). At this point I had five songs finished, totalling at 14 minutes and 17 seconds. When the break ended, I spent about half of the remaining time lazing around recharging creativity and the rest writing the last couple of songs. I grudgingly had to include a purely instrumental (and completely improvised) song of two minutes and ten seconds to make it before the deadline. Well, that’s life.

Take it out for a test drive

Since I don’t care for exceeding my traffic limits, I have uploaded the songs to the Internet Archive. You can listen to them using some black Flash magic, or download them from the Internet Archive details page.

You Vs. The Others by Jan Krüger is licensed under a Creative Commons Attribution-Share Alike 3.0 Germany License.

Please note that the Flash thing below uses MP3 files of Some Quality, so you’d better have a broadband connection.

Data about the album

  • Title: You Vs. The Others
  • Total time spent, including breaks: about 23 hours and 40 minutes (from 2008-04-19 22:00 to 2008-04-20 21:40 CEST)
  • Authors and participants: me and myself.
  • Recording gear:
    • Yamaha MG 10/2 (miniature mixing panel)
    • Studio Projects B1 1″ condenser microphone
    • Sennheiser E835s dynamic microphone
    • REAPER 2.201, a really cool multi-track audio sequencing application
  • Instruments:
    • Voice (mine. Repeatedly.)
    • Guitar (nylon and steel acoustic)
    • Samplers (Cockos ReaSynth & ReaSynthDr and E-MU Proteus X LE)
  • Full length: 20:02 (according to media player) or 20:01 (when I add up the numbers myself). Barely qualifies!
  • Average length of songs: 2:13 (standard deviation: 0:45)

Now for the individual songs. Yes, the official track numbering does start at zero.

0. Take Your Time

This isn’t actually the first song I wrote, it’s the third. Apart from that, this list is in chronological order. I thought some sort of intro would be nice. It’s supposed to add a bit of perspective to the overall album, so there is a reference to the AAD challenge in it.

  • Length: 2:01
  • Took me: 90 minutes
  • Lyrics

1. Go Alone

Sometimes, you have to do things yourself. Outside help is a great thing but not if you’re going to lord your accomplishments over others; then you must work alone.

  • Length: 3:37
  • Took me: 4 hours
  • Lyrics

2. Feature Creep

The nightmare of every programmer. There are no fixed requirements and suddenly you’re supposed to make your software do everything on the fricking earth. By the way, feature creep can occur in songs, too.

  • Length: 2:29
  • Took me: 4 hours
  • Lyrics

3. Until The End

Atheists. Pesky buggers. How can they honestly believe something that isn’t what I believe? I know I’m right! I always am.

  • Length: 3:53
  • Took me: 90 minutes
  • Lyrics

4. Going Down

A bit morbid perhaps.

  • Length: 2:28
  • Took me: 30 minutes (plus time to get the creative thing going)
  • Lyrics

5. Sucks To Be Them

Why not flaunt it for once? Just because they’re unhappy doesn’t mean you have to be. And you can make them even more unhappy by telling them so in the smuggest fashion you can muster.

  • Length: 1:37
  • Took me: 8 hours and 20 minutes (subtract the huge break and lots of laziness and it’s 1 hour 20 minutes)
  • Lyrics

6. Cake

I defeated GLaDOS and all I got was this lousy song. Warning: contains spoilers for a certain video game.

  • Length: 1:34
  • Took me: 1 hour
  • Lyrics

7. Improvised Right Padding

Nothing to comment on, but without this one I would never have managed the 20 minutes requirement.

  • Length: 2:10
  • Took me: 2:10 times two :)

8. 23 Seconds

“Why not cut it as close as possible and still mess with some people’s heads?” I thought to myself. 23 seconds indeed.

  • Length: 0:23 (oh, really!)
  • Took me: 5 minutes
  • Lyrics

There is no hidden bonus track. There can’t be. I would have run out of time.