Monday, February 25, 2013

A Whirlwind of Words

I have a memory of being a 6-year-old in a "Colony Kitchen" restaurant with my family, waiting for my burger and a chocolate shake… and in front of me was a paper placemat, with a puzzle printed on it.  A grid filled with random letters, but hidden in the grid were words, up, backwards, and on diagonals.  And it was my job to find all the words before my dinner came.  I loved these kinds of puzzles.
Fast forward several decades, and I thought it was time to create my own word search puzzle making app.  After all, how hard could it be to lay a bunch of words in a grid, and fill the rest with random letters?

Oh, the power of words.  Any engineer will tell you that the words "how hard could it be?" are a dangerous incantation that summon up a demon I nicknamed TOM (for "Titan of Midnight".)  TOM hides and waits in the shadows during the day, letting you think everything's easy.  Then at 15 minutes before dinner, TOM quietly injects a thought into your brain.  A seemingly innocuous thought.  But the more you think about it, the thought quickly grows into a tree of horrible problems.  Usually this thought becomes so overpowering and compelling that you will choose to skip dinner and keep working to solve the problem until midnight.  And TOM will be ready with another thought the next afternoon.

After working on the word search app for a couple of weeks, and thinking glibly that things were going really well as it started displaying giant word search puzzles, TOM stepped out of the shadows.  The first thought TOM whispered to me was: "what if the random letters accidentally create another copy of one of your words?"

I rebuffed TOM with, "Ha!  That's a one-in-a-million chance… I think?  Hmm… which means, it will happen, and users will find their word in the WRONG place, not where my answer key tells them it is, and they will report a BUG!  Dang, I have to fix that!"  So I wrote more code to scan every inch of the puzzle in every direction with each of the words, removing any randomly created user-words.  Then I ate my cold dinner and went to bed.

TOM was merciless.  That night I had a bad dream, full of bad words (I probably should avoid tamales at midnight.)  TOM growled obscenities in my ear… "what if the elementary school teacher makes puzzles for children, and your puzzle is filled with random naughty words?"

I awoke at 5 AM in a cold sweat.  Now I had to look for and eradicate any random swear words too!  Well, unless the user actually made a puzzle of naughty words, I would leave those alone.  Solving that problem was actually fun and interesting, including the difficulty I had trying to come up with a list of naughty words to look for.  But I definitely knew that this was NOT easy software to write.  And as I researched a lot of the "Free Web word search makers" out there, I realized that I was starting to solve some of the hard problems that others had run into.

TOM had a few more tricks to throw at me, like "What if the word BAT gets completely embedded inside the word BATH?"  So I had to make sure a word has at least one letter that is NOT embedded in another word.

But eventually TOM got banished by my beta testers and went to bother somebody else, and I finished my word search puzzle maker.  It is now available for Macintosh computers for $9.99 at the Mac App Store!

Here's a quick little video that gives you an idea of what it can do:

And here's a link to the information page for "Whirlwind WordSearch":

I would be thrilled to have you take a peek at "Whirlwind WordSearch", and tell me your thoughts!

And please be careful not to say that incantation around engineers!

Sunday, March 11, 2012

Wherefore art?

I always wished I could draw beautiful artwork with brushes and colors, but I wound up being a software engineer instead. That doesn't stop the urges though... between the lines of code, the artist in me continues to kick paint buckets and spill creative ideas all over my mind.

So occasionally the artist in me succumbs to the muse and I try to draw things. But sometimes the software engineer in me sighs and takes over, and thinks there might be a way to write a computer program to automatically create better artwork instead. As you can imagine, the right-brained artist and the left-brained engineer tend to scoff at each other over folded arms, and I usually wind up getting nothing done.

But the other day, the two of them got together while I wasn't paying attention, and they started working together on a secret project called "esnw". They pooled their ideas from all four corners of the globe. The artist described large groupings of abstract patterns and colors that might be interesting if combined. The software engineer captured and organized the patterns and colors, and devised a way to choose a different set of patterns and colors, based on a "roll of the dice."

The software engineer, when he finished the prototype, announced, "Pick a number, any number, and the software will use that number to generate a (usually) interesting abstract set of patterns!" The artist, still feeling rather skeptical, suggested the number 360. The engineer typed 360, and the computer immediately displayed this:

The artist was tickled by the circular irony, bold colors and juxtaposition of regular and irregular shapes. The smirk of the software engineer goaded the artist on... Artist: "how about 825?"

The artist was intrigued. "OK hot-shot, I like that combination of patterns, but I don't really like chartreuse in the foreground... I really like those geometric shapes better."

The software engineer didn't miss a beat, "Ah, so you want to know what that picture would look like on the other side of the looking glass? I'll just type in 'negative 825' then, shall I, and see what it looks like from the back?"

