Category Archives: Music Software

Unreleased Aphex Twin, Warped in Ableton Live

By now, people who care about the music of Richard D. James, aka Aphex Twin, know about how he dumped 175 (and counting) unreleased songs on Soundcloud. Like everything he’s done its a body of work that is at turns beautiful, frustrating, and obtuse. The majority of the tracks seem to be Aphex-esque techno and acid house, which is to say his unique combination of standard drum patterns with melodic flights of fantasy and piss-takes.

I had the idea of DJing with these tracks, and when I say ‘DJ’ I mean ‘arrange and blend tracks in Ableton Live’ — which isn’t proper DJing, according to many. That controversy aside, that is the easiest way for me to work; by not having to worry about synchronization and beat-matching, one is free to concentrate on the arguably more important parts of DJing, which is song selection and sequencing.

What started as a simple project to select some tracks to play in DJ sets turned into an obession, and I ended up ‘warping’ the entire corpus of tracks — 175 in total. There are only 173 on Soundcloud because 2 were withdrawn.

To make use of my warping efforts is unfortunately a 2 stage process, the first being to go download the music files. These are available on Google Drive. You’ll need a Google account of some sort to download them, but you can just download the “Selected Soundcloud works 1985-2015” folder.

Then, download this zip: It’s also available in the Google Drive AFX folder as well, in the “Ableton” folder.

There’s a ‘Readme’ file in the project ZIP file explaining how to use the warped files, but the TL;DR instructions are “Unzip the mp3 files, unzip the Project, load the project in Live, and tell Live where to find the mp3s.” It should be self-evident to anyone who regularly uses Ableton Live.

Some observations after working through all those tracks:

1. Tempos are almost all very consistent, making me think that he used accurate clock sources & DAT recordings from very early on. There are a very few with the telltale ‘cassette stretch’ tempo drift.

2. There are several with ‘Sequencer Stop’ pauses where he stops the master clock device, allows the effects to decay, and then restarts the sequence off beat. This blows Ableton Live’s mind. I’ve fixed these as best I can, basically pinning a warp marker on the last beat and then dragging the point where the sequencer restarts to the next measure start.

3. Only a few had ‘intergral’ BPMs, i.e. 130, 140, etc. Meaning that the tempo clock was only accidentally set to an intergral tempo. Or the sequencer device and Ableton Live don’t agree about intergral tempos.

4. A couple of them were unwarpable, and I gave up on those.

5. This set of songs was a torture test for Ableton Live’s automatic warping, and I wasn’t impressed, even by the new 9.2 beta version which supposedly improved automatic warping. It rarely found the downbeat properly, was confused by beatless intros etc. Even though the tracks have a very steady tempo.

This was an interesting project to undertake, and it allowed me to ‘needle’ drop in every track. There’s a lot of impressive tracks in this collection.

Groove, Metastability and Randomness

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.

This is a recording of two loops playing in Ableton Live. One is a percussion drum rack, the second is the U-He Bazille instrument run through several effects.
This loop plays the same notes, but will never actually play the same one bar sounds twice, for two interlocking reasons.

First, both instruments go through a gate effect, which is adjusted so that the threshold is at the point of metastability, meaning that it spends most of it’s time on the cusp of closing and cutting off the sound.

Second, the Bazille patch uses random LFOs to modulate the levels of two oscillators as they modulate each other. On top of that, each of the two random LFOs is modulating the rate of the other, and the cutoff of a low pass filter through which the resulting signal passes. This accounts for the filtered noise sounds continually changing sound.

In addition, the two MIDI clips driving the sounds are modified by two different groove timings.

So the loop never repeats, and yet it also stays the same. The variety of the loop has musical value — in the same way (but not equal to) a human drummer adds vitality and interest to a repeated drum pattern with micro-variations of timing and dynamics. And the repetition of the loop has musical value, in the way a groove can entrain the listener’s mind.

It’s the wisdom of Heraclitus embodied: “No man ever steps in the same river twice.” It’s the same and not the same. Though I’m neither as wise as Heraclitus nor as musically talented as a significant percentage of humanity.


