Saturday, May 19, 2012

Music : Message Intercepted

Website -
SoundCloud -
YouTube -

Was introduced to breakcore today by a digital composer whose been making music for some years now; I had heard of music from the genre but could never pair a name to it apart from "industrial glitch maybe perhaps?" which was always frustrating to type.  Ended up listening to a lot of songs by said composer.  They're pretty great.

Most of them feature a fairly kick-heavy drumline and abrupt transitions, but the really distinguishing plus is his use of samples in a way that's varied and innovative without clashing.  The track above, Transforming Robot, showcases a glitchy drumtrack with an ambient section stuck in the middle.  Surprisingly, it blends very, very well.
Would encourage you to listen to more of the tracks because I'm having a hard time describing it.  Definitely one of the better hobbyist techno composers I've heard of.

Tuesday, May 8, 2012

What is so good about The Scream?

If you're unfamiliar, "The Scream" is a painting made by Edvard Munch around 1893-1910.  It recently sold for ~$119 million dollars.

Seriously, what's so good about this?

Yes, it's a historical piece of art.  Yes, its fame derives a lot from its age and influence.  And I've been staring at it while writing this post, and yes, I guess I kind of like the colors of the water and the sky.  They look deep and bold.

But what the heck is with the focus of the picture: the actual scream?  People seem to say that the scene looks and feels like "a thriller," or they can feel the darkness and anxiety of the subject.  How?  I certainly don't.

Of course, this is probably a matter of tastes.  I've always been a fan of, in the words of a show my sister was showing me yesterday, the "double-layer trap" in creative works.  If you're writing a sad book, you shouldn't use the words "sad," "depressed," "gloomy," etc.  Likewise, if you're directing a sad movie, you shouldn't pepper it with excessive crying and slow-mo.  And if you're painting a sad painting, you shouldn't have to pour a gallon of gray paint all over your work and say, "aha!  My colors are dark!  My painting is now officially saddening!"

If your work is good, it should lend itself to the emotion you're targetting.  And if it's not, slapping a crying man in the picture isn't going to help you.

I'm not criticizing Munch.  Wait, yes I am.  Not that I have the authority or qualifications to (I'm an awful artist), but in my extremely unprofessional opinion, "the scream" takes a whole lot of potential out of "The Scream."

Saturday, May 5, 2012

C++ : Symbolic Regression - Part 1

I'm not dead.  Just working on something that's taking an awful long amount of time.  That's my excuse for my recent post-truancy.

'Wired: Computer Self Discovers Laws of Physics'

See that article up there?  Click on it.  No?  Fine, here's what it says in a nutshell.  Some people over at Cornell University stuck a bunch of LED lights onto a chaotic pendulum, hooked up an LED detector onto a computer, and fed the data through some fancy algorithms based on symbolic regression that calculated the gravity equation from scratch.

Sounds complicated?  It's not.  It's actually extremely simple.  Here's the generalized workflow:
  1. Feed some data into the computer, like the positions of the LED lights.  These are your state variables.
  2. Use some fancy maths to find the partial derivatives between the state variables.  Partial derivatives are used to calculate relations between variables.
  3. Generate thousands of equations randomly, and use genetic algorithms for mutation (value mutation, crossover, etc.).  The equations that match the data the closest (via plugging in values) have the highest priority in mutation.  This is the symbolic regression step.
  4. Repeat step 3 a hundred thousand gazillion times and after an infinite number of iterations you should converge to the exact equation that fits the data.
That's all.  It's very simple.

Programming Symbolic Regression

The main programming obstacles here are as follows:
  1. Building equations in program-my form.  There's a predetermined set of operators made into functions and stored as function pointers (add(a,b), sub(a,b), mul(a,b), div(a,b), sin(a), cos(b), among others).
  2. Solving partial derivatives symbolically.  I have no idea how to do this yet but I'm sure it's not that hard?
  3. Optimizing it so it doesn't take a hundred thousand years to calculate something nice.
 That's the gist of it.  If I make any progress I'll mention it on the blog.

If you're interested in your own research, here's the material for the Cornell project.  It's a little intimidating to read but isn't all that bad; most of the unfamiliar terms can be figured out in context.

Overview: Distilling Free-Form Natural Laws from Experimental Data
Supporting Online Material