The artist was thinking big now.
Artist: "That's great... now, can you make that a 4x3 foot giant poster?"
Engineer: "Why sure, these can be created at any size."
Artist: "654321!"
Engineer: "654321, what? No, not that size... Oh, you mean create a new one? OK, here you go."

The artist was smug. "Well, that looks rather boring for such a large number."

The software engineer shrugged. "Beauty is in the eye of the beholder... I think that looks rather interesting, myself. I think I'll make that my desktop image."


After a week of work, the beginnings of a rather fun art-generator has begun. Currently it only goes up to a million (and down to negative-one-million on the back side,) but that is a lot of different images. And that is just one "world". I have at least 12 additional 3-dimensional worlds coming soon, each with a million possibilities... for example:

If you find this interesting and want to e-mail me a number, I will e-mail you back your very own piece of "esnw-abstract art" directly based on it. And stay tuned, other worlds are on their way!

Oh, the software engineer wants a last word: This is all written in the "POV-Ray" raytracing scene language, and one feature I am building in is the ability to not only write the image, but also to write the related POV-Ray scene text file (a language that can write itself) too, so that you could fine-tune colors and textures once you find a scene you like.

Monday, December 26, 2011

My music goes live!

Back in 2002 I began to write my own light airy flute and guitar arrangement of the Ukrainian New Year's carol "Щедрик", or Carol of the Bells as we know it these days, as a gift for my wife. I called it "Belle Aire", since the flute gave it a gentle "Aire" style, and my multi-lingual wordplay got me playing with bell/belle ("Morticia, that's French!" -- The Adams Family).

 I got part-way into writing it and morphing it into a 4/4 trance tune (of all things), then set it aside out of frustration with my lack of skill, and wrote a "Baroque/Bach" version of the carol instead ( "Belle Fugue" ). So, as I slowly learned more about music, the "Belle Aire" sketch gathered dust for years...


 in November 2011 I met a local mandolin player (Kevin), and we talked about how I wrote a little music here and there. He told me the "San Diego Mandolin Orchestra" group he was playing in had a Christmas concert coming up and they might be looking for new music to play, and did I have anything written for Mandolins and flute? My mind raced. This seemed like a great opportunity to re-orchestrate something, learn about a new instrument (the mandolin), and possibly have a piece of my music performed live!

But I only had a few weeks to come up with something. I remembered this very short (half-completed) "holiday" piece from almost a decade ago, and started researching the mandolin. Oh wait... I was then reminded that it is an orchestra, a whole FAMILY of instruments! Mandolin, Mandola, Octave-Mandolin, Mandolin-cello... I learned as much as I could about each instrument and its range and what clef each played in, then started reworking the music for these instruments. The flute's deceptive initial counter-melody (that makes the listener start wondering if this might not be Carol of the Bells at all) was already there and remained mostly intact, but I added some embellishments, like the short swing-section, bouncing the melody between guitars and 1st and 2nd mandolins in the middle, and putting in some of the characteristic mandolin tremolos near the end.

Well, to make a long story short, Jim Trepasso, conductor of the orchestra very kindly accepted my score, and had his musicians start practicing it for the performance. On December 21st, 2011, my wife and I drove down to attend the concert, at the Coronado Public Library. We offered to video-tape this and a few of the (more traditional) holiday pieces they played that evening, to give more exposure to the mandolin orchestra, and to the "Friends of the Coronado Library" who put on these concerts. The orchestra did an amazing job quickly learning and performing my piece for the concert, and the evening was a jam-packed success. Jim was embarrassingly generous with his introduction of me during the concert.

So, without further ado, here is a video recording of the San Diego Mandolin Orchestra performing "Belle Aire". And the Macjams audio recording here is the Garageband computerized rendition of the musical score itself (not the live performance) for comparison.  And the video size on this blog is tiny... you may want to watch it in a larger format directly from the YouTube site... just click the link below the movie.
 If the above video does not show up, just click this link to watch it on YouTube here.

But wait, there's more! Just for you, I have a free "computerized" recording of the original score (not this live recording) which you can listen to or download by clicking here.

Please visit the San Diego Mandolin Orchestra web site, buy some of their music, and take some time to go to your local library and support their concerts! Happy holidays, and as the original lyrics of "Carol of the Bells" suggest, may the swallow bring you good fortune and a bountiful new year!

My warmest thanks to Jim Trepasso for offering to have my music performed, to the Mandolin Orchestra musicians for practicing and performing so nicely, to Vanessa the flute player/Coronado librarian who helped set up the concert and played the flute part with such warmth, and to my wife who was half of our video-camera/roadie team, and always inspires me beyond words.

Monday, November 21, 2011

Combining arts and talents