Sometimes you try something and it’s accidentally kinda compelling. The setup was

  • Volca Beats
  • Volca Keys
  • Jupiter 6
  • Meeblip Anode
  • Eventide UltraVerb on one send
  • Audiodamage Dubstation16 on the second send.

This is straight up tracky. It’s live mixing/tweaking. I actually added effects and the anode while recording. There’s minimal EQ-ing on the Volca Keys and Volca Beats.  I did some limiting and EQ on the mix-down and edited out the 16 or so measures where the anode was doing this unpitched farting noise.

Syncing the Volcas to Ableton Live is kind of wonky. It seems to work marginally better if you set the sync mode to pattern. The only way I found to get it tight was to hit the ‘play’ button a few times quickly. If you just hit play once, it always starts out of sync. Somehow resetting the counter to 1:1:0 a few times while Live is playing gets things lined up properly.

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.

Ableton Live — a Different Way to Swing.

I’m doing two posts in one day after months of silence?

This just occured to me; I had to share.

1. Get a clip loaded. MIDI or whatever.
2. Click on the Groove hot-swap icon, and choose any groove:


3. Set Timing, Random, and Velocity in the Groove.
4. Set ‘Base’ to 16T.
5. Tweak the quantize control.


This will give your clips an adjustable swing; about 11% sounds pretty good.

For extra points, you can hack your own groove:
1. Make a clip with 16 16th notes — the actual note doesn’t matter. A closed hi-hat will help you get the groove right.
2. mess with the velocity of notes so that it has some ebb and flow type funk.
3. Apply the triplet swing groove, and hit commit.
4. Drag the midi clip into the groove pool. Your own custom groove!

Video Tutorials Seen As Harmful

There’s something that disturbs me about how people share information on the Internet — video. Particularly narrative ‘how-to’ type videos.

1. Low content per time invested — I’m not the fastest reader on earth, but for most videos, every ten minutes of video contains the same amount of information as a written presentation that would take me a minute or two to read.

And that’s not even considering the fact that no one makes a video without putting 2 minutes of useless introductory material at the front of it. Get to the point!

2. Video ties up your computer. I know you can have more than one window open, but in particular tutorials about music software make it difficult. If you have the video playing and your program open the audio output of the video will clash with your software, and you have to flip between windows.

3. I hate giving up control over pacing. If I’m reading something, I can skim through several paragraphs, stop and do something, slowly read through the tough parts, etc. With video, you have pause, and if you’re following a tutorial, you have to switch windows to pause, and end up fiddling with the transport a lot.

4. Laziness. Someone can have a general idea of what they want to do and start recording video, but they don’t have a script. You get some extemporaneous, diffuse description, parenthetical digressions, and plenty of ‘um’ and ‘uh’.

I am much more impressed by someone who WRITES IT DOWN, and then edits what they wrote to keep it focused and clear. It may well be that there are true artists of the instructional video in the world, but I am tired of people who make videos because they don’t want to put effort into consciously constructing what they want to communicate.

And this is not limited to amateurs. A lot of the professionally produced tutorial videos are no better.

Sound Forge Pro + Windows 8 = Frustrating Frustration.

With the advent of Windows 8, Sound Forge users may run into a registration brain fart that can’t be fixed simply. I ran into this on two different machines. The symptom is that Sound Forge works fine, for a while, and then forgets that it is authorized, and refuses to re-authorize, either on-line or off-line.

I don’t know what the minimum fix is, but following the instructions from Sony Tech Support below get you past this problem. It isn’t lost on me that this requires digging into things that 99% of Windows users are not comfortable with. Complain to Microsoft and Sony, not me.

We are still looking into the matter why this could not be registering properly on your system although all the information is being entered correctly. If you have not already, try using the registration repair tool for the program: If this does not yield any results please follow the instructions for a clean uninstall and reinstallation of the application below. A clean uninstall is more indepth then a regular uninstall and will clear out any data of this application that may have been accidentally installed incorrectly through the application.

