An Oswaldian remix of The Stooges Fun House:

There’s something freeing in enforcing limitation. I’ve done a bunch of pieces where I restrict myself to a single loop or brief sample (, and I guess I’ve always thought ‘remix’ was the wrong word. When I hear Reich take a fragment of an idea and expand, contract, vary, blend, mold and turn it inside out, it feels divorced and devoid from the original material. Here, bringing up the original material changes your frame of reference, adding a subliminal color to the listening experience. I could listen to Funhausen raw, power through the soundscape makeup and come out the other side fresh, not knowing the source. Listening to it on the way in, I’m standing on the original, hearing the difference in the tin bag guitar sound of the original and pulling a picture together that’s made up of what I hear on this disc, and what my ear memory supplies. Anyways, cool little EP.

Archival Records time

I’ve been getting together infrequently with my Wizard Prison bandmate John Vallier to do some jams. He works solo as Archival Records, and we’re scheming to start a film + scoring project this winter in the spirit of Robert Hughes Shock of the New. Here’s some of John’s work, followed by bits from our last few sessions:

Rough and tumble clips from our last session:

Audio MP3

Audio MP3

Audio MP3

And, lastly, ep 1 of Shock of the New, if you haven’t seen it:

fIREHOSE: Flyin’ the Flannel

I’ve spun this thing so many times. There’s something deeply poetic about these songs, their sequence. The whole is a sum of the parts, and these parts are strong. 

Back in 90, Watt surprised everyone I knew by signing to Columbia. SST had been going so strong for so long, it was hard to swallow an end to SST glory days, but Sonic Youth, Meat Puppets, everyone SST was seeking greener pastures. f had released 2 killers back to back (Ragin + If’n), but fROMOHIO was weak to these ears. Felt slapped together. This was a return to form, a 2×4 to the head. 

I always heard this album in 3 acts. Listen along and see if you hear it too:

Act I: Rock tunes: Down w/the bass, Up Finnegan’s Ladder, Can’t Believe, including the singles. Is this classic A&R ‘start with the hits up front’ thinkin? Good tunes, then the mood swings.

Act II: Road tunes. If act one is getting out of bed and hitting the coffee, act two is hitting the road, crystallizing beautifully in ‘Too long’. 

Act III: Angular tunes: the last third is more Minutemen to my ears than anything they’d done at that point, ‘cept bits of Ragin. Maybe it’s just the energy in Ed we hadn’t heard before.  In my sequence, I cap Act 2 with Toolin, making Act 3 hold together a little more, but that’s just me.

This one rules.  

Gerard Grisey’s Le noir de l’etoile

Fans of Xenakis’s Pithoprakta need to listen to Gerard Grisey’s Le noir de l’etoile. In the late 50s, architect/composer Xenakis expressed what he heard and felt during his time in the Greek resistance, using deep math to generate his pieces, evoking (for me) rainfall, rocks caught in a strong current, bullets flying by ears and choirs of shouting voices.

This piece of Grisey’s, inspired by the discovery of pulsars, comes from similar sound world to my ears. Natural phenomena made flesh through notation, though I can’t say exaclty what phenomena yet. Beautiful piece – I can’t stop spinning it this week.  The Boston Globe wrote a great intro to this piece here.

Here’s Pithoprakta, in case you haven’t heard it:

Common Music 3: Remix drum loops with Scheme

Working though porting some old instruments which generated Csound scores from Common Music 1 to Common Music 3. This example illustrates a few techniques I used in my piece Anxious from 1999. I kept myself to a few drum sounds, primary this loop, which comes from a Jimmy Smith tune originally, but was known to me through Professor Booty.

Grab the loop – jam.aif

Grab the .orc

Grab the .scm file

Here’s the CM code:

; 14 segments for jam.aif
(define idxdur '((0.018 q) (.697 q) (1.376 s) (1.538 e)(1.869 s)(2.032 s)(2.2 e)
    (2.543 s)(2.705 q)(3.373 e.)(3.895 e)(4.232 q)(4.894 e)(5.236 s)))