Through the wonders of seemingly random internet connections, a wonderful painter found my music, and I found her artwork. After a little introduction and mutual admiration, we decided to blend our talents into an audio-visual feast. OK, perhaps that's a bit of a mouthful, maybe it is best to just cut straight to the movie. Natalya's hand-drawn artwork, and my music:

She works in colors and black-and-white, all painted by hand, and she is rumored to be showing in a gallery soon. The music is an updated version of my older piece "Quixotic Dreams", which you can read more about, by clicking here and reading the description.

Make sure to check out more of Natalya's works on her YouTube channel here.

Sunday, April 24, 2011

Published! Music Videos "Spring Forth" on DVD!

I am very happy to announce the availability of "Four Worlds", a DVD of four of my computer-animated music videos (over 22 minutes of videos)... and for those of you who have seen prior smaller YouTube versions of some of these, the music has now been updated and re-recorded, and the animations have been embellished and re-rendered in high-quality full-screen DVD format... and there is even a new never-before seen video, "Game the System" making its premiere only on this DVD.
Four Worlds - DVD Cover
I have personally written all the music, created/textured/animated all the accompanying computer-generated video scenes, and designed the printed jacket for the DVD case. I have also recorded a separate video teaser/trailer, to offer a taste of what is on the video, in case you are interested in purchasing a copy. Note that the video below is reduced-size to fit on this blog page. If you wish to see the trailer full-size, you may wish to CLICK HERE INSTEAD to view it directly on the product page:

Here is the official "text" announcement:

Come journey through four different surreal worlds... some playful, some mysterious, all of them thought-provoking. Each video has its own original music soundtrack composed to go hand-in-hand with the video.

#1 - Game the System - Frolic through a video-game fantasy world of kaleidoscopic excitement. Will you avoid the strange whirling parasols? Can you count all 10 sneaky sheep?

#2 - The Cherry Orchid - Float through a garden of crystal flowers, growing in a serene liquid pool at sunset.

#3 - Nebula Spin - Stroll through the nebula-hood with three chatty molecules as they search for the nearest star.

#4 - Glacially Inevitable - Experience glacial beauty and inevitable entropy... where time and music seem frozen, and icy sharp.

This NTSC region-free DVD contains over 22 minutes of animation. The 4 videos can be played individually, or sequentially in a loop.
You can find more information about this DVD (including on-line ordering) here: - Four Worlds Product Page -

I hope you enjoy this journey with me!


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
#declare LIFT_CLOCK = 1-SegmentRampSin(0.1,0.4, CLOCK); // down: 1 to 0

#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;
texture {CrystalTex}
scale 1/(currHeight/3+1)
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.

Eduard, aka "ic42"

Saturday, January 23, 2010

Universal Music

There are so many things to learn. As I learn to write music, I am also learning how to present it on the web to share with others. Recently, the very talented composer Keith Edwards contacted me, and warned me that although he had sent a couple friends to listen to some of my music on my web pages, they could not play any of it. It turned out that they were using Windows computers without QuickTime installed, something I didn't test!

So it was time for me to invoke some Google-fu and discover a better way to host my music. Originally I had lazily just let iWeb convert the MP3s into QuickTime movies for me. Later, I had toyed with installing a free Flash player, much as I detest Flash. Now, I am of the geeky "roll-your-own-HTML-in-a-text-editor" school, and a little voice kept telling me "This is the WEB! Let the end-user/browser decide how to play the content!" But how do I do that in a universal way? Search, read, try, search, read, try...

My re-searches eventually brought me to a moderately old but well-researched and still-relevant article by David Battino, that gave a chunk of Javascript code for embedding MP3s in your web page in a more foolproof way. Being a software engineer, I couldn't just use it as-is, but tinkered with it a little to suit my purposes (and clean it up a little) before installing it on my web site. Now my music pages are hopefully a little more universally playable, hopefully even on Linux. The formatting is simple... no fancy Flash players and widgets, just the music.  Please feel free to wander over to my newly remodeled music page (here) and try playing something from the list of pieces at the bottom of the page, and let me know if it works on your computer. Also, mention if you are on Mac/Windows/Linux/iPhone, and if it is all working OK.  Thank you for listening :)

Thursday, October 8, 2009

2=1: The end of the Experiment

Background (Music)
I was raised on all sorts of classical music... it often flowed through our home. It was mood music.

I was also raised on electronics, and built my own noise-making circuitry... Walter/Wendy Carlos' "Switched-on Bach" synthesizer music often flowed through my room. It was MOOG music.

So, I guess it is no surprise that my personal musical tastes have always bounced between the rich sonorities of symphonic woodwinds/strings/brass... and the unearthly-but-intriguing tones of synthesized instruments. I've always been interested in the baroque/classical musical forms, as well as experimental algorithmic/computer-generated compositions... two very different ways of creating music.

