Playthroughs
Above: Playthroughs Max-MSP Patch v3.0 - March 6th, 2005.
Right: Routing for the Electric Guitar/Pedal Array.

Playthroughs v3.0 Sound Samples (3/05) :

kfw.quickie.2005.2.9.11.22.00
(Demo of the "Live.Concrete" Module with full guitar/pedal input)

kfw.quickie.2005.3.5.0.2.43
(Demo of the "Live.Concrete" and "Granular" Modules with full guitar/pedal input)

kfw.quickie.2005.3.6.21.54.22
(Concert recording using the entire patch with full guitar/pedal input)

Older Playthroughs-System Sound Samples :

kfw.gtrsolotape.sideone
(Recording of the original hardware-based guitar system, ca. 1996)

kfw.mgtr01
(Guitar-computer piece via Spark's "Realtime FX Machine" ca. 1998/1999)

kfw.te000.mix
(Tracker Etude sent into Logic for further processing, ca. 2000)

kfw.snd.aif
(Playthrough using rectified (i.e. distorted) sine tones ca. 2001)

kfw.track4
(Minimal Playthrough with band-pass filter module in v.2.0, ca. 2002)

I began experimenting with real-time guitar-processing setups during the mid 1990s... I had this amazing "Norma" guitar - you could actually pull the pole-pieces out of any one of the 4 (!) pickups while you were playing it, plus the pickups were entirely microphonic and would pick up any sound-source near the guitar (this guitar was covered in food at the fateful last "trio" El-Ron gig and is still sitting in the basement in the case... I'm afraid to open it). I would affix a "flex-a-ton" to this guitar, which was played with an E-Bow and a metal slide through a Lexicon Jam-Man and a Digitech DSP-12... the result was this great raw square-wave low-end drone. I played a few gigs in 1997 with this setup... in the Twisted Village shop with Damon & Naomi, and again a few weeks later opening for Yo La Tengo at the Middle East Downstairs... a very high profile gig given the relative a-commerciality of the sounds produced. During the soundcheck I sliced my hand open with a straight razor I was using to "prepare" said guitar, but played the gig anyways.

The following year I acquired a Mac G3 Powerbook and started experimenting with a powerful (but sadly extinct) audio software package called "Spark". I found that in Spark's "Realtime FX Machine" mode I could string together VST plugins in a modular array and play any sound-source through said matrix and receive instant feedback. The trick was in getting the right order of processors... after a few weeks I had come up with a tried and true signal path:

Input --> MDA Tracker --> Steinberg Karlette --> GRM Tools Shuffler --> Spark Reverb --> Output

The beauty of this chain was that, if I played a guitar (at this point, a very cool and very cheap Bentley acoustic with a Dean Markley pickup) carefully through a volume pedal, fading in each note to remove the attacks, the MDA Tracker plugin would correctly guess the pitch of the note(s) played into it and synthesize a nice round sine tone at the exact same pitch. The slight intonation inconsistencies inherent to even an expertly tuned/setup electric guitar would be translated in floating point values to the Tracker, whose output was sent to the Karlette where all those slightly out of tune notes slowly built up in a near-infinite feedback loop. I panned the four "heads" of Karlette hard left, just left, just right, and hard right - the tap times set at 2 seconds, 1.98 seconds, 1.96 seconds, and 1.94 seconds. This yielded a very slowly shifting sound-cloud, pure enharmonic sine tones going out of phase and cancelling each other out all across the stereo spectrum. In itself a very dense sound, but when fed into the GRM Shuffler the tonal possibilities really started to reveal themselves... and when that was fed into a rather remarkable spring reverb emulation, well, let's just say it was a very unique combination of sounds.

Using this system I recorded about 2 DAT's worth of improvisations, mostly 10 minute pieces with slow attack and slow decay. As much as I love completely atonal and dissonant music, I found that the harmonic buildup was much more impressive when I played in a scalar fashion... pealing out multi-octave arpeggiations one note at a time, then adding the one note below all others that would shift the tonality of the whole tone cluster in a completely different direction, then build that up and repeat ad infinium. One wrongly played or incorrectly tracked note-choice would ruin the entire performance. In time I became familiar with the system enough that I could feed notes into it in an almost subconscious level... I intrisically knew what note needed to be played next, almost a sort of "automatic music" with only one stage of human interaction, and a few tweaks of the plugin parameters for slight variation and formic buildup.

I made some 3" compact disc recordables of the two most succesful pieces and gave them out to friends. Kurt Ralske asked me to play a show he was curating at Brownie's in NYC, where I played the computer-based guitar piece in front of a live audience. Needless to say, there was a high level of excitement on my part in again playing long-form, blissed out drones in a rock club.. it was the perfect riposte to the jarring, short-attention span freakouts I was most known for and, even back then, getting somewhat tired of. One of the cdrs landed in the hands of the Apartment B label who reissued the two pieces as "21:30 for acoustic guitar..." in early 2000. This led to a series of concerts playing the piece opening for Labradford in 2001, who recommended I send some music to the Kranky label, who agreed to release an album of said pieces. This was incredible news as I did and still do consider Kranky the "heavyweights" of crossover rock-drone, penning many a review of their catalogue for fanzines...

I figured it was time to take it to the next level...

Back in college ca. 1993-1994 I had been using Opcode's Max to build MIDI-based performance pieces (under the tutelage of Dr. Richard Boulanger) although in the interim years I had little contact with any music software other than Studio Vision and Sound Edit 16 (all of the Hrvatski-music was produced via MIDI and a hardware Akai sampler). After retiring from my day job, I went on a working safari in Australia where I finally had the time/resources to purchase the contemporary Cycling '74 version of Max-MSP. Within one massive bringing-up-to-speed week I was playing concerts with a superior version of my previous Spark-based system, including a mind-bendingly loud duo set with Oren Ambarchi at the Sydney Opera House. The stability and easy learning curve of Max-MSP still, to this day, amaze me... there's little that can't be done within the realms of digital audio and control data manipulation given you work within the confines of the processing power of the host computer. Plus, and I repeat this often, I love that you start with a blank slate and are forced (at knifepoint) to build everything yourself. That's the kind of modus I can get behind... especially in a market inundated with "plug and play" solutions for producing cookie-cutter music.

For a straight year, I recorded music using variants of the Playthroughs 1.0 system, resulting in approximately 18 hours of music. I whittled this down to the three finest compositions on file, added a few non Max-MSP pieces, and christened it an album... "Playthroughs" was released on Kranky in October of 2002 and continues to sell in record numbers (for an album consisting mainly of processed sine tones at least). Just prior to the album's release I upgraded the patch to 2.0, as, armed with a Powerbook G4 400, there was much more room to squeeze in processor-intensive routines. This revision marked my switch to constructing master patches entirely out of "BPatchers" - sub-patches with their own inlets and outlets that can be arranged, deleted, and organized any way I see fit, even on the fly.

Between 2002 and 2004 I played the Playthroughs piece the world over from Austin to Tokyo to New Orleans, etc... all while adding functionality to certain modules, while removing others entirely. These constant renovations, coupled with my recent acquisition of both a top-of-the-line Mac Powerbook and a collection of hardware-based Electro-Harmonix effects pedals (take a look at the routing chart above) to process the guitar signal pre-computer input culminated in the completion, yesterday, of the landmark release Playthroughs V3.0 (just in time for an evening gig in Allston, MA, MP3 transcription above). The system has never sounded better...

Below is a rundown of what each BPatcher is and what it does... -Keith Fullerton Whitman, March 7th, 2005.

Modules

Pitch Tracker - Time.Lag

My original designs ca. 1998 all used the MDA "Tracker" VST for analysis and synthesis of the pitch information. These days I use a combination of the Tracker VST and a few different third-party Max-MSP externals... sometimes Miller Puckette's "bonk~" and "fiddle~", although these days more often than not I use Tristan Jehan's "pitch~" for the input analysis, "cycle~", "rect~" and "phasor~" for the waves and (occasionally) "breakpoint" for the enveloping. There's a pop-up menu that lets me choose the wave type, another for the octave, a mute switch for "Tracker" and a bypass switch for the objects.

As far as the Time.Lag... again, at first I used a plugin, Steinberg's "Karlette" but now I use a module of my own devising... It consists of a 16-head tape-delay simulation using the stock "tapin~" and "tapout~" objects with some slight filtering in the feedback loop... two pairs of 8 heads arranged in a L <--> R array. The number box in the bottom left controls the regeneration for all 16 heads. The boxes with lists of 16 numbers are the times in milliseconds for each head. note the numbers in top box... the first row consists of Fibonacci sequence numbers, the second the same values plus 100 milliseconds. I find that these values yield a very smooth dispersion for sound with no attack, and yield some pretty amazing high-polyrhythm sounds when fed timbres with a clearly defined attack.

MIDI Control - Volume on a Fader, Knob 1 controls the Pitch Octave, Knob 2 controls the delay-line feedback, Knob 3 controls the delay-line array volume.

Shuffler

As often as I've tried to recreate the GRM Tools "Shuffler" plugin via a Max-MSP patch, something always goes haywire, or my patch starts spitting out DC-Offset (although I haven't tried for a few years). So I've just built a front-end for it that uses some nice sequencing features to automate the parameters on the fly. There's a 5-part Multislider that controls the 5 esssential parameters (3 of which are midi-controllable). On the right is a small metro-based timing module that chooses a new tempo randomly on every metronome click. These clicks are sent to the period slider, which is quantized to musically useful values (100ms, 150ms, 167 ms, 200ms, 250ms, etc... right on up to 2 seconds). I generally use two of these in a playthroughs patch... I'll fade one in producing shuffles of the time.lag output in the same octave, another either an octave up or an octave down. When the envelope value is set to 0%, there's an audible click that accentuates the rhythm of the shuffling.

MIDI Control - Volume on a Fader, Knob 1 controls the pitch (scaled to 8vb, 5vb, 4vb, root, 4va, 5va, 8va), Knob 2 controls the Envelope/Attack, Knob 3 controls the Fragment.

Band Pass Filter

Just your basic band pass filter... with a twist. When fed the output of the shuffler module, especially when the envelope of said shuffler is set to 0%, the dc-offset clicks force the filter to randomly choose new values within the selected range of the sliders. This causes a great whooshing sweep sound and/or pop, both things I relish. The checkbox above the button on the right is for turning off this attack-sensing behaviour (the button flashes when it hears an attack). The next set of boxes to the left turns on an oscillator that sweeps across the set ranges of each slider at the speed of the number. The buttons all the way to the left select the entire range of each slider. I generally use four of these in a patch.

MIDI Control - Volume on a Fader, Knob 1 controls the bandwidth, Knob 2 controls the low freq. threshold, Knob 3 controls the high freq. threshold.

Live.Concrète

The newest addition to the patch... I came up with the idea after listening to Franca Saachi's "En" LP on Die Schachtel... My theory is that any sound with a delay trail will sound fantastic when played in reverse. Each waveform object is connected to a mono buffer set to 16, 18, and 20 seconds, panned hard left, center, and hard right respectively. They are constantly recording the input sent to them (normally the signal from the Electro-Harmonix pedal suite) in loop-record mode (i.e. audio data is replaced by fresh audio with each round). The selected audio in each buffer can be played back at any speed/pitch (the number box in the middle row of boxes to the right of each waveform object). The boxes and buttons on the top row to the right of each waveform object turn recording on/off (checkbox), select the entire buffer, and change direction of playback without changing the speed/pitch. The checkbox and drop down on the bottom row to the right of each waveform object turn on a metronome that randomly clicks the "change direction" button at a random interval (threshold set in seconds). What results is a dense folding of simple input into complex iterations.

MIDI Control - Volume on a Fader, Knob 1 controls the playback speed on buffer 1, Knob 2 controls the playback speed on buffer 2, Knob 3 controls the playback speed on buffer 3.

Granular

This is possibly the most CPU-intensive of the essential modules in this patch...when I can I like to use two instances but often the computer can't handle it. This module is based entirely around Nobuyasu Sakonda's (aka ChilDisc recording artist SAKO) "Granular 2.5" patch, by the far the best sounding granular synthesis toolkit for Max-MSP. I spent around 6 months taking the patch apart and reconstructing it to my own liking.

MIDI Control - Volume on a Fader, Knob 1 controls the oscillation speed, Knob 2 controls the grain length, Knob 3 controls the octave.

Rig.Veda

Merely a front-end for a patch in Native Instruments' "Guitar Rig", named after a Sun City Girls album. Said patch uses approx. 20% of the CPU on my NEW laptop, and is used sparingly, often at the end of a piece when overloading the CPU and crashing the whole system is less of a concern...

MIDI Control - Volume on a Fader, Knob 1 controls the gain/distortion, Knob 2 controls the phaser rate, Knob 3 controls the reverb time/level.

Playback

Plays an audio file back from disk. Useful when I want to record parts of the piece, then bring them back in later on. I also have been known to play along with field recordings and other instrumental drones. The buttons correspond to preset speed values, which can be scaled through via MIDI control. The bar under the file-name reveals the current position in the file being played back. The big box turns playback on and off.

MIDI Control - Volume on a Fader, Knob 1 controls the speed.

Matrix / Patchpoint

The "brains" or "blod and guts" of the patch. any module can be routed to any other module.
The first matrix is for routing the input (dry guitar signal on the left, pedal input on the right) into each module directly.
The second is for routing the "traditional" playthroughs modules directly into the newer ones.

Playthroughs Mixer

I design a mixer module for every patch, usually with a single fader controlling a stereo pair of inputs.
There are always two signal meters for each channel, and each channel is always MIDI controllable.

MIDI Control - 9 Volume controls on 9 faders.

I/O Module

The big box in the middle, when activated, reports CPU usage levels in 1/4 second increments into the number box below. This is Essential to getting the most out of the patch.
CPU-hungry modules such as Rig.Veda can be disabled, then activated when older modules that aren't in use are disabled. The meters labeled 1 and 2 reflect input activity.

Back