Archive for the ‘software’ Category

odum~

Tuesday, February 12th, 2013

for some time now, i’ve been interested in the work of howard t. odum, zoologist and pioneer in the field of systems ecology. h. t. odum’s goal was to derive a language for the transformation of energy into different forms, which could represent such transformations as edges in a network. his notational system, called “energy circuit language”, borrows from other systems theory notations such as forrester diagrams or electrical schematics, but diverges from such systems in an attempt to describe systems in even more general terms. h. t. odum spent years honing this language by attempting to model the data he and his brother eugene odum, a zoologist and ecologist as well, collected from various ecosystems. the two brothers are ostensibly responsible for the modern conception of the term ‘ecosystem’ itself.
prior to the advent of microcomputers, h. t. odum implemented his models using analog computer components like logic gates and op-amps. with a little help from my friends, i have begun recreating some of his circuits, in hopes of building an ecological modular synthesizer. more on that later…
when such technology matured, microcomputers became odum’s prefered tool of choice for testing his models. digging through his oeuvre, i found numerous models of systems at many scales implemented as routines in the BASIC programming language. in order to provide myself and my colleagues with a reasonable idea of the project we are undertaking by reproducing his analog circuits, i have implemented a few of these routines as external objects for the PureData realtime synthesis environment.
despite their superficial similarities, energy circuit language and puredata are different in extremely important ways. first of all, in odum’s system, edges may be weighted, with weights corresponding either to linear scaling or probability. however seemingly trivial this distincion may be, an even more instrumental caveat is how the two systems handle feedback. in puredata, feedback must be created with a minimum delay of a block size. this size can be reduced using the block~ object, but at a significant cost to efficiency. my solution was to implement entire subsystems in the dsp routine of an object, thereby allowing for arbitrarily small feedback latency (down to a single sample, at least). this single sample limit, as it turns out, a source of error in many discrete-time modelling schemes, is perhaps best circumvented by a continuous-time implementation, which is on its way. nevertheless, these puredata externs have allowed us to experiment with sonification and scaling methods.
in this package i have included the puredata externs (compiled for 32-bit linux platforms), the sourcecode, and demonstration patches for the following objects:
comparator~ , a dsp-rate comparator which returns high if the right inlet is lower than the left, and low otherwise
tank~ , a dsp-rate model of a leaky storage unit, a basic component in energy systems language
war~ , a dsp-rate model of two nations at war. this is by far the most complex extern in the package. the coefficients (message-rate) relate to the following diagram, from odum, 2000 (click for larger view):

the patches included are meant for demonstration purposes only. in fact, with the exception of war_test.pd, they do not produce sound. i recommend the use of an oscilloscope to fully appreciate them. unless you can hear dc, in which case, we need to talk…

Daubechies Wavelet Distortion / Delay VST’s

Sunday, November 25th, 2012

I have made a few VST plugins that make use of Daubechies 4 Wavelet transforms for time/frequency localized dynamics processing and multi-scale delay. Both plugins posted below were compiled for OSX 10.4 or later.

The first one is a bit easier to use (and a bit prettier to look at). It limits you to only one feedback and time coefficient for the delay. Notice however, that the actual delay times (in seconds) of each layer of the transform is unique and rationally related to the others. You can download the binary here. The GUI background is a color treated photo of copper striations in ferric chloride. (Etching circuit boards in my bathtub again… I’m not sorry.)

The second is a bit uglier to look at but offers more fine grained control over each delay time / feedback amount. Once you get the hang of the first one, I recommend you look at this plugin because it’s a lot more flexible. You can download here.

Both plugins use a windowed, optimized version of the filtering algorithm found in “Numerical Recipes in C”. You can find the public domain components of their code here.

A Linux-Based Open Source Toolchain for the STM32F4

Sunday, November 25th, 2012

ST Microelectronics has released the STM32F4 “Discovery” evaluation board for the M4f Cortex ARM processor chip. In addition to the M4f ARM microprocessor, itself a pretty awesome tool boasting 32bit floating point precision and a vast array of assignable I/O capabilities, the STM32F4 is loaded with tons of sensors, USB hosting capabilities, and even a fully accessible ST-Link V2 programmer, which allows the user to program other M4f microprocessors. Check out this great demo / explanation here.

