This post is completely unrelated to Paint.NET. Well, sort of.

Back in college I spent a lot of time working on a graphics library in C++, which I used to write a visualization plugin for Winamp. It was known by the name “Quasar” until I released it publicly and renamed it to “Epica” and bumped the version tag to 2.0. The second and last release was version 2.10 and it accumulated about 250,000 downloads on Winamp.com before I took it down in 2002.

Well, the other day I tracked down the Epica installer from my old college-hosted website. I installed the latest version of Winamp, which I think is 5.6789 or something weird, and to my surprise, my plugin still worked! It looks great on the media center PC at 1920 x 1080 on my new Samsung LN-T4671F TV (46″ LCD, absolutely beautiful thing).

The official requirements are Winamp 2.xx or newer, a few extra megabytes of memory, and a Pentium with MMX. I recommend you have at least a Pentium III, which these days shouldn’t really be a problem. By default it will probably try to run at 800×600 so I recommend going into the configuration settings and cranking up the resolution! I’ve posted a download link at the bottom of this blog post.

One of the cool things about Epica is that it gives you a lot of interactive control over the visuals. Press F1 while the thing is running and you’ll get a full page listing of all the keyboard controls. Oh, and you can even use a joystick for some of the stuff which I believe is documented in the README.TXT file. The idea is that it will try to do a good job automatically reacting to the music, but if you really want to put on a show then you can call the shots in real-time.

I actually used this for visuals at a student-body sponsored rave at WSU, called “Fusion II”, in 2001. This thing was projected up on a huge wall powered by my 800 MHz Pentium III and the awesome live music being performed by the likes of DJ Dan and Donald Glaude. There were a lot of people in the CUB Ballroom that night, and the plugin, as well as the other visuals I was doing, was a hit. They asked me to do the visuals the next year at Fusion 3 but I had to decline so I would have time to finish my junior-year Computer Science 360 project (“File Systems”). So that means I finished up Epica when I was a sophomore at WSU.

In total, the plugin comprised over 30,000 lines of C++ and inline assembly code. I learned a lot about computer graphics and performance programming, as well as software development and usability. I used assembly language so I could get at MMX and SSE where I was able to eek out 75% to 150% performance gains over regular C code. They don’t teach you this stuff in class, folks. I exercised a lot of my experience from Epica while writing Paint.NET. Nowadays I don’t do any assembly language but prefer instead to use multiple threads and parallelizable algorithms.

Oh yeah, you can download it here: http://www.dotpdn.com/files/Epica210.zip . Remember, you must have Winamp installed. The latest version works, and the whole thing is Vista compatible as well. Have fun!

Advertisements