Before doing a Clean Reinstall, it is important to do the following:
•All audio and video effects chains and presets will be erased, so if you need to make a back up of your presets please download our Preset Manager program. For more information about backing up presets: Backup and Restore Audio Presets | Backup and Restore Video Presets

•Safely disconnect any external USB or Firewire devices like hard-drives or dongles.

•Temporarily turn off ALL anti-virus programs, as well as disabling any Registry Blockers, Spy Ware, Firewalls, etc. These applications have been known to interfere with software installation and registration.

Start the process of removing programs go to Start > Control Panel > Programs and Features – find and remove your Sony Creative Software applications (ACID, Sound Forge, Vegas, DVD Architect, Cinescore, CD Architect or Media Manager, as well as any other Sony Media Software or Sony Creative Software programs).

Also, remove the Microsoft SQL Server Desktop Engine (SONY_MEDIAMGR), any and all Microsoft .NET Framework versions, and the Microsoft Visual C++ Redistributable software if it is listed.

Once un-installed, delete the following folders:
•C:\Program Files\Sony\
(Do not delete this entire folder if you have other Sony applications installed such as Sonic Stage, Everquest, Star Wars Galaxies, etc. If that is the case then only delete the folder for the Sony Creative Software application you are using as well as the Shared Plug-Ins folder.)

•C:\Program Files (x86)\Sony\
(Do not delete this entire folder if you have other Sony applications installed such as Sonic Stage, Everquest, Star Wars Galaxies, etc. If that is the case then only delete the folder for the Sony Creative Software application you are using as well as the Shared Plug-Ins folder.)

•C:\Program Files\Sony Setup

