Art

Nebulous

This is a an animation of wave propagation mixed with reaction diffusion that I programmed in C++. I start by triggering a single red wave in the center, which sets the complex system in motion.

It works well as a metaphor for the creation of the universe because slight irregularities in the starting conditions allow unstable patterns to emerge (in this case, the trigger wave was ever so slightly off-center). By measuring the cosmic microwave background radiation (CMB), physicists have discovered that the early universe was slightly irregular. This irregularity is what allows galaxies, stars, and planets to form. If instead it were completely uniform, it would have remained in a stable state and nothing would have emerged. Similarly, this animation starts out with very symmetrical, slow-moving patterns but as time goes on these become more chaotic and complex.

Drawing inspiration from animators such as Oskar Fischinger, I set this to a classical score that I think fits quite nicely. The piece is movement 15 of “Vingt regards sur l’enfant-Jésus” (Twenty Contemplations on the Infant Jesus) by Olivier Messiaen.

Code Music

Algorhythmic Dubstep Competition


The British algorithmic dubstep artist Kiti le Step recently released the source code for their latest track and the Super Collider Symposium is sponsoring a competition to see who can create the best remix- either through traditional means or by hacking the code to create a new self-generative composition. The winner will get a Novation Launchpad ( !! ) and as an added twist the competition will be completely judged by computers. I decided to take a stab at modifying the code and using it as an excuse to learn Super Collider. Here’s the result that I entered into the competition. Hopefully the A.I. judges find my beat sufficiently dirty.

[audio:http://amusesmile.com/old/sound/algostepMaster.mp3|titles=Golliwog’s Cakestep]
Music

Granular Synthesis

Curtis Roads is the master of granular synthesis (aka composing with small particles of sound) and I’ve been fortunate enough to study with him for the past few months. The resulting piece won the informal “People’s Choice Award.” It’s a study on sound transformation and gestural composition.

All of the sounds are manipulations of samples taken from the previous post, Player Piano Study. I put these samples into a granular synthesis instrument that’s controlled through a motion capture controller I’m working for my thesis. Depending on what parameters I specify, it creates really strange, mechanical sounds such as the ones you hear toward the beginning of the piece, or more mellow chirps such as the ones about two-thirds of the way through. It’s meant to be played in 4-channels (speakers).

[audio:http://amusesmile.com/old/sound/roadsMaster.mp3|titles=Pantograph]
Music

Player Piano Study

This piece is the result of experimenting with a Kawaii Digital Player Piano over the past few weeks. I used Renoise to create seven melodic sequences ahead of time and then performed the piece by activating different combinations of these sequences live. While recording I also improvised with the piano’s sustain pedal in order to build and fade intensity.

[audio:http://amusesmile.com/old/sound/Geiringer.mp3|titles=Geiringer Hall]
Code Music

Old Song, Old Language

Here’s a piece I dug up from last year when I was working quite a bit with RTcmix (Brad Garton’s awesome albeit antiquated musical scripting language). I like the piece’s meditative quality and how varied it sounds for being written with only a few lines of code. It doesn’t follow canonic form at all, but when I hear it I can’t help getting this impression.

[audio:http://amusesmile.com/old/sound/Canon_Mastered.mp3|titles=Canon]
maxamp = 1000
amp = maketable("line", 1000, 0, 0, 50, 1, 51, 1, 100, 0)

wavetable = maketable("wave", 1000, 1, 0.3, 0.2)
pan = 0.5

start = 0.0
start2 = 0.0
freq = 2000.0
freq2 = 0.0

for (i = 0; i < 100; i += 1) {
freq2 = freq/round(irand(1,6))
WAVETABLE(start, 4, 10000*amp, freq2, (.2 + random(0, 0.6)))
freq2 = freq/round(irand(1,12))
WAVETABLE(start, 4, 10000*amp, freq2, (.2 + random(0, 0.6)))

freq2 = freq/round(irand(1,12))
WAVETABLE(start2,  6, 10000*amp, freq2, (.2 + random(0, 0.6)))
start += 2
start2 += 3
MAXMESSAGE(0 \, freq2)
}
Art

Talking Heads: Speech Visualizations of the Past and Present

Last year I became interested in the possibility of comparing different politicians and public figures through computer assisted analysis of their speeches. Starting with archival videos of famous addresses, I created a small program that scans the volume level of the audio track and takes snapshots of the speakers at his/her loudest (i.e. most emphatic) moments. It then combines these snapshots into a single composite photo. The resultant images reveal otherwise hidden facial features and patterns of body language. When viewed in series they allow us to compare speakers within a much more controlled set of parameters than if we were simply to watch these videos side by side.

Last April I was fortunate enough to be invited to give a talk on this project at the Critical Themes in Media Studies conference in New York City. Unfortunately I never got around to creating a real post about the piece, however renewed interest in the topic has driven me to fix this. Below you will find image and sound examples taken from the talk. If you’re interested in using this program for your own work, the code can be found here. Over the next few weeks my close friend YuanYi Fan will be using the software to analyze candidates in the upcoming Taiwanese Presidential Election, so links will surely follow.

More examples and the code itself can be found on the Full Project Page

Benito Mussolini

[audio:/old/sound/musso.mp3|titles=Benito]

Adolf Hitler

[audio:/old/sound/hitler.mp3|titles=adolf]

Dr. Martin Luther King jr.

[audio:/old/sound/luther.mp3|titles=luther]
[audio:/old/sound/luther2.mp3|titles=luther 2]

FDR

[audio:/old/sound/fdr.mp3|titles=fdr]

JFK

LBJ

Richard Nixon

Gerald Ford

Jimmy Carter

Ronald Reagan

[audio:/old/sound/reagan.mp3|titles=reagan]

George H. W. Bush

[audio:/old/sound/hw.mp3|titles=h-dubya]

Bill Clinton

George W. Bush

[audio:/old/sound/bush.mp3|titles=bush]

Barack Obama

[audio:/old/sound/obama.mp3|titles=obama]

Code

OSC Record

I was amazed that no one had already done this, so I built a little program to record and re-send OSC (Open Sound Control) messages. You can download it here. Before making it run you’ll need to install the LIBLO library on your machine.