The board is extremely cheap, and the processor itself even cheaper (ST was actually giving these things away for free at one point), making this powerful hardware an attractive tool for the audio programmer. There must be a catch, right??

Right.

The Catch: Unless you have a spare $2K to invest, you cannot use ST’s full toolchain for programming the board. The demo version is extremely crippled, only runs in windoze, and (unless I misread) has some potentially sour flavored licensing attached to it.

The Solution: Roll your own Free Open Source Toolchain!
…Of course, this is far easier said than done. I had endless struggles getting anything to work in OSX, and I’m still not sure I got it working. I had so many issues, in fact, that I don’t want to waste space on them here. If I find myself in a particularly morbid mood someday, perhaps I’ll tell the internets of my woes in another post. However, in Linux, setting up a toolchain and a simple workflow was comparably simple.

After literally months of toiling with various toolchains for OSX, I decided to start in with Linux using a fresh install of Ubuntu Quantal, running the 3.5.0-19-generic kernel and a lightweight Xfce windowing environment. I began by following some fantastic instructions from Jeremy Herbert.

To my dismay, running summon-arm-toolchain hung at the same point as a few of my previous attempts had in OSX: ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz . So I commented out that line in summon-arm-toolchain and manually downloaded the file in a browser, moved tar.gz into summon-arm-toolchain/sources/ and ran summon-arm-toolchain again.

Result: error “neither an int nor a vector nor an array…”

Changed OOCD_EN=1 to OOCD_EN=0 and ran summon-arm-toolchain.
Same errors:


gtype-desc.c:8834:18: error: subscripted value is neither array nor pointer nor vector
gtype-desc.c:8953:36: error: subscripted value is neither array nor pointer nor vector
gtype-desc.c:9037:31: error: subscripted value is neither array nor pointer nor vector
gtype-desc.c:9058:31: error: subscripted value is neither array nor pointer nor vector
gtype-desc.c:9065:31: error: subscripted value is neither array nor pointer nor vector
gtype-desc.c:9072:31: error: subscripted value is neither array nor pointer nor vector
make[2]: *** [gtype-desc.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Blarghhh. This is where it gets ugly (as if it wasn’t already). I ended up switching OOCD_EN=0 back to OOCD_EN=1, and *cough* changing the subscripted values to unsubscripted ones. I even wrote “Hail Mary” into my log files…

Believe it or not, this fix seemed to work. The script moved forward until:


******************************************************************
* Unpacking libopencm3-f713fffde4fd6d510536b7f640e0a707726ff4ae
******************************************************************
archive type bz2
libopencm3-f713fffde4fd6d510536b7f640e0a707726ff4ae/
libopencm3-f713fffde4fd6d510536b7f640e0a707726ff4ae/.gitignore
libopencm3-f713fffde4fd6d510536b7f640e0a707726ff4ae/THIS_REPOSITORY_IS_OBSOLETE
******************************************************************
* Building libopencm3-f713fffde4fd6d510536b7f640e0a707726ff4ae
******************************************************************
make: *** No targets specified and no makefile found. Stop.

So I grabbed newest version of libopencm3 from git:
$ git clone git://github.com/libopencm3/libopencm3.git
And changed script from
clone libopencm3 ${LIBOPENCM3_GIT} git://libopencm3.git.sourceforge.net/gitroot/libopencm3/libopencm3
to
clone libopencm3 ${LIBOPENCM3_GIT} git://github.com/libopencm3/libopencm3.git

And now after adding my toolchain’s path to my shell’s search path, arm-none-eabi-gcc --version responds with something sensible! Mission accomplished!

I have been following Elia’s great tutorial and altering his makefile to fit my other projects. The basic mechanics of using the toolchain with st-util to cross-compile and burn onto the board are posted here.

Perhaps the best part about this workflow is the lack of an IDE. All that noodling around in Eclipse really made my head hurt! I’ll take a simple text editor (vim, gedit, or even pico) over all those bells and whistles any day…

If you actually read this blog and think my altered summon-arm-toolchain script or my altered makefiles would be of use to you, hit me up in the comments section.

happy coding!

this is not art: australia, 2011

Tuesday, December 27th, 2011

this fall, i was privileged with the opportunity to participate in two arts festivals in newcastle, australia. these festivals were “electrofringe,” whose focus was on the practice of electronic arts, and “critical animals,” whose focus was the critical theory underlying creative endeavors. both of these festivals are components to a larger meta-festival called “this is not art.” i was invited to engage in a variety of artistic and pedagogical events, some of which were newly realized just for the festivals (viz. songbirds).

there i am. deliriously. behind me stands the gargantuan pepper-fig tree wherein i installed the songbirds. before me stand two of many figures, each scratching their heads, perusing the various handmade merch and observing speechlessly as an overly sanguine housecat picks a fight with one, and then a pair of magpies.

that’s the split etape ep by creosota, my duo project with adam tinkle, side a, with the high sotiety solo live album, side b.

incidentally, here’s the entire sonic samizdat. that’s the above mentioned etape / high sotiety split, the MUTANT SEAL HOMICIDE (by a. goodwin & me) / set them free (me solo) split, and the live solo album so much for the theory. 8 pcs of each.

we all had to admire this cat’s vim in the face of clear and present danger from above.

meanwhile, due to what now seems like a terribly unfortunate collection of miscalculations, i am doing my best scansorial primate impression among the gargantuan pepper-fig tree’s branches. more on these miscalculations in a moment.

i met a lot of memorable characters that day, including this tawny frogmouth, whom i mistook for part of the gargantuan pepper-fig tree, until he opened his giant yellow eyes to stare at me, disapprovingly.

at this, my first event, i installed ten prefabricated songbirds in the gargantuan pepper-fig tree. i chose to use these little yellow glass votive candle holders instead of trying to collect bottles.

this was probably a bad idea. the candle holders weren’t nearly loud enough to produce feedback among the other nodes. they did, however, look beautiful. and functioned, indoors.

if i could do it all over again, i’d have preempted the crowd and installed these songbirds long before the moment of. it was also probably unwise to have billed the event as a performance, although it certainly had been, albeit one that veered from expectation significantly. that gargantuan pepper-fig tree was a riot to climb though, and people really seemed to dig the various handmade merch and the bizarre ozzy fauna.

later that evening, i participated briefly in a colloquium on experimentalism in art, hosted by critical animals. my contribution was brief because i had been nearly double-booked for an electrofringe event. although my remembered comments were mostly inarticulate, splintered and confusing, my hosts were accommodating and endlessly polite with me. i suspect this is because i was the only american on the panel, and they didn’t want me to bomb them or something.

and then, i did bomb them. aurally. using a custom-built analog synth, a george foreman grill and a quarter pound of minced kangaroo meat. in certain circles, this composition has become somewhat infamous. to this day, i believe it could be the piece of mine with the most legs. in this case, it had two very strong ones.

typically, meat drone is performed with ground chuck, but when i was invited to attempt it with minced ‘roo, i was unable to resist. this version was particularly relentless, because there was barely any accompaniment to the monotonous carnal drone. when finally there was abrupt surcease from the bombardment, i checked the grill and the meat had disappeared. aussies…

still later that evening, i performed a dj set of some of my more accessible music to a crowd of people expecting chiptunes. they were confused, some pleasantly. these two performances comprised part of the so-called electrobinge showcase, which turned out to be intensely fun.

the following morning i lead a workshop on how to build the songbirds from kits. as it turned out, this was a lot of participants’ first time soldering or working with electronics at all. as a result, four hours were not nearly enough time to achieve our stated goals, and an ad hoc workshop occurred the next day, for the verily hardcore / interested / friendly.

finally, i gave a short presentation about my practice, particularly with respect to give me everything, a composition “about” the m-train in brooklyn. it was scattered, and in mono, but these are all things wo men bu neng qiang qiu, no?

thank you estee, thank you cara, thank you james. (for everything.)
thank you ella, thank you julia, thank you yolande. (for similar but slightly different reasons.)
thank you mel, thank you lee. (for entirely different but no less total reasons.)
thank you evan. (for the pictures.)

newcastle was awesome. i had the most incredible time hanging out with friends new and old (ykwya), inhaling greasy vegemite-soaked breakfast sandwiches, and feeling like an utterly spoiled brat. my understanding of australian culture acquired such subtle dimensions as that “jelly wrestling” actually means “jello wrestling” in australian english. i also believe i experienced first hand what a “bogan” is, although the term is so enveloped in shades of cultural differentiation that it’s truly impossible to know definitively. furthermore, from previous experiences on the continent, i had already learned that what we in the states would call “whiskey” is actually australian for “scotch,” and that if one expects american-style “whiskey,” one must actually ask for “bourbon,” which here in the states is a different kettle of fish altogether. this planet truly is a strange and varied place.

Sonic Shredder v0.2

Saturday, August 27th, 2011

This summer, I had the privilege of working on a software project with a client who trusted my aesthetics implicitly. He understood what I was about, and asked me to make him a software instrument in SuperCollider that could eat other software instruments for breakfast. In return, I gave him the Sonic Shredder.

Clearly, I was not out to win any beauty contests. :P The GUI is fully functional, however, with progress bars that track the position in the files they represent, which can be manually scrubbed with a mouse click. Every parameter can also be assigned to MIDI input, and presets (both of GUI values and MIDI connections) may be saved and loaded. It runs on both Swing (Linux / Windoze) and Cocoa (MacOS) gui schemes, and has been tested on recent as well as slightly-less recent builds of SC 3.4. It is extremely playable.

You may view / download the source here.

SONIC SHREDDER consists of 3 main components:

  • SHRED (4x) – granular instruments capable of chopping, looping, and scrubbing soundfiles.
  • SHATTER – a filterbank (with 8 bandpass filters) each of which feeds a separate granulator and separate delay line, useful for shattering a sound into prickly particles or dense streams.
  • SPIT – a 3-layer waveshaping distortion unit which uses low-frequency sinusoids as its transfer functions.
  • Together with comprehensive MIDI support and preset management, the SONIC SHREDDER is capable of a nauseating universe of extreme sonic oblivion.

    Master Levels:

    these default to 0, which is muted. there is one fader for each module, and one fader (SUM) for the total output of the SONIC SHREDDER. these may be assigned to midi controllers and their values stored in presets.

    SHRED (grains):

  • amp – amplitude of the granular instrument. this gets scaled by the SHRED master level fader at the bottom left of the panel.
  • rate – the speed at which the cursor tracks through the soundfile. in tracking mode, press either the “>” or “<" button to determine the direction the cursor will go.
  • pitch – the pitch of the grains. this gets modulated by the “jpitch” parameter.
  • trate – the rate of new grains. new grains may be muted randomly by the “prob” parameter.
  • dens – the duration of each grain in seconds.
  • prob – the probability that a new grain will occur at trigger time.
  • pan – the pan position of the grains. -1 is left, 1 is right.
  • width – randomness applied to pan position.
  • jpos – randomness applied to the position of the cursor in the soundfile.
  • jpitch – randomness applied to pitch.
  • send_a – a pre-fader send to the SHATTER module.
  • send_b – a pre-fader send to the SPIT module.
  • scrb / trk – toggle scrubbing versus tracking mode. in tracking mode, the cursor moves according to the “rate” parameter, in the direction indicated by the “<" and ">” buttons. it will loop over the area defined by the blue range slider beneath the cursor. in scrubbing mode, you may manually move the cursor over interesting parts of the soundfile. to enable midi control over this parameter, you must be in scrubbing mode.
  • ON – turns the granular unit on. you must have selected a valid soundfile to granulate *and* a valid grain envelope file (located beneath presets on the top right of the panel).

  • SHATTER (filterbank):

  • freq – frequency of the bandpass filter, relative to a fundamental. this value gets multiplied by the “fund” parameter at the bottom of the filterbank.
  • rq – reciprocal of Q of the bandpass filter. Q is defined as the frequency over the bandwidth, so rQ is the bandwidth over the frequency. Q = (fℴ / Δf) , so rQ = (Δf / fℴ) . as rQ approaches zero, the resonance increases. since filterbank this uses constant-Q filters, the bandwidth will stay proportional to the frequency.
  • del – delay time in seconds of the comb filter (delay). this gets saled by the master “del” fader at the bottom.
  • dec – 60 dB decay time in seconds of the comb filter.
  • there are 8 of these filters, arranged in parallel. after each filtering stage, there is a granulation stage, where the probability of a grain passing through is determined by the “prob” parameter. SHATTER uses a hanning window for its grains. w(n) = 0.5 ( 1-cos(2πn / N-1)) . the master control of “del” scales all of the individual delay times in the filterbank.

  • send_b – a pre-fader send to the SPIT module.
  • SPIT (waveshaper):

    a waveshaper produces distortion by indexing into the phase of a transfer function. the SPIT module uses three independently tuneable sinusoids as its transfer functions. these are applied in parallel, and then summed together. NB – in v0.2 these outputs are spatialized in the stereo field. see the commented out portion of the SPIT synthdef below for more details.

  • f0, f1, f2 – the frequencies of each sinusoid. 0 Hz is permitted (and is more or less the simplest case to model with mathematics).
  • o0, o1, o2 – the phase offset of each sinusoid. assuming frequency = 0 Hz, an offset of 0 will provide odd harmonic distortion, because you are indexing into a sine wave. an offset of π/2 will provide even harmonic distortion, because you are indexing into a cosine wave. all phases are permitted.
  • pre0, pre1, pre2 – the pre-gain of each distortion layer. think of this as the index of modulation in Frequency Modulation synthesis.
    post0, post1, post2 – the post-gain of each distortion layer. think of this as the volume of the layer.
  • these layers are summed, and their output is scaled by the “SPIT” master level at the bottom left of the panel.

    Presets & Midi:

    the SONIC SHREDDER is capable of storing preset scenes which contain all fader values, all file paths, and all midi routing data. these are stored as legal supercollider code, to allow for easy manual editing and debugging.

    saving & loading:

    to save a preset, simply click the “save” button, locate a directory, and name the file in the dialog. to load a preset, click the “load” button, locate a previously saved preset, and open it. to make your changes apply to the panel, hit the “load” button again, which will now read “apply”.

    no paths / load paths:

    sometimes, during playback, changing the path of the soundfiles or the envelope file will cause stress to the synthesis server, and could cause a crash. this phenomenon usually occurs only during important performances. to prevent the preset from loading these paths, click the “no paths” button. it will toggle into a “load paths” button. to safely load a new soundfile or envelope, turn off the SHRED module you wish to modify before making changes. if you would like to make changes to the envelope file path, you must turn off all SHRED modules. the SPIT and SHATTER modules will not be affected.

    midi learn mode:

    to control a fader with a midi controller, simply select the desired fader (not the number box or label!) and hit the “L” key on your keyboard (shift is not necessary.) then wiggle the desired controller. the fader should move with the controller now. you must hit the “L” key once more before moving any other controller or selecting any other fader.
    the controller you use must send midi cc messages and cannot be a key or button. panel buttons cannot be linked to midi devices at this time. you may assign multiple faders to one controller, but assigning multiple controllers to one fader may cause errors. to be safe, i would not recommend doing either, but whatever… :)

    really the best way to learn how this stuff works is by playing with it. make sure your speakers or headphones are loud enough for you to enjoy it for reals. don’t be a wuss.

    if you have questions, bug reports, or comments, please contact me @ joe (dot) mariglio (at) gmail (dot) com
    if you have feature requests, be prepared to give me some kind of compensation. :$ feel free to distribute this software. i only ask that you include my pithy comments and documentation contained in this header. also, if you haven’t yet, you should check out my website for more software, circuit schematics, free music, and other oddities.

    I have already recorded a lot with this instrument, and cannot wait to take it on tour. I’m using a korg nanokontrol usb fader box on it, and it runs amazingly smoothly on the new linux machine I just built, as well as on my older mbp. As of this writing I am working on a new album which almost solely uses this instrument to repurpose sounds from the MOLTEN LAVA EYEBALL FIEND archives.

    Happy shredding! ^_^

    oz

    Sunday, April 24th, 2011

    I recently had the privilege and good fortune to travel to Australia again! This time, I got to play some music and even do some teaching, thanks to Estee and the other kind folks at Electrofringe and UNSW. In the process, I really enjoyed making field recordings of trains & birds (thanks, Sam!), taking pictures of some beautiful street art, and hanging out with friends both old and new. I was again reminded of how incredible the coffee is down there. That alone would be reason to go back! I also got to visit Melbourne this time, which is a truly lovely city, with some lovely people in it.

    Sadly, I was unable to record any of the sets I performed, due to technical problems that were ultimately the result of my own stupidity and jetlag. However, I’ll try to reconstruct the set lists from memory, and since most of my music is available for free on this site, you could piece the sets together in your mind if you were so inclined. One caveat is that I’ve started incorporating a lot of improvisation into my sets again, remixing on-the-fly, sprinkling granulated field recordings, and playing with homemade electro-acoustic instruments. So repeat performances are still pretty rare, despite the fact that I reuse material. Of course, you should just come to one of my shows to see what I’m talking about.

    EF / UNSW Events:

    At UNSW, I led a 5 hour workshop which introduced creative types to the joys of CMOS logic gates. We built a NAND gate oscillator bank, which could have up to four operators per chip, and a simplified version of the venerable Craig Anderton tube screamer. I also briefly introduced the binary counter as a way to produce subharmonics. This turned out to be productive even for those who had never seen a capacitor before.

    I then gave an artist talk regarding my creative practice, and broke down my current research interests at UCSD. The most exciting part of this talk for me was the Q & A, where essentially we all just chatted about what we were into. It was really inspiring.

    In the evening, after a weird 2 minute rainstorm and bright orange sunset, I played about 50 minutes of amplified sounds in a darkened room. The crowd was small but people seemed very interested. Hanging out with the attendees before and after the set made for a very intimate performance. Of course, there were silly technical problems which marred the first 10 minutes or so, but I was happy about where the sound ended up. I got to test out some new granular instruments that use a game controller as an interface, now an essential component of my live act. The set list was as follows:

    untitled a (a field recording of coyotes howling and cackling in the canyon behind my apartment.)
    untitled b (a few minutes of free improvisation with granulated piezo recordings of a teapot.)
    sweet acceleration.
    give me everything.
    refuge.
    set them free.
    dayglo.
    trasher (encore).

    Having slept only an hour and a half prior to the full day of events, I’m shocked everything went as well as it did. My primary source of stokedness was having met such amazing folks, and indeed surviving the onslaught.

    When I came to Melbourne, I played Sean Baxter’s Make It Up Club. I played the following:

    untitled b (a few minutes of free improvisation with granulated piezo recordings of a teapot.)
    untitled a (a field recording of coyotes howling and cackling in the canyon behind my apartment.)
    give me everything
    refuge

    Although this set re-used material from previous work, I doubt it would have been recognizable to many. Refuge, for example, was completely diced up. For this performance, I focused on building unrelenting walls of noise, making thorough use of the subwoofer and somewhat oddly arranged sound system. I put special emphasis on gestures that demonstrated immediacy and responsiveness to the moment. (“Making it up,” as it were… :P ) I had the privilege of meeting and playing alongside several excellent improvisers. Also, Sean Baxter was positively charming.

    Actually, I must say that everyone in Melbourne seemed positively charming. I could see myself living there…

    For the rest of my short stay in Melbourne, I wandered around making field recordings on Sam’s gear. Those will be uploaded soon. For now, I hope you enjoy a few of the pictures of street art I took around Sydney:

    set them free

    Wednesday, March 9th, 2011

    set_them_free by 3_spds

    Performed at Sushi Art Gallery on March 4th, 2011.

    This is a remix project. The initial 2 minutes are a presentation of the original track, recorded in 1973 by the People’s Temple Choir, originally on the beautiful gospel album “He’s Able.” You may listen to the entire album here.

    I need to address the fact that the religious group who recorded this album partook in one of the most infamous mass suicides of the 20th century. In reappropriating their material, I wanted to avoid the stale irony and cynicism that so many popular culture representations of Jonestown indulge in. To me, the earnest joy of the congregation seems the most interesting, and the best way to honor the memories of those 900 people (among them 300 children) who passed on because they believed they were going to a better place.

    Perhaps the cynical or jocular representations of suicide cults come from a fear of their leaders’ charisma. I initially found myself worried I would be “brainwashed” by listening to their record, but soon it became apparent just how foolish that fear is. Despite the utter human tragedy it has come to represent, I have had this song stuck in my head for days now, and now it makes me smile.

    At the time of this recording, they believed they had found the key to happiness and equality. By the time of the 1978 incident, who can say how much dissent was in their midst, or how much of the event constituted murder rather than suicide? I have intentionally left the leader out of my representation, because I don’t want to honor him, but I find it contradictory to the representation of these people to actively dishonor him in the piece. Also, he was clearly not having as much fun as these folks were. I want to portray the giddy ecstasy of the followers without judging them on their admittedly outlandish beliefs. In other words, I want to set them free of the shadows and paint them in the light they were seeking in the first place.

    so much for the theory: live in san diego

    Tuesday, March 8th, 2011


    set list:

    1) process engagement managing consultant
    2) movement / duration
    3) metonymy
    4) lactobacilli
    5) dayglo
    6) trasher

    here’s a facebook page about the event. it was so much fun!

    thanks to everyone who came out, and thanks to kaiborg for sharing the stage with me. it was an honor.

    download link.

    food deserts

    Tuesday, March 8th, 2011


    for this ep, my main tools were supercollider and logic. these tracks were first dropped in a performance at the loft in san diego, on 2/2/2011.

    track list:

    1) movement/duration
    2) lactobacilli
    3) trasher

    download link

    who is anybody?

    Tuesday, March 8th, 2011



    On Wednesday, December 1st, I had the pleasure of sharing the stage with MC Justin Zullo (AKA Conundrum), Kimbridge Balancier (AKA sPeakLove), and Diana Cervera. I DJ’ed (from the command line!) for Conundrum for the first half, and played a solo set for the second. Due to a few technical problems, I was unable to record the set with Conundrum, but I was able to reconstruct the solo set. I’ve decided to release this set online as an EP, in a manner similar to “gosling_glider_gun.”

    tracklist:

    eyes in the sky 0:00 – 6:27

    metonymy 6:27 – 13:08

    stairs 13:08 – 15:33

    sed, at the abysmal pyramids 15:33 – 21:18

    cyan 21:18 – 27:21

    the young lovers 27:21 – 28:57

    The sound material for “eyes in the sky” was conceived on a Doepfer a-100 modular synth system. The first minute or so is a sonification of a flocking algorithm developed by Craig Reynolds, commonly referred to as ‘boids’ in the computer graphics world. I apply various convolutions and granulations to the source material, but most of the sounds are bare analog synth.

    “Metonymy” is a remix of “antonym,” though it’s difficult to hear a resemblance. It is a 1D cellular automaton which uses rule 150, which produces repeating Serpinski Triangles. I used this ruleset for “refuge,” the first track on gosling, however since the initial conditions, number of cells, and sonification method are totally different, it’s not possible to hear any similarities to that piece, either. There are 29 cells in this system, which directly correspond to a rhythmic lattice. The meter is divided into 29 beats spanning across an underlying and very slow 4 beat pulse. Every two measures of that pulse corresponds to a different generation of the automaton, and thus a different rhythmic pattern.

    Through a process of biorthogonal wavelet filtering, the last bar of “metonymy” melts into “stairs.” This short piece demonstrates a Risset rhythm, which is analogous to a Shepard tone, but instead of continuously increasing or decreasing frequency, it involves tempo. Like the shepard tone, this is achieved with careful layering of patterns which are octaves apart. Thank you to Dan Stowell for providing a starting point for the code I used for this. This rhythmic material is convolved with samples of insects and birds I recorded near the Three Sisters in the Blue Mountains, Australia.

    “Sed, at the abysmal pyramids” is a remastered track from Codecs. I liked it just the way it was, and saw no reason to add anything else to it. I cleaned it up a bit, and injected it with some more dynamics. The metric cycles are 2 groups of 8, 2 groups of 7, 3 groups of 8, 3 groups of 7. The tempo is fluid and varies wildly. Everything that isn’t the drums or microtonal bassline is the result of spectral grains triggered by a constant-q transform. The most prominent grains are derived from a recording of a spring being plucked.

    “Cyan” is a remix of “Dayglo,” hopefully baring just enough resemblance to the original that its lovely squishiness was preserved. While “Dayglo” was based on Lindenmayer’s original “algae,” I used a different l-system to reorder and granulate the phrases from “Dayglo,” turning them into microtonal chords. This l-system can be used to produce cantor dust in a turtle graphics context. “Cyan” preserves the torchy, epic sound of “Dayglo,” but it sounds much less emotionally well-adjusted.

    “The young lovers” is my final cut of the chase scene from a horror film I scored called “Lenore.” Asli Soncely directed it. You may watch the film here, but be advised that the chase scene no longer has this as its score.

    download link.