WARNING: The next step will require you to delete Windows Registry Keys. The Registry is a very sensitive area to work in. If you are not comfortable with advanced configuration and system changes, ask an administrator to help you with this. (Related Topics: How to back up and restore the registry in Windows: http:////

Next, open the Registry Editor. Select Start and type REGEDIT in the ‘Start Search’ box.

In the Registry Editor, locate and delete the following registry entries:

HKEY_CURRENT_USER\Software\Sony Creative Software

32 bit applications (like ACID and DVD Architect) installed in 64 Bit Windows 7 will also store registry keys in a different location. Locate the following registry keys and delete them. (Depending on which versions you have installed you may see one or more of these entries. If you do not see all of these, that is normal. Delete those which you do find.)

If you locate a folder labelled “Sonic” please DO NOT confuse this with Sonic Foundry. Leave it alone.

HKEY_CURRENT_USER\Software\Wow6432Node\Sony Creative Software
HKEY_CURRENT_USER\Software\Wow6432Node\Sony Media Software

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sony Creative Software
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sony Media Software

Close the Registry Editor.

After removing all of the previous items, you may download and re-install from this link –

When finished with all reinstallation, please restart your computer. When your computer has restarted, you will have a complete clean installation.

In which SoundCloud sends me a hilarious takedown notice

Anand and SchatarSo today I got this interesting message from Soundcloud:

Hi chaircrusher,

Our automatic content protection system has detected that your sound “Rubber Duckie (Wub Machine Remix)” may contain the following copyright content: “Get Some Fruit (Wubstep Dubstep Remix)” by Anand Bhatt, owned by Favorecido Productions. As a result, its publication on your profile has been blocked.

You can dispute this report, if you believe the copyright content has been mistakenly identified or if you have obtained all the necessary rights, licenses and/or permissions to upload and share this material on SoundCloud.

Please do so by filling out our dispute webform at the following link:

If you would like to learn more about copyright, please visit our copyright information page.


The SoundCloud Copyright Team

FYI I didn’t even remember uploading it to Soundcloud — it was just a joke that took about 5 minutes to put together. I kind of love how it turned out, since Sesame Street is embedded in my DNA. If you need to hear it:

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.

There are several things that are awesome about this:

  • Soundcloud’s automated copyright infringement detector did NOT detect my actual ‘infringement,’ which was against Jeff Moss and Jim Henson, who wrote and performed the original Rubber Duckie.   I claim this is fair use, but I’m not going to the wall on that; this was a JOKE track, it isn’t worth it.
  • Soundcloud’s audio fingerprint software did detect that there was some common source material in the Rubber Duckie Wubstep remix and that track by Anand Bhatt. That common material is there because Bhatt and I did the same thing: Took an audio file and fed it to the Wub Machine, which is a neat hack that ‘converts’ any audio file into bad dubstep.  Feed the Wub Machine random songs, traffic noises, outgoing voicemail messages yadda yadda, and hey presto! Bad dubstep! it’s hours (well, minutes) of fun.
  • The most hilarious part of this debacle?  This guy Anand Bhatt has released a digital EP which you can buy here on Amazon.  Bhatt took what sounds like random crappy songs, ran them through the Wub Machine and released them as his own original ‘remixes’!

What conclusions can I draw from this?

  • Soundcloud’s audio fingerprint software is able to detect common elements in two songs.  That’s great, but it can’t distinguish between one song sampling another, and two songs containing common source material.  So it’s going to generate thousands of false positives.  I guarantee that the worst-paid people at Soundcloud are the poor shmoes who have to wade through all the people contesting false positives for copyright infringement.
  • Anand Bhatt is a complete tosser.  Don’t believe me?  Visit his mega-awesome website, or his Amazon Store.  All those pictures at the Grammies are curiously absent of any other people, as though he snuck in after hours to get his picture taken in front of the Grammy background.  This man has been spending his time inventing an imaginary international rockstar career.

Here’s the transcendent, timeless, original “Rubber Duckie”

Using Random Processing in Ableton Live

There are two things that I’ve done consistently for 18 years I’ve been using a computer to make music is to experiment with random processes to generate something musically.


Ableton Live has a ton of effects. People spend a lot of time and money (or time looking for W4R3Z, which imho is wasted) to find third party VST instruments and effects to give them a palette of sounds. But before you go crazy buying and downloading stuff, it’s a good idea to fully explore the stuff built in to Live.

The Live MIDI effects are an under-utilized resource for creative sequencing, and the MIDI effect rack I’ve built does something that is to me really inspirational: It takes a stream of midi notes and randomizes their pitch and velocity.

That doesn’t seem like much except for this particular context: If you have a drum rack after this MIDI effect rack, when a MIDI note occurs, it adds a random offset to the note number, and assigns a random velocity. If you load a drum rack with an assortment of sounds — in the case of my example, latin percussion samples — it will generate endless variety of drum patterns with continuously changing accents.

From left to right the components of this rack are

  1. Pitch Effect. Adds a fixed offset to incoming notes.
  2. Random Effect. Adds a random offset to incoming notes.
  3. Velocity Effect. Randomly changes velocity of incoming notes.
  4. Velocity Effect. Filters out notes with velocity outside the range lowest to lowest+range.

The actual rhythm is determined by the note pattern that’s playing in the current MIDI track. This is cool because you can use groove templates on (for example) clip with a steady stream of 16th notes, and the output of the rack will follow the groove template. Every time a note is triggered by the clip, a random offset is added to the pitch, which has the effect of choosing a different drum sound, with a random velocity.

The Macro controls on the left side give you control over various parameters.

  1. Lowest: notes with velocities below this value won’t play
  2. Range: notes with velocities above Lowest+Range won’t play
  3. Pitch: Constant offset added to incoming note numbers
  4. Rand Velocity: How much randomness is added to incoming note velocities

Here’s a use case: If you play the third clip in the KW Conga track in the example ensemble, it is a steady stream of notes with a pitch of C1, which in my drum rack corresponds to the first sound. If you don’t want a hit on every 16th note, turning up the Lowest knob will discard notes with low velocity, and turning down Range discards notes with higher velocity. You tune the velocity range with these two knobs to thin out the incoming stream of notes by discarding some of the lowest and highest velocity notes.

The Pitch knob is to get around a limitation of the Random MIDI effect — it only goes up to a maximum offset of 24. Since I have more than 24 sounds loaded in the drum rack, in order to play any of the sounds more than 2 octaves above C1, I have to add an offset. You can also play this knob — or automate it — to change the set of sounds played by the incoming notes. In this particular rack, all the flams are at the top of the drum rack’s note range, so if the Pitch knob is below 8, you won’t get any flams.

The Rand Velocity knob, if turned to zero, doesn’t change incoming velocities at all. This would be useful in the case where you want the Velocity of the Groove template to determine note volumes.

All this is harder to explain than it is to use. Try downloading the example ensemble and fiddle with the knobs, and I think you’ll find that there’s an intuitive feel to using this effect rack. The main thing you need to start with is a drum rack — like the conga rack in the example — driven by clips usually consisting of C1 notes, which is the default lowest note for drum racks. The more sounds you add to your drum rack the more useful the pitch knob will be; if you only have 24 sounds, turning up Pitch will just cause notes to be sent to empty slots in the drum rack.

And if you don’t want to just let this sort of constrained randomness do its thing forever, you can record the output of the MIDI rack in another MIDI track, and then choose a few bars to loop, or find the 4 bars that’s almost perfect and tweak it a bit.

This sort of technique isn’t limited to drum sounds. If you’re using this rack with a pitched instrument it will do something random, and perhaps useful. With a pitched instrument, you can add a Scale Live MIDI effect, in order to constrain the notes played to the scale of your choice.

And that’s only the beginning of what you can do with effect racks. Live’s MIDI effect racks have the same ‘multi-chain’ feature of Live Effect and Instrument Racks — you can set up different chains of MIDI effects and use the Chain Select control to choose between them. And once you add in Max For Live MIDI effects, things can really get crazy.

Reaktor Effect: Random Multitap Delay/Shuffler

The Random Multitap Delay is a delay effect that randomly, continuously changes the delay time between the input and output. The delay times are based on musical note durations – ¼ note, ? note, ? note triplets, etc.  My goal was to use random processes in a way that preserves rhythmic integrity — the output stays in time with the input and any other rhythmic elements in the music.

Internally there is a multitap delay, whose delay time is a multiple of the current rhythmic division. If you select ? for the tap length then the first will delay ? note, the second 2/8 , the third ? etc.

The effect switches randomly between the delays over time, effectively re-arranging the input signal in time, shuffling it up.  This is particularly effective on drums, because it will generate an endlessly varying rhythmic pattern that will still add up to the ear.

There are two identical delays for the left and right sides of the stereo signal. Since the current delay tap is chosen randomly, the right and left signals will be different even if all the controls are set the same.

It’s actually harder to describe what the effect does clearly than to understand what it does by tweaking the controls, and hearing the results.

In Use

There is a hierarchy of chaos in the controls of the Random Multitap Delay.  I’ll list them from least chaotic to most chaotic:

Sync and Stepped On

With both sync and stepped set, every rhythmic division, one delay is selected.  For example, if 1/8th is selected for tap length and 1/8th is selected for S&H, every eighth note a different delay tap is chosen.

Sync On, Stepped Off

Every rhythmic division a fractional value is chosen, that will select a blend of 2 delay times.  For example, if the tap length is 1/8th and selection value is 3.5, you will hear a 50/50 mix of the 4/8ths and 5/8ths delays.

Sync Off, Stepped On

The delay tap selection varies continuously, based on Rand Speed, but only one delay tap is selected at a time.

Sync Off, Stepped Off

The delay tap varies continuously at Rand Speed, and a mix of two delay taps will be heard all the time.

The meter and numeric display below the stepped button shows you how these controls interact.  They will show you exactly which delay tap is playing at a given time.  The delay taps are numbered 0 to 7, since I’m a computer programmer ;-)


