Thursday, January 28, 2010

A new video is "Glacially Inevitable"

Spoiler Alert! The following little article describes many details that may spoil or give away surprises in the following new music video, so if you have not yet seen it, I suggest you watch it first, then read the rest of this article :-) Also, YouTube by default displays these movies in a lower-quality mode, where the music is grainy and the video is small. In order to see this video with better quality audio and video, you can go to the actual movie page by clicking here, and then immediately choose the bigger/better quality version before it starts playing (choose the larger number "480p" in the little pop-up menu at the bottom of the movie player, as well as the two little right-angle arrows to enlarge the display.) For the rest of us impatient-types, the lower-quality version can be instantly watched right here instead.



Back in April 2007 I wrote a slow ambient piece of music by computer-generating a nice chord progression, then slowing it way way down. My thought was to make the music so achingly slow that the listener would begin anticipating the next chord change, but eventually be forced to relax and let the music move at its own glacial pace, and possibly start to enjoy all the sounds "between the notes."

I also wanted to choose synthesizer voices that gave a cold crystalline ring to the music, especially since slow frosty bells are one of the trademark sounds of my "ic42" compositions.

And given my penchant for puns, since the piece was written in C sharp, and it was icy cold and slow, I chose the title "Icy Sharp - Glacially Inevitable." The original 2007-era piece can be heard here.

Now almost three years later, spurred on by a "2010 Reunion Challenge" at Macjams, my main music composition website/hangout, I decided to enhance and extend this piece, reworking the voices, and making a video to accompany it. Unfortunately, being in Southern California meant that I could not video-tape nearby glaciers or ice caves. So I decided to take a more abstract approach... I would build my own computer-generated ice palace instead, using my favorite computer graphics software, POV-Ray.

Since I'm an old-school software engineer by trade, I tend to visualize these 3D worlds in text coordinates. I just never got into those new-fangled fancy 3D modeler visualization tools. That means that when I want a glass oval kind of shape like this:
raytrace povray refraction droplet
I create it by typing in some text commands that look like this:

#declare CrystalShape = sphere
{
<0,0,0>, 1 // 1-unit diameter at origin
interior {ior 1.3} // refractive
scale <1, 1, 0.7> // squish slightly on z axis
rotate -y*360*CLOCK/2 // twist slowly on y axis
}

... and to make a bunch of them rise and twist into a tower, I delicately stack them in nested "while loops" of text commands:

#if (GOING_UP != 0)
#declare LIFT_CLOCK = SegmentRampSin(0.45,0.9, CLOCK); // up: 0 to 1
#else
#declare LIFT_CLOCK = 1-SegmentRampSin(0.1,0.4, CLOCK); // down: 1 to 0
#end

#local pTotalItems = 25; // # of crystals around the perimeter
#local pStartRadius = 10;
#local pTotalHeight = 15;
#local pTwistPerLevel = 0+LIFT_CLOCK*8; // degrees

#local currHeight = 0;
#while (currHeight < pTotalHeight) // 1-outer loop
#local heightTwist = pTwistPerLevel*currHeight;
union // of a loop of crystals
{
#local currItem = 0;
#while (currItem < pTotalItems) // 2-inner loop
#local currAngle = currItem/pTotalItems*360 + heightTwist;
object
{
CrystalShape
texture {CrystalTex}
scale 1/(currHeight/3+1)
translate
rotate -currAngle*y
}
#local currItem = currItem +1;
#end // while 2-inner
} // union
#local pStartRadius = pStartRadius*4/5;

#local currHeight = currHeight +1;
#end // while 1-outer

Do you see it yet? At this point, a few of you are nodding in nerdy excitement, and the rest are just nodding off. Hang in there! Just a little more math, then back to interesting stuff, including my discovery of how to do those movie credits at the end.

So, in order to animate this, I had to create 1,200 unique images to build a single scene, and there were 6 scenes in the whole movie. And because of the complexity of each image (with many refracting crystals, soft shadows, and anti-aliasing on), it was taking about 10 minutes for my computer to create just one image. So just a moment (invokes the calculator)... 1,200 images multiplied by 6 scenes, multiplied by 10 minutes each... meant that it would take about 1,200 hours, or 50 days to generate all the images for this movie! I didn't have that much time, so of course, I cheated. I have a 4-core computer, so I made 4 copies of my rendering program, and ran the 4 programs at the same time, each copy creating a different range of scenes. Now it would only take about 13 days to render all the images. One of the drawbacks of this approach was that made it extremely difficult for me to even check e-mail on my computer since it was running full-blast for 2 weeks. On the positive side, the dragon's den (my computer room) was nice and toasty-warm during that time.

As I began to see the movie take shape, I started thinking about the original name of the music. This ice palace I had created was indeed icy, but it was all rounded and had no sharp edges. So to reduce confusion, I renamed the music video simply "Glacially Inevitable", hoping nobody would notice the text-tonic shift away from the originally dominant music title "Icy Sharp."

The first draft of the movie only had 5 scenes in it, not 6. Luckily I have a captive test audience who is amazingly creative and offers me invaluable critiques and advice. My wife watched an early draft of the movie and said it... "is unresolved, it feels like it is missing something. Can you add another scene, and maybe have the crystal tower melt back down into liquid at the end?"

Ooh, great idea! Oh, but wait a minute... I had built the tower so it could lift up, but not so that it could melt back down... that would take some surgical re-programming, and another 1200 images to create for this new 6th scene. But she was right, it was exactly what the movie needed, and I still had some time left to finish this up before the due-date of February 1, 2010. So I re-worked the graphics and added the water pooling out (and the ripples slowly subsiding, if you watch closely) and started up the rendering of the last scene. While waiting for it to finish, I started assembling the movie scenes in Final Cut and began working on the credits at the end of the movie. Did you know that Final Cut will accept a PDF file and display it like an image? I didn't, until I tried dragging one into the Final Cut project. This discovery meant that I could now make fancier looking credits in a regular old word processor, with multiple fonts, and even embedded images, and have that become the scrolling credits! One more little trick in my movie-making toolbox now... and I promise to use this power for good (I have seen some rather garish and nauseating credits lately.)

Here is the finished product, all sparkly and presented (in all its facets of meaning) for your enjoyment and your thoughts. As always, I look forward to any feelings/interpretations/critiques of my music and video. Drop me a comment or an e-mail, I would love to hear from you.

ttfn,
Eduard, aka "ic42"

2 comments:

Lynda Lehmann said...

Otherworldly and fascinating! You totally lost me on the technical aspects, but I admire your facility.

I DID find myself anticipating the next chord....

A wonderful and meditative, if not eerie, experience! I'm going to tweet your post.

Drakonis said...

@Lynda - I'll be the first to admit that the geeky technical aspects are not for everyone... my hope was to create something visually and aurally intriguing (and explain a little about how I made it), and if you liked it enough to tweet it, then I'm overjoyed! Thank you for your interest in this rather different art form. Now I can delve deeper into more of YOUR artwork.
ttfn,
Eduard