Mundae – FTP Collaboration From 2006

Patchen and I put together this gem of a downtempo track by trading loop bits over FTP as we composed them. All told, we stayed at it online for about 6 hours and came up with this piece:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Download

iPhone OS 3.0 Battery Life Problems Fixed — 1st Generation iPhone

So I’m very happy with the new iPhone OS 3.0, but I noticed my battery was running down much quicker than before. Lo and behold, the update had enabled Bluetooth by default. In my experience, this will definitely shorten battery life. I disabled Bluetooth in the Settings menu, and my battery life has been as good (or better) than it was on 0S 2.0.

Hope this helps somebody!

Sketch – may12a

The beauty of Processing is that this was basically a doodle — it took only about 10 sustantial lines of code to write.

You can run the sketch in your browser by clicking the image below.

sketch_may12a

First Glimpses Of A New EP

Reworking how I do things in the studio +
Attempting to integrate my interests in minimal techno, West African percussion, and house music:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

FractalWavetables v2: Stereo & Morphing

Updated version of the FractalWavetables sketch with lots of new goodies, including a stereo mode and the ability to morph between fractals.  Click the image below to run in your browser (requires Java):

fractalwavetables2

Get the downloadable application versions here (so you can save out audio files):
Mac OS X version
Windows version
Linux version

The public git repository for this project lives at:
http://wiki.github.com/jdnorthrup/fractalwavetablesketch

Lesson learned: Processing is a beast to work with for complex modal UI’s — unless you really do your homework and design your own framework beforehand (I didn’t).

Sorry if the code’s a bit complex/ugly at parts (in case you’re looking).

Interestingly, the sounds produced from this can sound spectacular through deep reverbs and other processing.  They’re almost the same amplitude at all frequencies in their range, quite unlike natural harmonic spectra.  Try running a steep resonant bandpass across some of the more complex sounds.

Fractal Audio Wavetables in Processing

floatfract

This is a Processing implementation of the fractal wavetable algorithm I mentioned in previous posts.

The Processing framework itself is really nice — very easy to get into and start hacking out ideas. I’m using the Ess sound library to handle audio playback.

Here’s a link to the sketch. This should play in most Java-equipped web browsers:

Update: See FractalWavetables v2 for new options.

fracwave
FractalWavetables (+source)

If you download and run this locally, you can write .aif files to disk:

Mac OS X version
Windows version
Linux version

Enjoy
-jd

Fractal Audio Wavetables

1_05_1

I’ve taken the idea of binary fractals for audio, and generalized the system to accept floating point numbers.

In essence, you give the program a wavetable “seed” which is subdivided — each sample is replaced by a copy of the wavetable, multiplied by the old sample value.  This subdivision recurses until the desired length audio buffer has been generated. The initial value always begins at “1″.  For a seed of “1 0.5 1″, you get the following as the first three steps:

1 -> 1 0.5 1 -> 1 0.5 1 0.5 0.25 0.5 1 0.5 1 -> 1 0.5 1 0.5 0.25 0.5 1 0.5 1 0.5 0.25 0.5 0.25 0.125 0.25 0.5 0.25 0.5 1 0.5 1 0.5 0.25 0.5 1 0.5 1

As you can imagine, you get some pretty complicated waveforms quickly.

Since these are fractals, the timbre, rhythm, and structure of the loops are all self-similar — as explained in Terran Olson’s awesome article that inspired my work on this.

Here’s a quick song I threw together in Ableton Live using only unedited, un-effected loops straight out of the program:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Here’s a link to the source code:
I’m working on a way of generating morphs between input tables, so you can have a fractal evolution from one sound to another.

Fractal Sequences As Sound

droppedimage-filtered

Audacity's "pitch" view of a fractal .wav file

Inspired by this article on CDM, and Terran Olson’s work in particular, I dug into creating a more general version of the fractal set synthesis outlined in this article.

I’ve posted the code, and some example .wav files, linked below.  It’s a simple, cross-platform C++ command line utility that takes a binary seed for the sequence, and two recurrence relations (the first specifies what replaces a ‘1′, the second replaces ‘0’s).

For example, the arguments ‘1 101 000′ yield the Cantor Set:

1
101
101000101
10101010001010101
… and so on

This sequence is iterated enough times to end up with enough samples to generate 10 seconds of audio — which is dumped to a .wav file. ‘0101′ repeated would become a 22.05kHz square wave, for example.  In fact, all the output from this program will be square waves of varying wavelength and pulse width.

Here’s an audio clip of what ‘1 101101 00000′ produces (careful, these are loud):

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

101101_00000 (.wav file)

You can provide any binary pattern you want, and it expands into a recursive fractal sound.

Here’s the link:  genfractal.zip (cross-platform C++ source code, and examples)

Dancing Spirals Screensaver

shapeimage_3

This is 3D OpenGL eye-candy for Mac OS X, complete with customizable settings, and full source code.

The implementation might be interesting – the options interface is build using Interface Builder, Objective-C and Cocoa, yet the actual drawing code all happens in C++ using OpenGL.

Props to the folks at Cocoa Dev Central for posting a pair of tutorials that got me started with building screensavers in Xcode.

Download: DancingSpirals.saver.zip