; given the dur of a quarter, return tempo
(define (quarterDur->tempo quarterdur)
  (* 60 (/ 1.0 quarterdur)) 

; remix - based on idxdur, remix sections of jam.aif loop
; args: 
; - tem: tempo (should be a float)
; - pan: angle to pan signal (between 0 and 90)
; - amp: attenuate signal (between 0.0 and 1.0)
; - totaldur: process continues until totaldur is exceeded
(define (remix tem pan amp totaldur)
  (let* (
   (iter (make-cycle (list 
    (make-cycle '(5 6 7 8))
    (make-cycle '(5 6 7 8))
    (make-heap '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 ))
    (make-heap '(5 6 7 8))
   (origtem (quarterDur->tempo (- .697 .018)))
  (process with curtime = 0
             for t = (elapsed #t) ; get true score time
             for i = (next iter)
             for dist = 5
             for pct = .025
             for idx = (nth idxdur i)
             for indx = (nth idx 0) 
             for origdur = (rhythm (nth idx 1) origtem)
             for endx = (+ indx origdur)
             for r = (rhythm (nth idx 1) tem)
             for d = (rhythm r tem)
             for p = (/  tem origtem)
; faster tempo, the quieter
            for a = (+ .5 (- amp (/ tem 210.0)))
            until (> curtime totaldur)
            (cs:i 3 t d a p pan dist pct indx)
            (set! curtime t)
            (wait r)
; make-reverb-note
;   Turn instrument on for duration of score
(define (make-reverb-note dur)
  (process repeat 1 do
  (cs:i 99 0.0 dur 5))
; A verbose way to sprout this process at multiple tempos.
; The result is a Nancarrow-esque tempo canon
(sprout (list 
    (remix 100.0 10 1.0 30) 
    (remix 110.0 30 1.0 30) 
    (remix 120.0 60 1.0 30) 
    (remix 130.0 80 1.0 30) 
    (remix 140.0 10 1.0 30) 
    (remix 150.0 30 1.0 30) 
    (remix 160.0 60 1.0 30) 
    (remix 170.0 80 1.0 30) 
    (remix 180.0 10 1.0 30) 
    (remix 190.0 30 1.0 30) 
    (remix 200.0 60 1.0 30) 
    ) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0  0 0\nf2 0 16384 9 .5 1 0

; A cleaner, less verbose way to generate the same
(define mixes '())

(loop for i from 100.0 to 200.0 by 10.0
    (set! mixes (append mixes (list (remix i 45 1.0 60))))

(sprout mixes "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0  0 0\nf2 0 16384 9 .5 1 0

; a single instance of remix, with reverb note
(sprout (list (remix 100.0 10 1.0 30) (make-reverb-note 40)) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0  0 0\nf2 0 16384 9 .5 1 0

Common Music + Grace – Undead algorithms alive again

I’ve been getting reacquainted with Common Music and Grace for the past few weeks, looking at old pieces I create in CM 1.4 and porting them as I go to CM 3.9. I’ll be keeping some notes here which may morph into posts on a separate blog/forum/site dedicated to CM.

For now, here are the relevant online resources I’ve been able to identify:

Specific to Common Music:

Main Common Music page

Common Music Dictionary 

The CM Dist Mailing List

Taube’s Notes from the MetaLevel is best acquired through Amazon AFAIK

Csound Journal article on CM/Grace

For oldtimers like me, the pre-2002 cmdist archives can be useful

Grace builds are archived here. I had a problem with the latest Mac build available through the App Store, but found a working package here.

Scheme and other relevant resources: – hub of the online Scheme community. CM is an extension of Scheme, which in turn is a dialect of Lisp.

One python programmer’s notes on learning scheme. He’s a good writer so it’s a fun read.

Main S7 page – S7 is an extension of Scheme which CM leverages.

Two free books! The Scheme Programming Language and Practical Common Lisp

Realtime Csound from Grace using OSC routing


While working with Grace’s Csound rendering recently, things got a little bogged down as I tried to access the same score file from multiple processes. Here’s a post I made to the CM list a little while back, which sums up my problem:

I’m stuck with a problem trying to sprout processes and work with Csound. I’m trying to do something more complex with a piece I’m working on, but
managed to boil down the problem I’m having by using the Csound Scheme example. If you take a look at that example, you’ll see a function called ransco:

    (define (ransco len rhy lb ub amp)
      (let ((dur (* rhy 2)))
        (process repeat len
                 for t = (elapsed #t) ; get true score time
                 for k = lb then (between lb ub)
                 (cs:i 1 t dur k amp)
                 (wait rhy))))

A bit further down in the example, there’s some instruction on sprouting this bit multiple times, using :write #f to ‘collect’ the events generated into one score:

    ; This will generate a score without writing an audio file. execute
    ; the expression several times and use the Audio>Csound>Export... item
    ; to export all the score data in various formats

    (sprout (ransco 10 .2 60 72 1000) "test.sco" :write #f)

I was assuming I’d be able to do this same thing from a process, but I’m getting an error that Grace is unable to get a file handle to “test.sco”. Here’s the function:

    (define (f1)
      (process repeat 3
      (sprout (ransco 10 .2 60 72 1000) "test.sco" :write #f)
      (wait 1)))

…and I try to execute it like so:

    (sprout (f1))

Instead of trying to bend CM to my will, I decided to use OSC to fire Csound events in realtime. This has been pretty successful so far, so I’m posting my ‘OSC Router’ Csound score and example Scheme file for others to use.


The .csd is here 

Sample scheme file is here

Scheme file

My .scm file is pretty verbose for this illustration, but I figured more is more right? :) At line 2, I open up an osc listener:

(osc:open 7779 7825)

I’m not receiving anything incoming, but not the outbound port 7825 – you’ll see that again in the .csd file. The lion’s share of the file is 4 nearly-identical functions which generate separate lines, ultimately to be played by guitar quartet. Instead of the familiar call to cs:i, we use osc:message:

(osc:message "/router" 1 t dur amp pitch pan dist pct )

Essentially routing p-fields of a score event to outbound port 7825.

At this point, we can just sprout a list of calls like I do at lines 128-134:

(sprout (list 
         (quartetlet-1 10 300 (make-heap '(gs4 b4 a4 fs4)))
         (quartetlet-2 30 300 (make-heap '(gs4 b4 a4 fs4)))
         (quartetlet-3 60 300 (make-heap '(e5 fs5)))
         (quartetlet-4 45 300 (make-heap '(fs3)))

…but I wanted to sprout them within a process, along rhythmic lines. Hence the function beginning at line 136:

(define (launch num)
  (let*  (
   (rhythms (make-cycle '(w w+h w+w w+w+w)))
           for r = (rhythm (next rhythms) 72)
           for iternum from 0 to num
           (set! iternum (+ iternum 1))
           (sprout (list 
            (quartetlet-1 10 5 (make-heap '(gs4 b4 a4 fs4)))
            (quartetlet-2 30 5 (make-heap '(gs4 b4 a4 fs4)))
            (quartetlet-3 60 5 (make-heap '(e5 fs5)))
            (quartetlet-4 45 5 (make-heap '(fs3)))
           (wait r)

Launch like so:

(sprout (launch 50))

You’ll hear bursts of quartet material initiated according to the rhythm generated by

(rhythms (make-cycle '(w w+h w+w w+w+w)))

which generates a 5-second burst of quartet material for each rhythm generated. Here’s a sample (player at top)

Osc Router 

Let’s look at the csd, which routes incoming OSC data from Grace. At line 10, we open up an osc listener on line 10:

gihandle OSCinit 7825

Instr 1 uses the pluck ugen with the familiar parameters for duration, amplitude and pitch, along with parameters to locate the note in stereo space using locsig/locsend. Instr 99 provides reverb (actually not used here..).. Instr 1000 is the relevant instrument here:

instr   1000
kinst init 0
kstart init 0
kdur init 0
kamp init 0
kpitch init 0
kpan init 0
kdist init 0
kpct init 0
kwhen init 0

    kk  OSClisten gihandle, "/router", "ifffffff", kinst, kstart, kdur, kamp, kpitch, kpan, kdist, kpct
    if (kk == 0) goto exit
    schedkwhen kk, -1, -1, kinst, kwhen, kdur, kamp, kpitch, kpan, kdist, kpct
    kgoto nxtmsg

I init k-rate variables to hold incoming p-fields, and fill them with incoming data via OSClisten. If I get an osc message (signalled with kk, the trigger from OSClisten), I use schedwhen to fire an event to the intended instrument.

On my macbook, I run the csd with the following params:

csound -odac1 -+rtaudio=CoreAudio -Q0 -B512 -b64 osc_router.csd


The Common Music family of releases has shaped my music making, and getting back up to speed with the latest from Rick Taube, Bill Schottstaedt + co. at CCRMA has been rewarding. These projects (Common Music 1, 2 and 3.x, Grace, CLM, Snd) have little in terms of PR out there, but deserve more airtime out there IMHO. I hope that this examples serves to steer others in productive directions. More soon!

Once again, the links:

The .csd is here 

Sample scheme file is here

My Sound: June 2015: Collages + Edits

When I was little, my folks were cool enough to give me a record player and a bunch of random records. These would prove to be formative, just like everything else I heard – themes to tv shows, cartoon music, anything on the radio. I listened to everything with equal interest, but tried to manipulate the picture as soon as I found some way to interfere.

My folks had an 8-track player. I’d pull the cartridge in and out, trying to match the ‘weeerp’ you’d get when you plugged it back in with the beat on the record. I loved Blue Rondo ala Turk by Dave Brubeck, but liked it even better when I could spin the record backwards and control the speed with my fingers. As soon as I got ahold of 2 tape decks, I’d make my own jacked-up radio plays, interspersing wrong-speed variations on TV commercials I’d recorded with weird dialog my friends and I would make up. These recordings are sadly lost – sad for me, anyway.

I started making tape-pause collages back then too. Grab a blank tape, and record tiny bits and pieces of songs, editing the song(s) together on the fly. You have to remember what all you’ve recorded if you want any continuity, but that’s not always the case: sometimes it’s a game of exquisite corpse. I’d forgotten about this until the mid 90s, when the internet brought me John Oswald’s Mystery Tapes. I really dug these, and loved them for their composition-by-deletion economy which generated new sounds.

So this is a collection of pieces I constructed, rather than played, and might be the most out-there of these comps, so far. I don’t know – let me know. Here’s the rundown:

Soul Gold (2007)
Brother Reed O’Berne brought me a short film to score, a little piece my brother had shot (if I remember correctly). Timing the edits in the audio to those in the film yielded new rhythms and ideas.

Shimmer (1995)
The Yamaha MT-120 4-track dominated all of my time for a while, and I experimented like crazy. This is my attempt to distill what, at the time, were 2 of my favorite pieces of music: Pithoprakta and Metastasis by Xenakis. These textures would alternately alienate or envelope whoever I played them for. Here’s a condensed version of what I liked 20 years ago, coupled with my attempt to compliment said textures with my geeeetar.

Tape pause on FM. Listener’s guide: listen for the new melodies and beats that happen accidentally.

You Need Something (2006)
Ryan Dignan and I were collaborating on sounds for Megan Griffith’s First Aid for Choking, this being one we recorded but did nothing with. The woman speaking through the shortwave is a nun recounting a particularly stressful trip to Miami, wherein the stewardess tries to calm her with alcohol. “You.. need… something…”. The percussion is an exercise Ryan created for his elementary school class using a tupperware cup or yogurt container…

Ambient for Piano (1999), Ambient for Viola and Guitar (2014)
I used to have this great schedule: “4 10s”: 4 ten hour days, with Fridays off. I’d sit in front of the piano 9-5, recording any keepers I stumbled into. The cover of the March edition was taken during this time.
This weird line, somewhat tied to serialism, was in an old notebook, one I found sometime in the “4-10s” period, and I made a little piano piece out of it. My friend Barret Anspach and I (we may get that trio going yet!) recorded a variant at our practice space, applying a few more rules to the composition, creating the phasing you hear here.

Blueberry (2006)
In this bit from William Weiss’ Emergency Pants collection, we hear the protagonist’s attention drift while he does the laundry, fantasizing he is winning a blueberry pie.

Shopping Thang
Tape pause on AM, in AZ. Listener’s guide: Ignore the clicks, listen to the bass, kick and snare in this one. This is what happens when I wait in the car while someone runs into the store ‘real quick’.

Travels of the Fetus (1996)
Matt and I make this collage of tape, Native American flute and gtr one night in Lake City. It reminds us of the womb so much, we name it this.

Double Yesterday
Tape Pause on FM. There’s something about FM radio transmitting 80s buttrock that just.. has it’s own flavor. Listener’s Guide: Follow the guitar, at least in the beginning.

Adrift (1998)
Depicting the freezing landscape of Chelyabinsk, Siberia, Russia in 1998. I lived there for two months. Csound, Shortwave, stretched bird song.

Tape pause on FM. Listener’s guide: I think the flutes work with the choral stuff..

My Sound: March 2015


Tracks 1-5: From Shag Carpet Sunset (2002)

I think at some point we thought we’d be halfway between the McKenzie brothers and the Cohen brothers. This was the first big move by my filmmaking brother Andy and a prolific time for me. These tracks were produced with the help of my brethren Ian Rashkin (engineering advice and I think bass), Josh Stewart (trumpet) and especially Neil Wilson (all drums), who let me use his basement studio for this whole soundtrack. Country Session Man and sometimes IT guy Forrest Lee Jr played the steel guitar on Track 1, the opening theme to the film. Looks like Forrest has some cds up on cdbaby here.He’s an amazing player. Track 3 is a four track recording from 1993 that Andy ended up wanting to use, to my amazement.  Tracks 4 and 5 were my first recordings on a computer – Andy sings lead through our upstairs telephone on Love is a Rocket, and Almost Home was recorded on my cousin Mike’s mac while I housesat for them.

DVD here at Amazon.

Track 6 – 9: Game stuff

Some random bits I did for video games never released. Inspired, in order, by China Radio International, Jimpster, Phleg Camp and.. whammy bars.

Track 10: Gtr Trio 1998:

Still studying composition at the UW, I wrote a collage of guitar ideas for 3 steel string acoustics. Friends Don Craig and Pete Matern helped me get through this clumsy little set – I pulled the couple of ideas I think work together here in this excerpt.

Track 11-14: The squid that lives…

At one point there was a rumor of a giant squid living in Puget Sound. I think of him/her (them?) when I hear this now. One of many bits that didn’t make it on Alkaline, I did this after hours of practice around playing slide, ebow, and thumb on my bottom strings simultaneously.  Recorded on the back patio of my mother-in-laws in Mesa, AZ, while everyone slept Christmas Eve, 2003.

Track 15: Sleestax

Tried and tried to get Andy to use this for something, but he never did. 4 tracks recorded with my neighbor Todd’s Bass Guitar Synthesizer, which I still covet.

Track 16: Shiny Clean Vocal

The last bit of Shag stuff, this is my vocal demo of the theme.

Gamma Male: Ice, Whole

My longtime partner-in-crime Matt Wainwright and I have been recording long Herzogian explorations for the past year or two under the name Gamma Male, the latest in a lineage of projects that started in high school with Human Lunchbox, followed by Choco D, Secret Kitty, Underwater Bus Enforcers, and lately KLOD. We’ve been sitting on this set for quite a while, but it’s one I’m particularly proud of. Fans of Popol Vuh, The Residents Eskimo and the early, non-cheesy Tangerine Dream stuff will like this.

Seattle-based guitarist and composer