Tap Length

This chooses a base delay time for the multitap delay.  These are standard musical divisions of time — ¼ note, 1/8th note, dotted 1/8th etc.


Controls the rate of change of the delay taps.  Every ¼ note (for example) a new delay tap is selected at random for the output.


When this is on, the delay time is selected based on the setting of S&H.  When it is off, the delays are switched between continuously at the rate specified by Rand Speed.

Rand Speed

Chooses the speed at which the delay selection changes. The numeric value below the knob gives the speed in cycles per second/Herz.


Determines whether the delay selection is stepped (i.e. selecting just one tap at a time 0, 1, 2, 3…) or continous.  If Stepped is off,  you will hear a mix of two adjacent delay taps most of the time ( 0.3, 1.7, 2.1 …)


Controls the level of feedback for both the left and right delays.

Cross FB

Controls the amount of the left delay that is fed into the right delay, and vice versa

L FB Mode/R FB Mode

Selects the filter that is included in the feedback path of the delays. High Pass, Band Pass, Low Pass etc. ‘Bypass’ is also an option, which removes the filter entirely from the feedback path.


The difference between the left and right feedback filter cutoffs.  At 12 O’Clock, L & R filters have the same cutoff. As you rotate left, the left cutoff reduces, and the right cutoff increases.  As you rotate right the left cutoff increases and the right cutoff decreases.


Feedback filter frequency


Feedback filter resonance.

New Paulstretch OS X build

As software projects go, PaulStretch is rather a shadowy enigma. Since I did the initial Mac OS X port, I’ve had very, very sporadic communications with the author Nasca Octavian Paul about it.

Then there’s the issue of versioning. Paul started a github repository, but it hasn’t been updated since March. It’s currently at version 2.2.2, but the only difference between 2.2-2 and 2.2-1 is that the version number it reports has changed.

At any rate, today I did a new build which is 1) OS X 10.6 (forward compatible with Lion, but perhaps not backwards compatible to Leopard or Tiger) 2) Up to date build, incorporating all of Paul’s changes. I also spent some time playing with it to make sure it works properly.

You can download it here:

It also has the latest refinements of the build scripts used to build PaulStretch from source. I use CMake, which is Kitware’s cross-platform build tool. CMake keeps getting smarter, and my CMake recipe for PaulStretch will download all the prerequisite libraries, build them, and then download the PaulStretch source, build it, and generate an Apple App Bundle.

And CMake really is cross-platform — the same build recipe will work unmodified on Linux (which I have tested) and possibly on Windows (which I haven’t tried).

If you still have a PowerPC Mac, you can try using which a friend of mine built, but it isn’t the most recent version of PaulStretch.

Fun with Max For Live LFOs

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.

It’s hard not to be an electronic musician without developing a fascination with random/stochastic processes as a compositional tool. Particularly because when you pay attention to e.g. a Max Roach Drum Solo he seems to be balancing random choices with intentional ones. While Roach knows what he wants in broad outlines, part of what makes his playing great is that he has learned to simply allow his muscle memory and hind brain take over and introduce surprises. By letting go of a score and conscious control he’s participating in randomness shaped by his will.

Max spent a lifetime developing the skills as a musician to allow this sort of freedom in his playing. This demonstration clip is what happens when you set up many random Max For Live LFOs to modulate many, many different things. At the core, LFOs are modulating the Repeat and Grid parameters of a Beat Repeat effect. Then two more LFOS modulate the effect send levels, going to a reverb and delay. A third LFO is modulating the rate of the LFO modulating the Repeat parameters.

Then more LFOs modulate the regeneration level and ‘echo reverse’ parameters of the delay, and the size and predelay on the reverb.

One drum loop is the sole audio source for this. All this modulation introduces a currently fashionable sort of crackle where changing parameters introduces audio discontinuities.

PaulStretch 2.1 is Out! New build instructions + new x86 OS X build

Please go Here for latest build!

Paul added a new library dependency, which I hacked into my build recipe here:

Instructions for building

I have a completely UNTESTED binary for people to try here. It should work, but I can’t test it right now.

If you’re not a command line jockey, just downloading and clicking on it will create where ever you dropped the downloaded file. If you know about command line stuff:

This is built on OS X 10.6, 32bit. No idea what OS X versions will run it.

PaulStretch Build Instructions – Now with Linux!


The world of open source software development doesn’t sit still. A program that I rely on to build PaulStretch on OSX is CMake, which is an open source, cross-platform program that hides some of the complexity of building software on different platforms.

If you’ve built any software on OS X or Linux you’re probably familiar with the “./configure ; make ; make install” method of working with source packages. CMake does that but it goes out of its way to handle the low level crap that is a pain in the ass to set up program configuration with autoconf. On top of that, it will run on any Unix, OS X or Windows. And on top of THAT, it will generate Makefiles, or project files for any of the commonly used integrated development programs like Visual Studio (on PC) and XCode (on Mac).

CMake really is as close as you can get to ‘write once, run anywhere’ in the world of C and C++. Not that there won’t be platform-specific stuff you’ll have to do, but it’s a lot easier and more concise in CMake.

Anyway, as of CMake 2.8, there is a powerful new CMake Module called ExternalProject. It automates downloading, configuring and building open source packages. I’ve used ExternalProject heavily in my day job, so it seemed natural to use it to streamline building PaulStretch. The result is maybe just as complex as the original build setup, but it is a lot more robust. Reading through the CMakeLists.txt files I’ve set up will be a good introduction to how things work in CMake — I’ve done a bunch of things in there you’ll want to know how to do for your own projects — use ExternalProject_add to download and build libraries, do some platform-specific configuration, create an executable, etc.

You can download the new PaulStretch Build package here:

The instructions are pretty straightforward:

0. Make sure you have the compilers and development libraries installed on your system.
1. Download the Tar file
2. unpack the tar file, somewhere you have write permission.
3. Run PaulStretch/

On OS X, this will create a, that you can drag and drop wherever you want. On Linux, the executable will be in bin/paulstretch — it’s statically linked so it will run without needing anything besides the program file on your system. Or, for that matter, any other compatible Linux distribution.

The result is an executable program in whatever directory you’ve run this process in. The following commands would accomplish this whole process in a directory called ‘PaulStretch’ in your home directory.

mkdir -p ~/PaulStretch
cd ~/PaulStretch
curl | tar xzf –

After running these commands, on OS X your PaulStretch program will be ~/PaulStretch/ On Linux, it will be ~/PaulStretch/bin/paulstretch.
As an added bonus, I took the time to try building on a couple of different Linux systems, to verify it works there.

Once again, what will trip up the non-software-developer types in this whole process is step 0: making sure the dev tools are available on your system. That’s something I’m not going to explain here. Google it. You’ll need GCC installed, all the development libraries, and on Linux the development libraries for libasound — the ALSA sound library.

If you happen to be a Windows developer, you could take a crack at building using Visual Studio or MinGW. The CMake build files are theoretically portable, but you’ll have to download CMake for Windows (here: haven’t done this, because I avoid doing development work on my Windows machines at home. If I’m at home, and farting around on the computer, I want to be able to just use music software, not build it. Plus you can download the Windows version of PaulStretch here:

Let me re-iterate again — I don’t want to be tech support for this — if you can’t figure out from this post how to use what I’ve put together, you probably shouldn’t even be trying to build it yourself. Ask your kid nephew who’s a big H4X0R to do it for you.

New Track: Expemsible

All the hootenanny about PaulStretch got me playing with it again, and this is what I came up with. As my vrave buddies used to say ‘very ambient.’

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.

The source material was a couple of samples downloaded from the Internet — a drumloop and a bassline. I added the phaser effect. So the original audio was on the order of 2 seconds long.

Forensic Examination of the Slowed Down Justin Bieber “Love U”

This will be my last post on the subject. It’s been fun to get a lot more site visits, but just for perspective, my friend Jerry’s Retarded Ravers Of America site was getting ten times the traffic ten years ago that my blog does today. It also feels a little weird riding Justin Bieber’s coat tails to this new level of web notoriety. As it happens the PaulStretch OS X posts consistently generate more traffic than anything else on this blog, which puts me in my place–doing a port of PaulStretch may be my most enduring Internet legacy, even if I wish I was known more for my own music.

Anyway, as regards the “Love U” stretched version, there was some speculation that it was a hoax, and then some speculation that the ‘group’ claiming they’d made the track themselves was itself a hoax. I decided to investigate, and came to these conclusions:

  • It was, in fact, produced using PaulStretch, perhaps even using my OS X port
  • The actual slowdown was actually on the order of 10x
  • It was pitched down a little more than a half-step.
  • Either it was MP3 encoded at a low quality/bitrate, or slightly lowpass filtered. My version (which is encoded from the raw output of PaulStretch) sounds noticeably brighter.

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.

The original:
J. BIEBZ – U SMILE 800% SLOWER by Shamantis

Paulstretch for OS X — the Justin Bieber Edition


Well, someone may — or may not — have posted a slowed down version of Justin Bieber’s “Love U” and as a result my janky little blog is experiencing a 25-fold bump in traffic. I’m hoping the fine folks at Midphase don’t mind — I have an ‘unlimited bandwidth’ account, but I think it’s only unlimited until you start saturating their net connection.

Anyhow, if you’re here looking for Paulstretch, get it from this post — the new build can actually load MP3 files due to a new version of one of the libraries it needs. If you’re still on a Power Mac, go here.

The build scripts are Here, but don’t even bother unless you are an actual programmer, because I can’t troubleshoot your problems for you. What I wrote worked perfectly from a standing start back when I wrote it, but library versions change, source code archive links get moved, and you may not have all the build tools on your machine.

Let the stretching begin!
EDIT: I listened again to the example I put up back when I first started playing with Paulstretch and I still really dig it. It’s the Bitone Troupe’s cover of Björk’s “All Is Full Of Love.”

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.

Iowa Cicadas

I started my summer DJ mix with a track of sorts I made with my Zoom H4 of insect sounds in the evening here in Iowa City.

Here is the track independent of the mix:

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.

This is actually done in 4 tracks — 3 different recordings from different spots, mixed with one of them processed with Granite.

If you really are into Cicada sounds, I can also offer this:

Which is 18 minutes from my back yard tonight. It’s a large file but there’s lots of good sound in there.

And speaking of which — a great investment if you do any sort of location recording — a wind muff! I got this one and it made everything I record outside sound better. I even use it indoors, because it seems to damp all air motion around the microphones, with the result of less ‘dead air’ self-noise.

Again with the Granular Synthesis — Granite VST

New Sonic Arts has come up with a new granular synthesis tool they call ‘Granite.’ It is similar to many other of the granular synthesis tools, and yet has it’s own unique sound qualities.

This was announced last week and I ended up listening to the demo samples on loop for quite some time. It seems to be tuned to very musical throughout the entire parameter space, which is rare. Chief among the improvements I can imagine are filter types other than low pass, and an integral delay effect to go with the reverb. But since one can effectively do that with effects elsewhere in the signal chain, it’s a minor thing.

A brilliant feature of Granite is that aside from the usual free-form sound mangling one associates with granular synthesis, it’s set up to be a VST instrument you can play from a keyboard or synthesizer. Obviously with some sounds that can be more conventionally musical than with others, but it does come up with unexpected and pleasing sounds.

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.

Even More Granulosity – PaulStretch


When I did the OS X build for PaulStretch, it became the most popular and enduring blog post I’ve ever done.

Paulstretch has kind of a funky user interface, but the way it sounds, and the sound variations it is capable of are fantastic. And it’s free. It also can take a 3 minute song and turn it into a week-long ambient drone. The dude who wrote it (Nasca Octavian Paul) shows up on the web every 5 years ago and drops a piece of interesting software, then disappears again. He’s never returned my e-mails, and I’ve maintained the OS X port!

Anyway, this is Paulstretch operating on “Mal Hombre” by the legendary Lydia Mendoza

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.

The original. I should mention that Lydia Mendoza is absolutely fantastic. A pioneer of Norteño music, the popular music of Mexican-Americans in the United States, she plays that music kind of like what’s playing in Mexican Restaurants, only she’s as fearless a singer as Aretha Franklin. She can bring me to tears, and I don’t even know Spanish.

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.