Way back in the day, my sequencer (I want to say Master Tracks Pro, but it might have been Cakewalk at this point) had a function where I could stretch a block of MIDI notes to any duration, independent of traditional measure divisions. So, effectively, you could make parts of your ensemble play at different tempos than each other (marching to the beat of their own drummers, as it were).

Why would you want that?” is the obvious question, and I don’t really have an answer for you except “I was at CalArts.”

I made a piece there, where every instrument in the orchestra (split into pairs) was playing Bach’s Invention #1, at independent but very slow tempos.  (At full speed, it would have been an impenetrable mess. But at a glacier’s pace, the chaos feels like deliberate choices.)

It’s hard to describe, really. Your mind would pick out repeating motifs, but couldn’t identify a looping pattern. New melodies would emerge, and feel like they’d always been there. If you left and came back, you’d hear something completely different. But if you’d stayed to listen, you wouldn’t have felt a transition from one realm to the next.

I believe the experience lasted for seventeen days from beginning to end.

I was never able to convince human performers to take on this challenge. And even if I had, there was no media capable of recording it back then.

I’m sure the only version that exists is on an unlabeled floppy disk (which I no longer have drives to read), in a proprietary file format (for software that doesn’t exist anymore).


Software doesn’t really let you do that anymore.

So, I built something this morning which restores this ability.

Again, the “why” part is harder to pin down…

There’s a few things to clean up, still.
I’ll share the device when I deem it “not dangerous,” and make a video when I figure out what it’s for.

Meanwhile, what do you think I should call the thing?

(I’ve been going with working title “Transporter”, because it acts as a surrogate for Live’s transport.  But dad jokes aside, that’s not what a transporter is…)

“Orbituary” arc demo

Just an exploration of simulated physics-based audio controls.  The video explains itself somewhat better than I can in text.

I programmed this back in 2011, but am planning to revisit the idea soon. The big change being, rather than four prerecorded audio loops, I’d like to dynamically generate those loops with a grid based step sequencer interface.

Anyway… if you’re a max/msp user with first generation monome arc hardware at your disposal, and want to dig into several drafts of my ancient source code for some reason, that can be found in this forum thread.
(I would be “greaterthanzero” there)

pushCCs app

This app creates virtual MIDI ports for mapping in Ableton, and provides individual pressure values for each button.

I’ve added an optional latching mechanism. When that is active, you can press any of the corners to hold the other buttons in place. You can then safely remove your hand from those buttons without zeroing out their parameters.

Additionally, if you press three of the corners simultaneously, that will zero out all of the buttons and their associated values.

If you’ve got a foot pedal plugged in (slot 1), you can use that for latching instead of the corners.

Note: This one is Mac only. It relies on some services from the operating system, as well as the friendlier device sharing nature of things in general. At this time, there are no plans to create an equivalent PC workflow. The editable .maxpat file is included, should you like to attempt a port yourself.



  • …had all kinds of problems. you don’t want it.


    (note: the compiled version included here was not in fact standalone. I’ve since learned how to make those correctly)

Josh Spoon did a video writeup of v1.0 here:

as part of his excellent “30 Days of Ableton Push” exploration.

early prototype / previous max for live version

I’ll write up a proper explanation later, but here.

requires Ableton Live 9, Push, and Max For Live. if you don’t have those things, this probably won’t interest you.

partially based on this:

or rather, the old version:

(This is missing nearly every feature you’d possibly care about, but it doesn’t require the max runtime. I may add some of the functionality from the runtime version back into this later, when v2 is fleshed out a bit more, but there’s no point with this version. m4l will never support poly aftertouch, so it’s strictly a matter of whether the other features add enough without that. They don’t yet.)

Suspension Pedal, Max for Live MIDI device

You’re probably familiar with the piano’s sustain pedal, and how that works. When you press it, it disables the mechanical action that ends a note when you take your hand off a key. When you release the pedal, that action is re-enabled.

That’s the extremely simplified explanation that a MIDI keyboard’s sustain pedal reproduces, at any rate. While the pedal is pressed, notes ring indefinitely, allowing you extra time to reposition your hands, but also creating a muddy dissonant mess if you’re not careful.

There’s another variation, called the sostenuto pedal, which you’re probably less familiar with. Essentially, the notes that were held down when you depress the pedal continue to ring indefinitely, but notes pressed subsequent to that are still ended by lifting your fingers off the keys. So you can, for example, strike a dramatic chord and play short notes on top of it without having to leave one or both hands on that held chord.

Most MIDI software and devices don’t support the sostenuto pedal, but the magic of scripting allows us to create it, if desired.

What I’ve created isn’t quite that, either. It’s a third pedal behavior that I don’t think I’ve seen before. I’m calling it a suspension pedal.

The notes that were held when you depress the pedal ring out indefinitely. Then while the pedal is pressed, all input from your keyboard is ignored. Finally, at the moment you release the pedal, it changes to whichever keys you happen to be pressing.

If you’ve released a note, that note ends.
If you’ve added a note, that note sounds.
If you’ve left a note alone, it continues to sound.

This was specifically devised for situations where you’re controlling multiple instruments simultaneously. Add this device to one instrument’s device chain, and you can force that instrument to fall in and out of sync with the others harmonically.

And here’s the download link:
Suspension Pedal v1.0

Version 2 will have a configurable threshold, so if you’re using a more expressive control (which sends a full range of CCs rather than simple on/off messages), you can set different instances to trigger at different levels. Unless in testing, that proves to be a terrible idea, at which point there is no version 2.

It wasn’t a terrible idea, but I’m not sure the added complexity is of tremendous benefit to anyone. I’ll leave both versions available, but for the moment, I think I prefer v1 myself.
Suspension Pedal v2.01

2.01 added a nondescript grey button below the threshold slider. Pressing it sets the threshold slider to match whatever the pedal slider is currently set to. This should make it easier to set things “by feel”; map the pedal slider first, find your sweet spot, and press the button to lock that into place.

Note: All three of these controls can be mapped to automation clips, or the output of other apps. I can’t think of a single reason why you’d want to do that, but I left the option open.