When I began seriously focusing on composing and publicly posting my music (as "serious" as a hobby can be), I initially confined myself to real-world instrument sounds and conventional compositions. But soon the experimental side of me wanted to explore and share. I had begun finding really interesting web sites, information, and software programs that let me play with computer-generated music and wild-sounding synthesizers, in ways I wished were possible decades before. I had stumbled into a candy shop, and there were many other people interested in these things too. So I thought I would try sharing some of my own experimental creations as well.

But these were strange and untamed pieces. They didn't play well with others. I was worried that, like oil and vinegar, my more polished conventional pieces and my wild experimental pieces would clash, and people interested in one style would not be interested in the other. Or worse, after hearing just one of my pieces, they would assume all my music was that style, and ignore the rest. What to do?

I decided to create a separate online music account, and put all my experimental stuff in there. I also chose initially not to connect the two accounts to each other... this new account would stand on its own for awhile, so I could see what people thought of the experimental music by itself.

What is in a name?
My Schwansongs "label" already had the account name "Drakonis" on my main music website,, as well as other places like and It was time to come up with a different name for this new experimental account. Hmmm...

Well, on circuit boards, the main building blocks that make up the electronics are called "integrated circuits", or I.C.s for short. On the circuit board, the spots for these IC's are usually numbered, so that they can be easily identified and assembled... and they are given names like IC1, IC2, IC3, etc. Given my love of electronics and wordplay, I decided to call the new account "IC42", referring to both a position on a circuit card, and a nod to "Hitchhiker's Guide to the Galaxy", and a hint that I am overseeing two accounts.

Hakucho's Swan-song
I never intended this to remain a secret account, so it is now time to unmask the identity of the "IC42 Experiment". I have added links to cross-connect all my accounts, so people can find my two styles more easily, if they are interested. Don't worry, I will always be writing music in both styles, the experimental ic42 world will live on and produce new music and art and videos. I just will not keep the ic42 identity a secret any more. I also wish to thank the small circle of friends who discovered the IC42 identity early on, and kept it secret with me. I appreciate your help and patience during the experiment.

With that said, I will be retiring "Hakucho", the mysteriously laconic guy behind ic42. "Hakucho" was my old nickname when I was in Japanese language class decades ago. The bird we call "Swan" in English is called "Hakucho" in Japanese. In German, it is called "Schwan"... so the nickname always fit me nicely.

To wrap things up, I should mention where you can find my conventional and unconventional pieces of music. The complete set of "SchwanSongs" music, artwork and videos can be found at these web spots:

Traditional (Drakonis):
Macjams (complete set), iCompositions, MySpace, AloneTone, YouTube

Experimental (IC42):
Macjams (complete set), MySpace, AloneTone,

So now you know that IC42 is me too, and that I am not going to change anything or go anywhere. I do hope that you will continue to listen to (and hopefully enjoy) all my music (and from here you may now have discovered some new music to listen to.) And if any readers are interested in more information on some of my music creation tools and techniques, drop me a note and I will offer some tips and tidbits here.

Eduard aka Drakonis aka hakucho aka ic42

Here are a couple of ic42 examples... click here to read the story and listen to the music for a new take on Halloween.

Below is an algorithmically-generated piece of music, dancing with some hypnotic fractal patterns (seeing it directly from the Photobucket account is a little better than this embedded version.)

Tuesday, July 21, 2009

Up for Promotion

One of the fun things about traveling and shooting videos is that I continue to learn about all sorts of things I never knew before.  It is a big world out there, full of all sorts of fun people with intriguing hobbies and jobs.  On our recent trip to Eugene Oregon while visiting the big "Black Sheep Gathering" fiber festival, I not only interviewed organizers of the event (see prior post), but also shot a couple of  interview/promotion style videos for some vendors at the show.  My wife and I thought these would be a nice personal touch to add to the vendors' web sites or blogs, giving other potential customers a much more engaging introduction to the proprietor and their products.  This is a new idea we are trying out here at SchwanSongs, and if you might be interested in a similar "video introduction", you may contact us (e-mail: video-at-schwansongs-dot-com) for surprisingly reasonable rates for such a warm addition to your on-line presence.

Here are a couple of examples of our work:

(1) Miryha Runnerstrom has a roving/yarn store called "Blarney Yarn", where you can order all sorts of gorgeous hand-dyed fibers for spinning/knitting here:

(2) Lori Lawson runs her roving/yarn store called "Capistrano Fiber Arts" out of her home studio in San Juan Capistrano, California. We interviewed her up at the Eugene "Black Sheep Gathering" show, where she gave us a tour of some of her products. Her on-line store is at: